“Google-chrome-stable dipende da libstdc ++ 6 (> = 4.8.0); comunque: la versione di libstdc ++ 6 sul sistema è 4.6.3-1ubuntu5. ”


10

Sto cercando di installare google-chrome-stablesu una nuova installazione di Ubuntu 12.04. Eseguo i seguenti comandi

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb

Ottengo i seguenti errori

dpkg: dependency problems prevent configuration of google-chrome-stable:
 google-chrome-stable depends on libstdc++6 (>= 4.8.0); however:
Version of libstdc++6 on system is 4.6.3-1ubuntu5.
 google-chrome-stable depends on lsb-base (>= 4.1); however:
Version of lsb-base on system is 4.0-0ubuntu20.3.
dpkg: error processing google-chrome-stable (--install):
 dependency problems - leaving unconfigured
Processing triggers for man-db ...
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Errors were encountered while processing:
 google-chrome-stable

Quando corro sudo apt-get install -fho solo rimosso google-chrome-stable:

The following packages will be REMOVED
  google-chrome-stable

Se cerco le versioni richieste, ad es. Provo sudo apt-get install libstdc++6=4.8.0non riesco a trovare la versione:

E: Version ‘4.8.0’ for ‘libstdc++6’ was not found

Come lo risolvo?

So che non esiste più supporto per la versione a 32 bit di Ubuntu 12.04. Sto eseguendo la versione di Ubuntu a 64 bit.


@glut il titolo attuale è preciso. Dice il messaggio di errore esatto.
Braiam,

@Braiam Direi che è solo parzialmente accurato perché non include l'errore
lsb_base

@Glutanimate ma lsb-base non ha librerie / file binari utilizzati da Chrome.
Braiam,

@Braiam Ok, vero. Ora che ci penso, la maggior parte degli utenti cercherà comunque la prima parte del messaggio di errore, quindi restiamo su questo.
Glutanimate,

Risposte:


14

Ricevi questi errori perché Google ha terminato il supporto per Ubuntu 12.04.

Google: Termineremo il supporto per Google Chrome su Linux a 32 bit, Ubuntu Precise (12.04).

In alternativa, puoi installare il modello chromium-browsersu cui è basato Google Chrome.

Puoi anche installare Ubuntu 14.04 LTS o Ubuntu 15.10 - entrambi sono supportati - per usare Chrome.

Ma ti suggerisco di aspettare fino al 21 aprile quando verrà rilasciato il nuovo Ubuntu 16.04 LTS.

Dovresti considerare che Ubuntu 12.04 LTS ha solo un anno di supporto di sicurezza ufficiale.


Ho una versione di Ubuntu a 64 bit. Ho appena reinstallato il sistema operativo, avevo Chrome funzionante con la stessa configurazione esatta fino a una settimana fa. Mio male non l'ho detto, scusate
fmonegaglia,

5
@fmonegaglia: La cosa più importante qui è che Ubuntu 12.04 non è generalmente più supportato, indipendentemente dal fatto che sia in uso l'edizione Ubuntu a 32 bit o 64 bit. Google Chrome può essere installato solo su edizioni Ubuntu a 64 bit supportate, a partire da Ubuntu 14.04 ... :)
cl-netbox

Questa è sicuramente la risposta corretta. Purtroppo alcuni di noi sono bloccati con 12.04 per qualsiasi motivo. Lo sforzo dovrebbe essere speso scendendo dalla 12.04 piuttosto che da soluzioni temporanee come il downgrade (sotto). Tuttavia a volte devi solo far funzionare le cose.
Lathonez,

6

Ultima modifica (13/09/2017) :

Questa soluzione non funziona più per le versioni di Chrome 60 e successive . Gli ultimi pacchetti dipendono da libc6 ≥ 2.17 che non può essere installato su Ubuntu 12.04. Se stai ancora utilizzando Precise, dovresti prendere in considerazione l'aggiornamento (come ho fatto io), o se non riesci ancora a farlo, passa a un altro browser (anche se a questo punto è improbabile trovare quelli che vengono ancora mantenuti).


