Ultima modifica (13/09/2017) :
Questa soluzione non funziona più per le versioni di Chrome 60 e successive . Gli ultimi pacchetti dipendono da libc6 ≥ 2.17 che non può essere installato su Ubuntu 12.04. Se stai ancora utilizzando Precise, dovresti prendere in considerazione l'aggiornamento (come ho fatto io), o se non riesci ancora a farlo, passa a un altro browser (anche se a questo punto è improbabile trovare quelli che vengono ancora mantenuti).
Modifica (06-12-2016) : Sembra che Chrome dipenda anche da una versione aggiornata di libfontconfig1 (≥ 2.9.0). Ho aggiornato lo script di conseguenza. La nuova versione sembra funzionare bene finora, ma tieni presente che con ogni dipendenza finta puoi aspettarti che l'app diventi meno stabile.
Modifica (10/06/2017) : Chrome 59 include nuove dipendenze (libfontconfig1 ≥ 2.11, libpango e libpangocairo). Ho aggiornato lo script per rimuoverli. Lo stesso avvertimento sulla stabilità di Chrome si applica nuovamente.
Soluzione alternativa per problemi di dipendenza su Ubuntu 12.04 64 bit
Il supporto ufficiale di Chrome per Ubuntu versione 12.04 è terminato, ma ciò non significa che devi abbandonare Chrome ancora. Quello che segue è un breve tutorial su come installare l'ultima versione di Chrome (a partire dal 28/06/2016) su Ubuntu 12.04 a 64 bit.
Avvertenza : questa è una soluzione molto hacker che potrebbe smettere di funzionare in qualsiasi momento. Assicurati di sapere cosa stai facendo prima di procedere.
Pre-requisiti
Kernel aggiornato
Importante: si noti che l'aggiornamento del kernel potrebbe comportare una serie di problemi e problemi di compatibilità hardware. Assicurati di sapere come passare a un kernel precedente prima di procedere con questo passaggio.
Le versioni recenti di Chrome dipendono da una serie di funzionalità del kernel relative al sandbox che non sono disponibili nel kernel predefinito di Ubuntu 12.04 (3.2.0). Se hai installato Ubuntu 12.04 usando un'immagine più recente (punto versione 12.04.2 e successive), è probabile che tu abbia già un kernel aggiornato; ma se sei ancora nella versione del kernel originale puoi aggiornare allo stack del kernel di Ubuntu 14.04 tramite il pacchetto dello stack di abilitazione hardware LTS :
sudo apt-get install --install-recommends linux-generic-lts-trusty
Assicurati di riavviare il sistema dopo aver eseguito l'aggiornamento del kernel. Se tutto è andato bene, il tuo sistema dovrebbe ora utilizzare il kernel Linux 3.13.X.
Problemi di dipendenza
Se guardi il messaggio di errore che ricevi quando provi a installare una build di Chrome recente, vedrai due distinti problemi di dipendenza:
libstdc++6 (>= 4.8.0)
: Questa è la libreria C ++ standard GNU. Le versioni di Chrome 50.X e successive dipendono dalla versione 4.8.0 di questa libreria, ma Ubuntu 12.04 viene fornito con 4.6.3 per impostazione predefinita.
lsb-base (>= 4.1)
: Questo è il pacchetto base standard Linux. Indica la conformità della distribuzione con una serie di standard stabiliti dalla Linux Foundation. Le versioni di Chrome 50.X + richiedono la conformità agli standard definiti in LSB base 4.1, ma Ubuntu 12.04 è compatibile solo con 4.0.
A quanto pare entrambi questi problemi possono essere risolti piuttosto facilmente:
libstdc ++ 6 (> = 4.8.0)
Importante: libstdc ++ 6 è una libreria di sistema importante da cui dipendono molti pacchetti diversi. L'aggiornamento di questo pacchetto a una versione più recente potrebbe essere pericoloso e potrebbe causare problemi di stabilità del sistema. Non ho riscontrato alcun problema sui due sistemi su cui ho eseguito questo aggiornamento, ma - come sempre - il tuo chilometraggio potrebbe variare.
Fortunatamente per noi, libstdc++6
4.8.X è disponibile nel test ufficiale della toolchain Ubuntu che costruisce PPA . Come primo passo aggiungeremo questo PPA alle nostre fonti di software:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
L'installazione di Google Chrome da questo punto in poi trarrà la libstdc++6
dipendenza dal PPA, eliminando il primo problema di dipendenza. Con questo risolto, procediamo al secondo numero.
lsb-base (> = 4.1)
Si scopre che non è necessario installare una versione aggiornata di questo pacchetto per far funzionare le versioni recenti di Chrome. Per ora Chrome non sembra dipendere effettivamente da nessuno degli standard modificati nella base 4.1 di LSB, quindi la dipendenza da lsb-base (>= 4.1)
sembra essere una dipendenza leggera che possiamo semplicemente rimuovere.
Potresti farlo manualmente, ovviamente, ma ho scritto uno script che si occupa della maggior parte dei seguenti passaggi per te.
Script di installazione
#!/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"
Copia lo script sopra, salvalo come install_chrome.sh
e contrassegnalo come eseguibile (tramite chmod +x install_chrome.sh
o la finestra di dialogo delle proprietà del tuo file manager).
Fatto ciò puoi eseguire lo script usando:
./install_chrome.sh
Lo script procederà a scaricare l'ultima versione stabile di Chrome, modificarla per rimuovere la dipendenza da lsb-base 4.1 e richiedere di installare il .deb
file aggiornato tramite dpkg
.
Congratulazioni, ora stai utilizzando una versione aggiornata di Google Chrome su Ubuntu 12.04!
aggiornamenti
Per aggiornare Chrome è sufficiente eseguire nuovamente lo script.
Compatibilità futura
Importante: poiché questa soluzione potrebbe smettere di funzionare in qualsiasi momento, ti consiglio di salvare sempre l'ultimo .deb
file modificato funzionante come backup nel caso in cui Chrome si rifiuti improvvisamente di avviarsi a causa di un aggiornamento.
Per salvare l'ultimo programma di installazione modificato, basta andare nella directory temporanea dello script subito dopo aver ricevuto la sudo
richiesta della password quando si esegue lo script (ovvero prima di installare il .deb
file modificato ). La directory temporanea dovrebbe trovarsi da qualche parte sotto /tmp/deb.XXXXXXXXX
(dove si XXXXXXXXX
trova una stringa casuale).