"Google-chrome-stable dépend de libstdc ++ 6 (> = 4.8.0); cependant: la version de libstdc ++ 6 sur le système est 4.6.3-1ubuntu5. ”

10

J'essaie d'installer google-chrome-stablesur une nouvelle installation Ubuntu 12.04. J'exécute les commandes suivantes

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

Je reçois les erreurs suivantes

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

Lorsque je cours, sudo apt-get install -fj'ai simplement supprimé google-chrome-stable:

The following packages will be REMOVED
  google-chrome-stable

Si je cherche les versions requises, par exemple j'essaye, sudo apt-get install libstdc++6=4.8.0je ne trouve pas la version:

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

Comment puis-je résoudre ce problème?

Je sais qu'il n'y a plus de support pour la version 32 bits d'Ubuntu 12.04. J'utilise la version Ubuntu 64 bits.

fmonegaglia
la source
@glut le titre réel est exact. Il indique le message d'erreur exact.
Braiam
@Braiam Je dirais que ce n'est que partiellement exact car il n'inclut pas l'erreur
lsb_base
@Glutanimate mais lsb-base n'a pas de bibliothèque / binaire que Chrome utilise.
Braiam
@Braiam Ok, c'est vrai. Maintenant que j'y pense, la plupart des utilisateurs rechercheront de toute façon la première partie du message d'erreur, alors restons-en là.
Glutanimate

Réponses:

14

Vous recevez ces erreurs car Google a mis fin à la prise en charge d'Ubuntu 12.04.

Google: Nous mettrons fin à la prise en charge de Google Chrome sur Linux 32 bits, Ubuntu Precise (12.04).

Vous pouvez également installer le chromium-browsersur lequel Google Chrome est construit.

Vous pouvez également installer Ubuntu 14.04 LTS ou Ubuntu 15.10 - les deux sont pris en charge - pour utiliser Chrome.

Mais je vous suggère d'attendre le 21 avril lorsque le nouveau Ubuntu 16.04 LTS sortira.

Vous devriez considérer qu'Ubuntu 12.04 LTS ne dispose que d'un an de support de sécurité officiel.

cl-netbox
la source
J'ai la version Ubuntu 64 bits. Je viens de réinstaller le système d'exploitation, j'avais Chrome fonctionnant sur la même configuration exacte jusqu'à il y a une semaine. Mon mauvais, je n'ai pas dit ça, désolé
fmonegaglia
5
@fmonegaglia: La chose la plus importante ici est qu'Ubuntu 12.04 n'est généralement plus pris en charge, indépendamment de l'utilisation de l'édition Ubuntu 32 bits ou 64 bits. Google Chrome ne peut être installé que sur les éditions Ubuntu 64 bits qui sont prises en charge, à partir d'Ubuntu 14.04 ... :)
cl-netbox
C'est certainement la bonne réponse. Malheureusement, certains d'entre nous sont bloqués avec 12.04 pour une raison quelconque. Des efforts devraient être consacrés à la sortie de la version 12.04 plutôt que des solutions temporaires comme le déclassement (ci-dessous). Cependant, il suffit parfois de faire fonctionner les choses.
lathonez le
6

Dernière édition (13/09/2017) :

Cette solution ne fonctionne plus pour les versions 60 et supérieures de Chrome . Les derniers packages dépendent de libc6 ≥ 2.17 qui ne peut pas être installé sur Ubuntu 12.04. Si vous utilisez toujours Precise, vous devriez soit envisager une mise à niveau (comme je l'ai fait), ou si vous ne pouvez pas le faire encore, basculez vers un autre navigateur (bien qu'à ce stade, il est peu probable que vous en trouviez encore en cours de maintenance).


Edit (2016-12-06) : Il semble que Chrome dépend également d'une version mise à jour de libfontconfig1 (≥ 2.9.0). J'ai mis à jour le script en conséquence. La nouvelle version semble fonctionner correctement jusqu'à présent, mais veuillez noter qu'avec chaque dépendance feinte, vous pouvez vous attendre à ce que l'application devienne moins stable.

Edit (2017-06-10) : Chrome 59 est livré avec de nouvelles dépendances (libfontconfig1 ≥ 2.11, libpango et libpangocairo). J'ai mis à jour le script pour les supprimer. La même mise en garde quant à la stabilité de Chrome s'applique à nouveau.


Solution de contournement pour les problèmes de dépendance sur Ubuntu 12.04 64 bits

La prise en charge officielle de Chrome pour Ubuntu version 12.04 est terminée, mais cela ne signifie pas que vous devez abandonner Chrome pour l'instant. Ce qui suit est un rapide tutoriel sur la façon d'installer la dernière version de Chrome (à partir du 2016-06-28) sur Ubuntu 12.04 64 bits.

Avertissement : il s'agit d'une solution très piratée qui peut cesser de fonctionner à tout moment. Veuillez vous assurer de savoir ce que vous faites avant de continuer.

Conditions préalables

Noyau mis à jour

Important: veuillez noter que la mise à jour de votre noyau peut entraîner son propre ensemble de problèmes et de problèmes de compatibilité matérielle. Assurez-vous de savoir comment basculer vers un noyau antérieur avant de poursuivre cette étape.

Les versions récentes de Chrome dépendent d'un certain nombre de fonctionnalités du noyau liées au sandbox qui ne sont pas disponibles dans le noyau par défaut d'Ubuntu 12.04 (3.2.0). Si vous avez installé Ubuntu 12.04 en utilisant une image plus récente (version 12.04.2 et supérieure), il est probable que vous portiez déjà un noyau mis à jour; mais si vous êtes toujours sur la version originale du noyau, vous pouvez mettre à jour la pile de noyau d'Ubuntu 14.04 via le paquet de pile d'activation du matériel LTS :

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