Modifica (06-12-2016) : Sembra che Chrome dipenda anche da una versione aggiornata di libfontconfig1 (≥ 2.9.0). Ho aggiornato lo script di conseguenza. La nuova versione sembra funzionare bene finora, ma tieni presente che con ogni dipendenza finta puoi aspettarti che l'app diventi meno stabile.

Modifica (10/06/2017) : Chrome 59 include nuove dipendenze (libfontconfig1 ≥ 2.11, libpango e libpangocairo). Ho aggiornato lo script per rimuoverli. Lo stesso avvertimento sulla stabilità di Chrome si applica nuovamente.


Soluzione alternativa per problemi di dipendenza su Ubuntu 12.04 64 bit

Il supporto ufficiale di Chrome per Ubuntu versione 12.04 è terminato, ma ciò non significa che devi abbandonare Chrome ancora. Quello che segue è un breve tutorial su come installare l'ultima versione di Chrome (a partire dal 28/06/2016) su Ubuntu 12.04 a 64 bit.

Avvertenza : questa è una soluzione molto hacker che potrebbe smettere di funzionare in qualsiasi momento. Assicurati di sapere cosa stai facendo prima di procedere.

Pre-requisiti

Kernel aggiornato

Importante: si noti che l'aggiornamento del kernel potrebbe comportare una serie di problemi e problemi di compatibilità hardware. Assicurati di sapere come passare a un kernel precedente prima di procedere con questo passaggio.

Le versioni recenti di Chrome dipendono da una serie di funzionalità del kernel relative al sandbox che non sono disponibili nel kernel predefinito di Ubuntu 12.04 (3.2.0). Se hai installato Ubuntu 12.04 usando un'immagine più recente (punto versione 12.04.2 e successive), è probabile che tu abbia già un kernel aggiornato; ma se sei ancora nella versione del kernel originale puoi aggiornare allo stack del kernel di Ubuntu 14.04 tramite il pacchetto dello stack di abilitazione hardware LTS :

sudo apt-get install --install-recommends linux-generic-lts-trusty

Assicurati di riavviare il sistema dopo aver eseguito l'aggiornamento del kernel. Se tutto è andato bene, il tuo sistema dovrebbe ora utilizzare il kernel Linux 3.13.X.

Problemi di dipendenza

Se guardi il messaggio di errore che ricevi quando provi a installare una build di Chrome recente, vedrai due distinti problemi di dipendenza:

  1. libstdc++6 (>= 4.8.0): Questa è la libreria C ++ standard GNU. Le versioni di Chrome 50.X e successive dipendono dalla versione 4.8.0 di questa libreria, ma Ubuntu 12.04 viene fornito con 4.6.3 per impostazione predefinita.
  2. lsb-base (>= 4.1): Questo è il pacchetto base standard Linux. Indica la conformità della distribuzione con una serie di standard stabiliti dalla Linux Foundation. Le versioni di Chrome 50.X + richiedono la conformità agli standard definiti in LSB base 4.1, ma Ubuntu 12.04 è compatibile solo con 4.0.

A quanto pare entrambi questi problemi possono essere risolti piuttosto facilmente:

libstdc ++ 6 (> = 4.8.0)

Importante: libstdc ++ 6 è una libreria di sistema importante da cui dipendono molti pacchetti diversi. L'aggiornamento di questo pacchetto a una versione più recente potrebbe essere pericoloso e potrebbe causare problemi di stabilità del sistema. Non ho riscontrato alcun problema sui due sistemi su cui ho eseguito questo aggiornamento, ma - come sempre - il tuo chilometraggio potrebbe variare.

Fortunatamente per noi, libstdc++64.8.X è disponibile nel test ufficiale della toolchain Ubuntu che costruisce PPA . Come primo passo aggiungeremo questo PPA alle nostre fonti di software:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update

