Son Düzenleme (2017-09-13) :
Bu çözüm artık Chrome 60 ve sonraki sürümlerde çalışmaz . En son paketler, Ubuntu 12.04'e kurulamayan libc6 ≥ 2.17'ye bağlıdır. Hâlâ Precise kullanıyorsanız, yükseltmeyi (benim yaptığım gibi) düşünmelisiniz veya bunu hala yapamıyorsanız, başka bir tarayıcıya geçin (bu noktada hala korunmakta olan herhangi bir şeyi bulma olasılığınız olmasa da).
Edit (2016-12-06) : Chrome'un şimdi libfontconfig1'in güncellenmiş bir sürümüne de bağlı olduğu anlaşılıyor (≥ 2.9.0). Senaryoyu buna göre güncelledim. Yeni sürüm şu ana kadar iyi çalışıyor gibi görünüyor, ancak her bir sahte bağımlılıkla uygulamanın daha az kararlı olmasını bekleyebileceğinizi lütfen unutmayın.
Düzenleme (2017-06-10) : Chrome 59 yeni bağımlılıklarla birlikte gelir (libfontconfig1 ≥ 2.11, libpango ve libpangocairo). Bunları kaldırmak için komut dosyasını güncelledim. Chrome'un kararlılığıyla aynı uyarı tekrar uygulanır.
Ubuntu 12.04 64bit'te bağımlılık sorunları için geçici çözüm
Ubuntu sürüm 12.04 için resmi Chrome desteği sona erdi, ancak bu, Chrome'u henüz terk etmeniz gerektiği anlamına gelmiyor. Aşağıda, Ubuntu 12.04 64-bit'e en son Chrome sürümünün (2016-06-28 itibariyle) nasıl yükleneceği hakkında hızlı bir eğitim verilmektedir.
Uyarı : Bu, herhangi bir zamanda çalışmayı durdurabilecek çok hackish bir çözümdür. Lütfen devam etmeden önce ne yaptığınızı bildiğinizden emin olun.
Ön koşul
Güncellenmiş çekirdek
Önemli: Çekirdeğinizi güncellemenin kendi sorunları ve donanım uyumluluğu sorunları ile gelebileceğini lütfen unutmayın. Bu adıma geçmeden önce daha önceki bir çekirdeğe nasıl geçeceğinizi bildiğinizden emin olun.
Son Chrome sürümleri, sanal alanla ilgili, Ubuntu 12.04'ün varsayılan çekirdeğinde (3.2.0) bulunmayan bir dizi çekirdek özelliğe bağlıdır. Ubuntu 12.04'ü daha yeni bir görüntü (nokta sürümü 12.04.2 ve üstü) kullanarak yüklediyseniz, zaten güncellenmiş bir çekirdeğe spor yapma olasılığınız vardır; ancak hala orijinal çekirdek sürümündeyseniz, LTS donanım etkinleştirme yığını paketi aracılığıyla Ubuntu 14.04'ün çekirdek yığınına güncelleyebilirsiniz :
sudo apt-get install --install-recommends linux-generic-lts-trusty
Çekirdek yükseltmesini gerçekleştirdikten sonra sisteminizi yeniden başlattığınızdan emin olun. Her şey yolunda giderse, sisteminiz şimdi Linux çekirdeği 3.13.X kullanıyor olmalıdır.
Bağımlılık sorunları
Yeni bir Chrome derlemesi kurmaya çalışırken aldığınız hata mesajına bakarsanız, iki farklı bağımlılık sorunu görürsünüz:
libstdc++6 (>= 4.8.0)
: Bu GNU standart C ++ kütüphanesidir. Chrome 50.X ve sonraki sürümleri bu kitaplığın 4.8.0 sürümüne bağlıdır, ancak Ubuntu 12.04 varsayılan olarak yalnızca 4.6.3 ile birlikte gelir.
lsb-base (>= 4.1)
: Bu Linux Standart Taban paketidir. Dağıtımın Linux Vakfı tarafından belirlenen bir dizi standartla uyumluluğunu gösterir. Chrome 50.X + sürümlerini LSB temel 4.1'de tanımlanan standartlara uymayı gerektirir, ancak Ubuntu 12.04 yalnızca 4.0 ile uyumludur.
Anlaşıldığı gibi, bu sorunların her ikisi de kolayca düzeltilebilir:
libstdc ++ 6 (> = 4.8.0)
Önemli: libstdc ++ 6, birçok farklı paketin bağımlı olduğu önemli bir sistem kütüphanesidir. Bu paketi daha yeni bir sürüme yükseltmek tehlikeli olabilir ve sistem kararlılığı sorunlarına yol açabilir. Bu yükseltmeyi gerçekleştirdiğim iki sistemde kendimle ilgili herhangi bir sorun yaşamadım, ancak - her zaman olduğu gibi - kilometreniz değişebilir.
Neyse ki bizim için, libstdc++6
4.8.X resmi Ubuntu araç zinciri testinde PPA oluşturur . İlk adım olarak bu PPA'yı yazılım kaynaklarımıza ekleyeceğiz:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
Google Chrome'u bu noktadan sonra yüklemek, libstdc++6
bağımlılığı PPA'dan alır ve ilk bağımlılık sorununu ortadan kaldırır. Bu çözüldükten sonra, ikinci sayıya geçelim.
lsb-tabanı (> = 4.1)
Chrome'un son sürümlerini çalıştırmak için aslında bu paketin güncellenmiş bir sürümünü yüklememiz gerekmediği ortaya çıktı. Şimdilik Chrome, LSB temel 4.1'deki değiştirilmiş standartlardan hiçbirine bağlı görünmüyor, bu nedenle bağımlılık lsb-base (>= 4.1)
, basitçe kaldırabileceğimiz yumuşak bir bağımlılık gibi görünüyor.
Bunu manuel olarak yapabilirsiniz, ancak sizin için aşağıdaki adımların çoğunu halleden bir senaryo yazdım.
Kurulum betiği
#!/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"
Yukarıdaki komut dosyasını kopyalayın, olarak kaydedin install_chrome.sh
ve yürütülebilir olarak işaretleyin (yoluyla chmod +x install_chrome.sh
veya dosya yöneticinizin özellikler iletişim kutusu).
Bunu yaptıktan sonra komut dosyasını kullanarak şunları yapabilirsiniz:
./install_chrome.sh
Komut dosyası, en son kararlı Chrome sürümünü indirmeye devam edecek, lsb-base 4.1 bağımlılığını kaldırmak için değiştirecek ve güncellenmiş .deb
dosyayı yüklemenizi isteyecektir dpkg
.
Tebrikler, şimdi Ubuntu 12.04'te güncellenmiş bir Google Chrome sürümü kullanıyorsunuz!
Güncellemeler
Chrome'u güncellemek için komut dosyasını tekrar çalıştırmanız yeterlidir.
Gelecekteki uyumluluk
Önemli: Bu çözüm herhangi bir zamanda çalışmayı durdurabileceğinden, .deb
Chrome'un bir güncelleme nedeniyle aniden başlamayı reddetmesi durumunda , en son çalışan değiştirilmiş dosyayı yedek olarak kaydetmenizi tavsiye ederim .
En son değiştirilen yükleyiciyi kaydetmek için, komut dosyasını sudo
çalıştırırken parola istemini aldıktan hemen sonra komut dosyasının geçici dizinine gidin (yani değiştirilen .deb
dosyayı yüklemeden hemen önce ). Geçici dizin altında bir yerde bulunması gerekir /tmp/deb.XXXXXXXXX
(burada XXXXXXXXX
rasgele dizedir).