Assurez-vous de redémarrer votre système après avoir effectué la mise à niveau du noyau. Si tout s'est bien passé, votre système devrait maintenant utiliser le noyau Linux 3.13.X.

Problèmes de dépendance

Si vous regardez le message d'erreur que vous recevez lorsque vous essayez d'installer une version récente de Chrome, vous verrez deux problèmes de dépendance distincts:

  1. libstdc++6 (>= 4.8.0): Ceci est la bibliothèque C ++ standard GNU. Chrome publie 50.X et versions ultérieures dépendent de la version 4.8.0 de cette bibliothèque, mais Ubuntu 12.04 n'est fourni qu'avec 4.6.3 par défaut.
  2. lsb-base (>= 4.1): Il s'agit du package Linux Standard Base. Il indique la conformité de la distribution à un ensemble de normes établies par la Linux Foundation. Les versions 50.X + de Chrome nécessitent la conformité aux normes définies dans LSB base 4.1, mais Ubuntu 12.04 n'est compatible qu'avec 4.0.

Il s'avère que ces deux problèmes peuvent être résolus assez facilement:

libstdc ++ 6 (> = 4.8.0)

Important: libstdc ++ 6 est une bibliothèque système importante dont dépendent de nombreux packages différents. La mise à niveau de ce package vers une version plus récente peut être dangereuse et entraîner des problèmes de stabilité du système. Je n'ai moi-même rencontré aucun problème sur les deux systèmes sur lesquels j'ai effectué cette mise à niveau, mais - comme toujours - votre kilométrage peut varier.

Heureusement pour nous, libstdc++64.8.X est disponible dans le test officiel Ubuntu toolchain builds PPA . Dans un premier temps, nous ajouterons ce PPA à nos sources logicielles:

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

L'installation de Google Chrome à partir de ce moment entraînera la libstdc++6dépendance du PPA, éliminant le premier problème de dépendance. Avec cela résolu, passons au deuxième problème.

lsb-base (> = 4.1)

Il s'avère que nous n'avons pas réellement besoin d'installer une version mise à jour de ce package pour faire fonctionner les versions récentes de Chrome. Pour l'instant, Chrome ne semble dépendre d'aucune des normes modifiées dans LSB base 4.1, donc la dépendance sur lsb-base (>= 4.1)semble être une dépendance douce que nous pouvons simplement supprimer.

Vous pouvez le faire manuellement, bien sûr, mais j'ai écrit un script qui prend en charge la plupart des étapes suivantes pour vous.

Script d'installation

#!/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"

Copiez le script ci-dessus, enregistrez-le sous install_chrome.shet marquez-le comme exécutable (via chmod +x install_chrome.shou la boîte de dialogue des propriétés de votre gestionnaire de fichiers).

Cela fait, vous pouvez exécuter le script en utilisant:

./install_chrome.sh

Le script procédera au téléchargement de la dernière version stable de Chrome, la modifiera pour supprimer la dépendance à lsb-base 4.1 et vous invitera à installer le .debfichier mis à jour via dpkg.

Félicitations, vous utilisez maintenant une version mise à jour de Google Chrome sur Ubuntu 12.04!

Mises à jour

Pour mettre à jour Chrome, réexécutez simplement le script.

Compatibilité future

Important: Étant donné que cette solution peut cesser de fonctionner à tout moment, je vous conseille de toujours enregistrer le dernier .debfichier modifié de travail en tant que sauvegarde au cas où Chrome refuserait soudainement de démarrer en raison d'une mise à jour.

Pour enregistrer le dernier programme d'installation modifié, dirigez-vous simplement vers le répertoire temporaire du script juste après avoir reçu l' sudoinvite de mot de passe lors de l'exécution du script (c'est-à-dire juste avant d'installer le .debfichier modifié ). Le répertoire temporaire doit être situé quelque part sous /tmp/deb.XXXXXXXXX(où XXXXXXXXXest une chaîne aléatoire).

Glutanimate
la source
1
En raison des politiques appliquées par mon entreprise, je suis bloqué avec Ubuntu 12.04. J'ai quand même pu installer Chrome en utilisant votre script. Merci beaucoup!
Eugeniu Rosca
4

Je ne pense pas que vous puissiez. Ils viennent d'être mis à jour et les dépendances ne peuvent pas être satisfaites en 12.04 .

J'ai eu le même problème sur une version travis et j'ai rétrogradé. Beaucoup d'anciennes versions ici .

Évidemment, ce n'est pas une bonne réponse, j'ai cherché pendant un bon moment et je n'ai pas pu trouver un moyen sans rétrograder.

lathonez
la source
1
Je vais avec celui-ci. Ce n'est bien sûr pas la meilleure façon de procéder, mais cela fonctionne pour moi en tant que solution temporaire, car je ne peux pas passer à des versions ultérieures d'Ubuntu pour le moment.
fmonegaglia
Le lien vers mirror.pcbeta.com a disparu 404.
AlexD
2

Comme Google a cessé de prendre en charge Chrome et 12.04, votre meilleure solution consiste à installer Chromium à la place:

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
Arahkun
la source
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.

Fondamentalement, Google Chrome demande lsb-base et libstdc ++ 6 qui ne sont pas disponibles dans 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

Vous auriez besoin de Trusty (qui est également LTS) ou version ultérieure pour installer google-chrome à partir de Google, ou simplement installer celui fourni par le navigateur chrome de référentiels Ubuntu.

Braiam
la source
1

Je ne peux pas commenter directement la réponse de Glutanimate, mais je voudrais quand même la partager. J'avais besoin d'ajouter une ligne supplémentaire à l'installscript:

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

Chrome semble fonctionner correctement avec cela, mais il ne me permettrait pas de l'installer autrement.

Fabian Dellwing
la source