L'installazione di Google Chrome da questo punto in poi trarrà la libstdc++6dipendenza dal PPA, eliminando il primo problema di dipendenza. Con questo risolto, procediamo al secondo numero.

lsb-base (> = 4.1)

Si scopre che non è necessario installare una versione aggiornata di questo pacchetto per far funzionare le versioni recenti di Chrome. Per ora Chrome non sembra dipendere effettivamente da nessuno degli standard modificati nella base 4.1 di LSB, quindi la dipendenza da lsb-base (>= 4.1)sembra essere una dipendenza leggera che possiamo semplicemente rimuovere.

Potresti farlo manualmente, ovviamente, ma ho scritto uno script che si occupa della maggior parte dei seguenti passaggi per te.

Script di installazione

#!/bin/bash

# Name:         Chrome installer for Ubuntu 12.04 LTS 64-bit
# Author:       (c) 2016-2017 Glutanimate
# License:      GNU GPLv3
# Manual:       http://askubuntu.com/a/792442/

# Description:
#
# Downloads latest chrome release and makes it compatible with 12.04.
#
# This is a hack that will likely stop working at some point,
# but for those of us who can't upgrade Ubuntu just yet
# it's better than running a completely obsolete Chrome release.

set -e

tmpDir=$(mktemp -d /tmp/deb.XXXXXXXXXX)
debUrl="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"
debFile="$tmpDir/chrome.deb"

cleanup () {
  [[ -n "$tmpDir" ]] && [[ -d "$tmpDir" ]] && rm -r "$tmpDir"
}

trap "cleanup" EXIT

echo "Downloading latest Chrome release..."
mkdir -p "$tmpDir/build"
buildDir="$tmpDir/build"
wget "$debUrl" -O "$tmpDir/chrome.deb" || exit 1
echo "Extracting original deb file..."
dpkg-deb -x "$debFile" "$buildDir"
dpkg-deb --control "$debFile"  "$buildDir/DEBIAN"
echo "Updating dependencies..."
perl -pe  's|lsb-base \(\>\= 4\.1\)|lsb-base \(\>\= 4\.0\)|g' "$buildDir/DEBIAN/control" > "$buildDir/DEBIAN/control.1"
perl -pe  's|libfontconfig1 \(\>\= 2\.11\)|libfontconfig1 \(\>\= 2\.8\.0\)|g' "$buildDir/DEBIAN/control.1" > "$buildDir/DEBIAN/control"
perl -pe  's|libpango-1\.0-0 \(\>\= 1\.14\.0\), libpangocairo-1\.0-0 \(\>\= 1\.14\.0\), ||g' "$buildDir/DEBIAN/control" > "$buildDir/DEBIAN/control.1"
mv "$buildDir/DEBIAN/control.1" "$buildDir/DEBIAN/control"
echo "Building new deb file..."
dpkg -b "$buildDir" "$tmpDir/chrome_modified.deb"
echo "Installing new Chrome version. Please enter your password:"
sudo dpkg -i "$tmpDir/chrome_modified.deb"

Copia lo script sopra, salvalo come install_chrome.she contrassegnalo come eseguibile (tramite chmod +x install_chrome.sho la finestra di dialogo delle proprietà del tuo file manager).

Fatto ciò puoi eseguire lo script usando:

./install_chrome.sh

Lo script procederà a scaricare l'ultima versione stabile di Chrome, modificarla per rimuovere la dipendenza da lsb-base 4.1 e richiedere di installare il .debfile aggiornato tramite dpkg.

Congratulazioni, ora stai utilizzando una versione aggiornata di Google Chrome su Ubuntu 12.04!

aggiornamenti

Per aggiornare Chrome è sufficiente eseguire nuovamente lo script.

Compatibilità futura

Importante: poiché questa soluzione potrebbe smettere di funzionare in qualsiasi momento, ti consiglio di salvare sempre l'ultimo .debfile modificato funzionante come backup nel caso in cui Chrome si rifiuti improvvisamente di avviarsi a causa di un aggiornamento.

