Ú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:
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.
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++6
4.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++6
dependê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.sh
e marque-o como executável (via chmod +x install_chrome.sh
diá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 .deb
arquivo 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 .deb
arquivo 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 sudo
prompt de senha ao executar o script (ou seja, antes de instalar o .deb
arquivo modificado ). O diretório temporário deve estar localizado em algum lugar abaixo /tmp/deb.XXXXXXXXX
(onde XXXXXXXXX
está uma sequência aleatória).