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

10

Estou tentando instalar google-chrome-stableem uma nova instalação do ubuntu 12.04. Eu executo 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.0não 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 do Ubuntu de 64 bits.

fmonegaglia
fonte
@glut o título real é preciso. Diz a mensagem de erro exata.
Braiam
@Braiam Eu diria que é apenas parcialmente preciso, porque ele não inclui o erro lsb_base
Glutanimate
@ Glutanimate, mas o lsb-base não tem biblioteca / binário que o Chrome use.
Braiam
@Braiam Ok, é verdade. Agora que penso nisso, a maioria dos usuários pesquisará a primeira parte da mensagem de erro, então vamos continuar com isso.
Glutanimate

Respostas:

14

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

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

Como alternativa, você pode instalar o chromium-browserGoogle Chrome.

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

Mas 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 possui apenas um ano de suporte oficial de segurança.

cl-netbox
fonte
Eu tenho a versão do Ubuntu de 64 bits. Acabei de reinstalar o sistema operacional, o Chrome funcionava na mesma configuração exata até uma semana atrás. Meu mau Eu não disse que, desculpe
fmonegaglia
5
@fmonegaglia: A coisa mais importante aqui é que o Ubuntu 12.04 geralmente não é mais suportado, independentemente de a edição Ubuntu de 32 ou 64 bits estar em uso. Google Chrome só pode ser instalado em edições Ubuntu de 64 bits que são suportados, a partir do Ubuntu 14.04 ... :)
cl-netbox
Esta é definitivamente a resposta correta. Infelizmente, alguns de nós estão presos ao 12.04 por qualquer motivo. O esforço deve ser gasto saindo da versão 12.04, em vez de soluções temporárias, como a desclassificação (abaixo). No entanto, às vezes você só precisa fazer as coisas funcionarem.
Lathonez
6

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

Esta solução não funciona mais para o Chrome a partir dos 60 anos . Os pacotes mais recentes dependem da libc6 ≥ 2.17 que não pode ser instalada no Ubuntu 12.04. Se você ainda estiver usando o Precise, considere atualizar (como eu fiz) ou, se ainda não puder fazer isso, mude para outro navegador (embora neste momento seja improvável que você encontre algum que ainda esteja sendo mantido).


Editar (06-12-2016) : 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, a cada dependência fingida, você pode esperar que o aplicativo se torne menos estável.

Editar (10/06/2017) : o Chrome 59 vem com novas dependências (libfontconfig1 ≥ 2.11, libpango e libpangocairo). Atualizei o script para removê-los. A mesma ressalva 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 o Ubuntu versão 12.04 terminou, mas isso não significa que você precise abandonar o Chrome ainda. A seguir, é apresentado um tutorial rápido sobre como instalar a versão mais recente do Chrome (a partir de 28/06/2016) no Ubuntu 12.04 de 64 bits.

Aviso : Esta é uma solução muito hackiana que pode parar de funcionar a qualquer momento. Certifique-se de saber 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 saber como alternar para um kernel anterior antes de prosseguir com esta etapa.

As versões recentes do Chrome dependem de vários recursos do kernel relacionados ao sandboxing 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 (versão 12.04.2 e acima), é provável que você já esteja com um kernel atualizado; mas se você ainda está na versão original do kernel, pode atualizar para a pilha do kernel do Ubuntu 14.04 através do pacote da pilha de ativação do hardware LTS :

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

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

Problemas de dependência

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

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

Acontece que esses dois problemas podem ser corrigidos com bastante facilidade:

libstdc ++ 6 (> = 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 nenhum problema nos dois sistemas em que realizei essa atualização, mas - como sempre - sua milhagem pode variar.

Felizmente para nós, o libstdc++64.8.X está disponível no teste oficial da cadeia de ferramentas do Ubuntu , que cria o 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 deste momento puxará a libstdc++6dependência do PPA, eliminando o primeiro problema de dependência. Com isso resolvido, vamos prosseguir para a segunda questão.

lsb-base (> = 4.1)

Acontece que na verdade não precisamos instalar uma versão atualizada deste pacote para que versões recentes do Chrome sejam executadas. Por enquanto, o Chrome não parece realmente depender de nenhum dos padrões modificados no LSB base 4.1, portanto a dependência lsb-base (>= 4.1)parece ser uma dependência simples que podemos simplesmente remover.

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

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.she marque-o como executável (via chmod +x install_chrome.shdiálogo ou nas propriedades do seu gerenciador de arquivos).

Feito isso, você pode executar o script usando:

./install_chrome.sh

O script continuará para baixar a versão estável mais recente do Chrome, modifique-a para remover a dependência do lsb-base 4.1 e solicitará a instalação do .debarquivo 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 .debarquivo modificado em funcionamento mais recente como backup, caso o Chrome se recuse a iniciar devido a uma atualização.

Para salvar o instalador modificado mais recente, basta ir para o diretório temporário do script logo após receber o sudoprompt de senha ao executar o script (ou seja, antes de instalar o .debarquivo modificado ). O diretório temporário deve estar localizado em algum lugar abaixo /tmp/deb.XXXXXXXXX(onde XXXXXXXXXestá uma sequência aleatória).

Glutanimado
fonte
11
Devido às políticas impostas pela minha empresa, estou preso ao Ubuntu 12.04. Consegui instalar o chrome de qualquer maneira usando seu script. Muito obrigado!
Eugeniu Rosca
4

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

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

Obviamente, não é uma ótima resposta, procurei um bom tempo e não consegui encontrar um caminho sem fazer o downgrade.

lathonez
fonte
11
Eu estou indo com este. Obviamente, não é o melhor caminho a percorrer, mas funciona para mim como uma solução temporária, já que não posso atualizar para versões posteriores do Ubuntu agora.
Fmonegaglia
O link para mirror.pcbeta.com ido 404.
AlexD
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
Arahkun
fonte
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 solicita 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 é LTS) ou posterior para instalar o google-chrome a partir do Google, ou apenas instalar o fornecido pelos repositórios do Ubuntu chromium-browser.

Braiam
fonte
1

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

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 me permitiria instalá-lo de outra forma.

Fabian Dellwing
fonte