web-dev-qa-db-fra.com

"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."

J'essaie d'installer google-chrome-stable sur une nouvelle installation d'ubuntu 12.04. Je lance 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 lance Sudo apt-get install -f, je viens de supprimer google-chrome-stable:

The following packages will be REMOVED
  google-chrome-stable

Si je cherche les versions requises, par exemple J'ai essayé Sudo apt-get install libstdc++6=4.8.0 Je 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 que la version 32 bits d’Ubuntu 12.04 n’est plus supportée. J'utilise la version 64 bits d'Ubuntu.

9
fmonegaglia

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

Google: Nous allons mettre fin au support de Google Chrome sur Linux 32 bits, Ubuntu Precise (12.04).

Vous pouvez également installer le chromium-browser sur 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 pour la sortie de la nouvelle Ubuntu 16.04 LTS.

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

13
cl-netbox

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

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


Modifier (2016-12-06) : Ressemble à 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 bien fonctionner jusqu'à présent, mais veuillez noter qu'avec chaque dépendance simulée, 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 pour autant que vous devez abandonner Chrome pour l'instant. Ce qui suit est un didacticiel rapide sur la procédure d’installation de la dernière version de Chrome (mise à jour en date du 2016-06-28) sur Ubuntu 12.04 64 bits.

Avertissement : Il s’agit d’une solution très désagréable qui pourrait cesser de fonctionner à tout moment. Assurez-vous de savoir ce que vous faites avant de poursuivre.

Conditions préalables

Noyau mis à jour

Important: Veuillez noter que la mise à jour de votre noyau peut comporter son propre ensemble de problèmes et de problèmes de compatibilité matérielle. Assurez-vous de savoir comment passer à un noyau antérieur avant de procéder à cette étape.

Les récentes versions de Chrome dépendent d'un certain nombre de fonctionnalités du noyau liées au sandboxing 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 ultérieure), il est probable que vous portiez déjà un noyau mis à jour. mais si vous êtes toujours sur la version du noyau d'origine, vous pouvez mettre à jour la pile du noyau d'Ubuntu 14.04 via le paquetage de pile d'activation de 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 consultez 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): Il s'agit de la bibliothèque C++ standard GNU. Chrome les versions 50.X et supérieures dépendent de la version 4.8.0 de cette bibliothèque, mais Ubuntu 12.04 est livré uniquement avec 4.6.3 par défaut.
  2. lsb-base (>= 4.1): Ceci est le paquet Linux Standard Base. Il indique que la distribution est conforme à un ensemble de normes définies par Linux Foundation. Chrome Les versions 50.X + exigent la conformité aux normes définies dans LSB base 4.1, mais Ubuntu 12.04 est uniquement compatible avec la version 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. Mettre à jour ce paquetage vers une version plus récente peut être dangereux 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++6 4.8.X est disponible dans la version officielle d'Ubuntu le test de chaîne d'outils génère PPA . Dans un premier temps, nous allons ajouter ce PPA à nos sources de logiciels:

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

L'installation de Google Chrome à partir de ce moment va extraire la dépendance libstdc++6 du PPA, éliminant ainsi le premier problème de dépendance. Ceci 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 paquet pour que les versions récentes de Chrome soient exécutées. Pour le moment, Chrome ne semble dépendre d'aucune des normes modifiées de la base 4.1 de LSB. Par conséquent, la dépendance sur lsb-base (>= 4.1) semble être une dépendance souple que nous pouvons simplement supprimer.

Vous pouvez le faire manuellement, bien sûr, mais j’ai écrit un script qui s’occupe de la plupart des étapes suivantes.

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.sh et marquez-le comme exécutable (via chmod +x install_chrome.sh ou la boîte de dialogue des propriétés de votre gestionnaire de fichiers).

Ceci 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 Chrome, à la modification pour supprimer la dépendance à lsb-base 4.1 et vous invite à installer le fichier .deb 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, relancez simplement le script.

Compatibilité future

Important: Étant donné que cette solution peut ne plus fonctionner à tout moment, je vous conseillerais de toujours sauvegarder le fichier .deb modifié le plus récent en tant que sauvegarde au cas où Chrome refuse soudainement de démarrer en raison d'une mise à jour.

Pour enregistrer le dernier programme d'installation modifié, il vous suffit de vous rendre dans le répertoire temporaire du script juste après avoir obtenu l'invite de mot de passe Sudo lors de l'exécution du script (c'est-à-dire juste avant l'installation du fichier .deb modifié). Le répertoire temporaire doit être situé quelque part sous /tmp/deb.XXXXXXXXX (où XXXXXXXXX est une chaîne aléatoire).

6
Glutanimate

Je ne pense pas que tu peux. Ils viennent de mettre à jour et le les dépendances ne peuvent pas être satisfaites en 12.04 .

J'ai eu le même problème sur un build Travis et j'ai rétrogradé. Charges d'anciennes versions ici .

De toute évidence, ce n’était pas une bonne réponse, j’ai cherché un bon moment et je n’ai pas trouvé de solution sans rétrogradation.

4
lathonez

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
2
Arahkun
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 aurez besoin de Trusty (également LTS) ou d'une version ultérieure pour installer Google Chrome de Google, ou simplement celui fourni par le référentiel chrome du navigateur Ubuntu.

1
Braiam

Je ne peux pas commenter directement la réponse de Glutanimate, mais j'aimerais quand même la partager. J'avais besoin d'ajouter une ligne supplémentaire au script d'installation:

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 cela ne me permettrait pas de l'installer autrement.

1
Fabian Dellwing