Per salvare l'ultimo programma di installazione modificato, basta andare nella directory temporanea dello script subito dopo aver ricevuto la sudorichiesta della password quando si esegue lo script (ovvero prima di installare il .debfile modificato ). La directory temporanea dovrebbe trovarsi da qualche parte sotto /tmp/deb.XXXXXXXXX(dove si XXXXXXXXXtrova una stringa casuale).


1
A causa delle politiche applicate dalla mia azienda, sono bloccato con Ubuntu 12.04. Sono stato comunque in grado di installare Chrome usando il tuo script. Molte grazie!
Eugeniu Rosca,

4

Non penso che tu possa. Sono appena stati aggiornati e le dipendenze non possono essere soddisfatte in 12.04 .

Ho avuto lo stesso problema su una build travis e ho effettuato il downgrade. Un sacco di vecchie versioni qui .

Ovviamente non è una grande risposta, ho cercato per un bel po 'e non sono riuscito a trovare un modo senza effettuare il downgrade.


1
Vado con questo. Ovviamente non è il modo migliore di procedere, ma funziona per me come soluzione temporanea, dal momento che non posso aggiornare alle versioni successive di Ubuntu.
fmonegaglia,

Il link a mirror.pcbeta.com è andato 404.
AlexD

2

Poiché Google ha interrotto il supporto per Chrome e 12.04, la soluzione migliore è installare Chromium invece:

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt-get update
sudo apt-get install chromium-browser

1
dpkg: dependency problems prevent configuration of google-chrome-stable:
 google-chrome-stable depends on libstdc++6 (>= 4.8.0); however:
Version of libstdc++6 on system is 4.6.3-1ubuntu5.
 google-chrome-stable depends on lsb-base (>= 4.1); however:
Version of lsb-base on system is 4.0-0ubuntu20.3.

Fondamentalmente, Google Chrome richiede lsb-base e libstdc ++ 6 che non sono disponibili in Precise:

>lsb-base   | 4.0-0ubuntu20          | precise         | all
>lsb-base   | 4.0-0ubuntu20.3        | precise-updates | all
 lsb-base   | 4.1+Debian11ubuntu6    | trusty          | all
 lsb-base   | 4.1+Debian11ubuntu6.1  | trusty-proposed | all
 lsb-base   | 4.1+Debian11ubuntu8    | vivid           | all
 lsb-base   | 4.1+Debian11ubuntu8    | wily            | all
 lsb-base   | 9.20160110             | xenial          | all
>libstdc++6 | 4.6.3-1ubuntu5         | precise         | amd64, armel, armhf, i386, powerpc
 libstdc++6 | 4.8.2-19ubuntu1        | trusty          | amd64, arm64, armhf, i386, powerpc, ppc64el
 libstdc++6 | 4.8.4-2ubuntu1~14.04.1 | trusty-updates  | amd64, arm64, armhf, i386, powerpc, ppc64el
 libstdc++6 | 4.9.2-10ubuntu13       | vivid           | amd64, arm64, armhf, i386, powerpc, ppc64el
 libstdc++6 | 5.2.1-22ubuntu2        | wily            | amd64, arm64, armhf, i386, powerpc, ppc64el
 libstdc++6 | 5.3.1-14ubuntu2        | xenial          | amd64, arm64, armhf, i386, powerpc, ppc64el, s390x

Avresti bisogno di Trusty (che è anche LTS) o successivo per installare google-chrome da Google, o semplicemente installare quello fornito dai repository Ubuntu sul browser al cromo.


1

Non posso commentare direttamente la risposta di Glutanimate, ma vorrei condividerla comunque. Avevo bisogno di aggiungere una riga aggiuntiva all'installscript:

perl -pe  's|libnspr4 \(\>\= 2\:4\.9\-2\~\)|libnspr4 \(\>\= 4\.12\)|g' "$buildDir/DEBIAN/control.1" > "$buildDir/DEBIAN/control"

Chrome sembra funzionare bene con questo, ma non mi permetterebbe di installarlo altrimenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.