“google-chrome-stable depende do libstdc ++ 6 (= 4.8.0); no entanto: A versão do libstdc ++ 6 no sistema é 4.6.3-1ubuntu5. ”

10

Estou tentando instalar o google-chrome-stable em uma nova instalação do Ubuntu 12.04. Eu corro os seguintes comandos

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

Eu recebo os seguintes erros

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 executo sudo apt-get install -f , apenas removo o google-chrome-stable:

The following packages will be REMOVED
  google-chrome-stable

Se eu procurar as versões necessárias, por exemplo Eu tento sudo apt-get install libstdc++6=4.8.0 não consigo encontrar a versão:

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

Como faço para corrigir isso?

Eu sei que não há mais suporte para a versão de 32 bits do Ubuntu 12.04. Estou executando a versão de 64 bits do Ubuntu.

    
por fmonegaglia 18.04.2016 / 08:23

6 respostas

13

Você está recebendo esses erros porque o Google encerrou o suporte para o Ubuntu 12.04.

Google: terminaremos suporte para o Google Chrome no Linux de 32 bits, Ubuntu Precise (12.04).

Como alternativa, você pode instalar o chromium-browser no qual o Google Chrome é criado.

Você também pode instalar o Ubuntu 14.04 LTS ou o Ubuntu 15.10 - ambos são suportados - para usar o Chrome.

Mas eu sugiro que você espere até 21 de abril, quando o novo Ubuntu 16.04 LTS será lançado.

Você deve considerar que o Ubuntu 12.04 LTS tem apenas um ano de suporte oficial à segurança.

    
por cl-netbox 18.04.2016 / 10:12
6

Última edição (2017-09-13) :

Esta solução não funciona mais para as versões 60 e superiores do Chrome . Os últimos pacotes dependem do libc6 ≥ 2.17 que não pode ser instalado no Ubuntu 12.04. Se você ainda estiver usando o Precise, considere a atualização (como eu fiz) ou, se ainda não conseguir fazer isso, mude para outro navegador (embora, neste momento, seja improvável que você encontre algum que ainda esteja sendo mantido). / p>

Editar (2016-12-06) : parece que o Chrome também depende de uma versão atualizada do libfontconfig1 agora (≥ 2.9.0). Eu atualizei o script de acordo. A nova versão parece estar funcionando bem até agora, mas observe que com cada dependência simulada você pode esperar que o aplicativo fique menos estável.

Editar (2017-06-10) : o Chrome 59 vem com novas dependências (libfontconfig1 ≥ 2.11, libpango e libpangocairo). Eu atualizei o script para removê-los. A mesma advertência quanto à estabilidade do Chrome se aplica novamente.

Solução alternativa para problemas de dependência no Ubuntu 12.04 64bit

O suporte oficial do Chrome para a versão 12.04 do Ubuntu terminou, mas isso não significa que você tenha que abandonar o Google Chrome ainda. O que segue é um tutorial rápido sobre como instalar a versão mais recente do Chrome (a partir de 2016-06-28) no Ubuntu 12.04 64 bits.

Aviso : Esta é uma solução muito hackeada que pode parar de funcionar a qualquer momento. Por favor, certifique-se de que você sabe o que está fazendo antes de prosseguir.

Pré-requisitos

Kernel atualizado

Importante: Observe que a atualização do seu kernel pode vir com seu próprio conjunto de problemas e problemas de compatibilidade de hardware. Certifique-se de que você sabe como mudar para um kernel anterior antes de continuar com esta etapa.

Lançamentos recentes do Chrome dependem de vários recursos do kernel relacionados ao sandbox que não estão disponíveis no kernel padrão do Ubuntu 12.04 (3.2.0). Se você instalou o Ubuntu 12.04 usando uma imagem mais recente (ponto de lançamento 12.04.2 e superior), é provável que você já esteja usando um kernel atualizado; mas se você ainda estiver no lançamento original do kernel, você pode atualizar para a pilha de kernel do Ubuntu 14.04 através do pacote de empilhamento de hardware de LTS :

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

Certifique-se de reiniciar seu sistema depois de executar a atualização do kernel. Se tudo correr bem, o seu sistema deve agora estar usando o kernel Linux 3.13.X.

Problemas de dependência

