Letzte Änderung (2017-09-13) :
Diese Lösung funktioniert nicht mehr für Chrome-Versionen ab 60 . Die neuesten Pakete hängen von libc6 ≥ 2.17 ab, das unter Ubuntu 12.04 nicht installiert werden kann. Wenn Sie Precise weiterhin verwenden, sollten Sie entweder ein Upgrade in Betracht ziehen (wie ich), oder wenn Sie dies immer noch nicht tun können, wechseln Sie zu einem anderen Browser (obwohl es zu diesem Zeitpunkt unwahrscheinlich ist, dass Sie noch einen finden, der noch gewartet wird).
Bearbeiten (06.12.2016) : Chrome hängt anscheinend auch von einer aktualisierten Version von libfontconfig1 ab (≥ 2.9.0). Ich habe das Skript entsprechend aktualisiert. Die neue Version scheint bisher einwandfrei zu funktionieren, aber bitte beachten Sie, dass Sie mit jeder vorgetäuschten Abhängigkeit erwarten können, dass die App weniger stabil wird.
Bearbeiten (2017-06-10) : Chrome 59 enthält neue Abhängigkeiten (libfontconfig1 ≥ 2.11, libpango und libpangocairo). Ich habe das Skript aktualisiert, um diese zu entfernen. Die gleiche Einschränkung hinsichtlich der Stabilität von Chrome gilt erneut.
Problemumgehung für Abhängigkeitsprobleme unter Ubuntu 12.04 64bit
Die offizielle Chrome-Unterstützung für Ubuntu Version 12.04 wurde beendet. Dies bedeutet jedoch nicht, dass Sie Chrome noch nicht verlassen müssen. Im Folgenden finden Sie eine kurze Anleitung zur Installation der neuesten Chrome-Version (Stand: 28.06.2016) unter Ubuntu 12.04 64-Bit.
Warnung : Dies ist eine sehr hackige Lösung, die zu jedem Zeitpunkt möglicherweise nicht mehr funktioniert. Bitte stellen Sie sicher, dass Sie wissen, was Sie tun, bevor Sie fortfahren.
Voraussetzungen
Kernel aktualisiert
Wichtig: Bitte beachten Sie, dass das Aktualisieren Ihres Kernels möglicherweise mit eigenen Problemen und Hardwarekompatibilitätsproblemen verbunden ist. Stellen Sie sicher, dass Sie wissen, wie Sie zu einem früheren Kernel wechseln, bevor Sie mit diesem Schritt fortfahren.
Neuere Chrome-Versionen hängen von einer Reihe von Kernelfunktionen im Zusammenhang mit Sandboxing ab, die im Standardkernel von Ubuntu 12.04 (3.2.0) nicht verfügbar sind. Wenn Sie Ubuntu 12.04 mit einem neueren Image (ab Version 12.04.2) installiert haben, haben Sie wahrscheinlich bereits einen aktualisierten Kernel. Wenn Sie sich jedoch noch in der ursprünglichen Kernel-Version befinden, können Sie über das LTS-Hardware-Enablement-Stack-Paket auf den Kernel-Stack von Ubuntu 14.04 aktualisieren :
sudo apt-get install --install-recommends linux-generic-lts-trusty
Stellen Sie sicher, dass Sie Ihr System nach dem Ausführen des Kernel-Upgrades neu starten. Wenn alles gut gegangen ist, sollte Ihr System jetzt den Linux-Kernel 3.13.X verwenden.
Abhängigkeitsprobleme
Wenn Sie sich die Fehlermeldung ansehen, die Sie erhalten, wenn Sie versuchen, einen aktuellen Chrome-Build zu installieren, werden zwei unterschiedliche Abhängigkeitsprobleme angezeigt:
libstdc++6 (>= 4.8.0)
: Dies ist die GNU-Standard-C ++ - Bibliothek. Chrome-Versionen 50.X und höher hängen von Version 4.8.0 dieser Bibliothek ab, Ubuntu 12.04 wird jedoch standardmäßig nur mit 4.6.3 geliefert.
lsb-base (>= 4.1)
: Dies ist das Linux Standard Base-Paket. Es zeigt an, dass die Distribution einer Reihe von Standards entspricht, die von der Linux Foundation festgelegt wurden. Chrome-Versionen 50.X + erfordern die Einhaltung der in LSB Base 4.1 definierten Standards, Ubuntu 12.04 ist jedoch nur mit 4.0 kompatibel.
Wie sich herausstellt, können diese beiden Probleme ziemlich einfach behoben werden:
libstdc ++ 6 (> = 4.8.0)
Wichtig: libstdc ++ 6 ist eine wichtige Systembibliothek, von der viele verschiedene Pakete abhängen. Ein Upgrade dieses Pakets auf eine neuere Version kann gefährlich sein und zu Problemen mit der Systemstabilität führen. Ich habe selbst keine Probleme mit den beiden Systemen festgestellt, auf denen ich dieses Upgrade durchgeführt habe, aber - wie immer - kann Ihr Kilometerstand variieren.
Zum Glück ist libstdc++6
4.8.X in den offiziellen Ubuntu- Toolchain- Testbuilds für PPA verfügbar . Als ersten Schritt fügen wir diese PPA zu unseren Softwarequellen hinzu:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
Wenn Sie Google Chrome ab diesem Zeitpunkt libstdc++6
installieren, wird die Abhängigkeit von der PPA entfernt, wodurch das erste Abhängigkeitsproblem behoben wird. Nachdem dies gelöst ist, fahren wir mit der zweiten Ausgabe fort.
lsb-Base (> = 4,1)
Es stellt sich heraus, dass wir keine aktualisierte Version dieses Pakets installieren müssen, um die neuesten Versionen von Chrome zum Laufen zu bringen. Im Moment scheint Chrome nicht wirklich von einem der geänderten Standards in LSB Base 4.1 abhängig lsb-base (>= 4.1)
zu sein , daher scheint die Abhängigkeit von eine weiche Abhängigkeit zu sein, die wir einfach entfernen können.
Sie können dies natürlich manuell tun, aber ich habe ein Skript geschrieben, das die meisten der folgenden Schritte für Sie erledigt.
Installationsskript
#!/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"
Kopieren Sie das obige Skript, speichern Sie es als install_chrome.sh
und markieren Sie es als ausführbar (entweder über chmod +x install_chrome.sh
oder über das Eigenschaftendialogfeld Ihres Dateimanagers).
Nachdem Sie dies getan haben, können Sie das Skript ausführen mit:
./install_chrome.sh
Das Skript lädt die neueste stabile Chrome-Version herunter, ändert sie, um die Abhängigkeit von lsb-base 4.1 zu beseitigen, und fordert Sie auf, die aktualisierte .deb
Datei über zu installieren dpkg
.
Herzlichen Glückwunsch, Sie verwenden jetzt eine aktualisierte Version von Google Chrome unter Ubuntu 12.04!
Aktualisierung
Um Chrome zu aktualisieren, führen Sie das Skript einfach erneut aus.
Zukünftige Kompatibilität
Wichtig: Da diese Lösung möglicherweise jederzeit nicht mehr funktioniert, empfehle ich Ihnen, immer die neueste funktionierende geänderte .deb
Datei als Backup zu speichern, falls Chrome aufgrund eines Updates plötzlich den Start verweigert.
Um das zuletzt geänderte Installationsprogramm zu speichern, rufen Sie einfach das temporäre Verzeichnis des Skripts auf, nachdem Sie sudo
beim Ausführen des Skripts die Kennwortabfrage erhalten haben (dh direkt vor der Installation der geänderten .deb
Datei). Das temporäre Verzeichnis sollte sich irgendwo unter befinden /tmp/deb.XXXXXXXXX
(wo XXXXXXXXX
sich eine zufällige Zeichenfolge befindet).