Se você observar a mensagem de erro recebida ao tentar instalar uma versão recente do Google Chrome, verá dois problemas distintos de dependência:

  1. libstdc++6 (>= 4.8.0) : Esta é a biblioteca C ++ padrão do GNU. As versões do Chrome 50.X e acima dependem da versão 4.8.0 desta biblioteca, mas o Ubuntu 12.04 vem apenas com o 4.6.3 por padrão.
  2. lsb-base (>= 4.1) : este é o pacote Linux Standard Base. Indica a conformidade da distribuição com um conjunto de padrões definidos pela Linux Foundation. As versões do Chrome 50.X + exigem conformidade com os padrões definidos no LSB base 4.1, mas o Ubuntu 12.04 é compatível apenas com o 4.0.

Como se verifica, ambos os problemas podem ser resolvidos com facilidade:

libstdc ++ 6 (& gt; = 4.8.0)

Importante: libstdc ++ 6 é uma biblioteca de sistema importante da qual muitos pacotes diferentes dependem. A atualização deste pacote para uma versão mais recente pode ser perigosa e levar a problemas de estabilidade do sistema. Eu mesmo não tive problemas nos dois sistemas em que executei esta atualização, mas - como sempre - sua milhagem pode variar.

Felizmente para nós, libstdc++6 4.8.X está disponível no Ubuntu oficial builds de teste toolchain PPA . Como primeiro passo, adicionaremos este PPA às nossas fontes de software:

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

A instalação do Google Chrome a partir de agora retirará a dependência libstdc++6 do PPA, eliminando o primeiro problema de dependência. Com isso resolvido, vamos para o segundo problema.

lsb-base (& gt; = 4.1)

Acontece que na verdade não precisamos instalar uma versão atualizada desse pacote para obter versões recentes do Chrome em execução. Por enquanto, o Chrome não parece realmente depender de qualquer um dos padrões modificados no LSB 4.1, então a dependência em lsb-base (>= 4.1) parece ser uma dependência soft que podemos simplesmente remover.

Você poderia fazer isso manualmente, é claro, mas escrevi um script que cuida da maioria das etapas a seguir para você.

Script de instalação

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

Copie o script acima, salve-o como install_chrome.sh e marque-o como executável (via chmod +x install_chrome.sh ou a caixa de diálogo de propriedades do seu gerenciador de arquivos).

Feito isso, você pode executar o script usando:

./install_chrome.sh

O script procederá ao download da última versão estável do Chrome, modifique-a para remover a dependência do lsb-base 4.1 e solicitar que você instale o arquivo .deb atualizado via dpkg .

Parabéns, agora você está usando uma versão atualizada do Google Chrome no Ubuntu 12.04!

Atualizações

Para atualizar o Chrome, basta executar o script novamente.

Compatibilidade futura

Importante: Como essa solução pode parar de funcionar a qualquer momento, recomendamos que você salve sempre o último arquivo .deb de trabalho modificado como backup no caso de o Chrome se recusar a iniciar devido a uma atualização.

Para salvar o instalador modificado mais recente, simplesmente vá para o diretório temporário do script logo após obter o prompt sudo password ao executar o script (ou seja, antes de instalar o arquivo .deb modificado). O diretório temporário deve estar localizado em algum lugar abaixo de /tmp/deb.XXXXXXXXX (onde XXXXXXXXX é uma string aleatória).

    
por Glutanimate 28.06.2016 / 21:10
4

Eu não acho que você pode. Eles acabaram de atualizar e as dependências não podem ser atendidas em 12.04 .

Eu tive o mesmo problema em um travis build e fiz um downgrade. Cargas de versões antigas aqui .

Obviamente não é uma ótima resposta, eu olhei por um bom tempo e não consegui encontrar uma maneira sem rebaixar o nível.

    
por lathonez 18.04.2016 / 09:36
2

Como o Google interrompeu o suporte ao Chrome e 12.04, sua melhor solução é instalar o Chromium:

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
    
por Arahkun 08.06.2016 / 14:48
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.

Basicamente, o Google Chrome está solicitando o lsb-base e o libstdc ++ 6, que não estão disponíveis no 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

Você precisaria do Trusty (que também é o LTS) ou posterior para instalar o google-chrome do Google ou apenas instalar aquele fornecido pelos repositórios do Ubuntu cromo-browser.

    
por Braiam 18.04.2016 / 17:04
1

Não posso comentar diretamente sobre a resposta de Glutanimate, mas gostaria de compartilhá-la de qualquer maneira. Eu precisava adicionar uma linha adicional ao script de instalação:

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

O Chrome parece funcionar bem com isso, mas não permitiria que eu o instalasse de outra forma.

    
por Fabian Dellwing 19.07.2017 / 16:14