“Google-chrome-stabil, libstdc ++ 6'ya bağlıdır (> = 4.8.0); ancak sistemdeki libstdc ++ 6 sürümü 4.6.3-1ubuntu5'tir. ”


10

google-chrome-stableYeni bir ubuntu 12.04 kurulumuna yüklemeye çalışıyorum . Aşağıdaki komutları çalıştırıyorum

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb

Aşağıdaki hataları alıyorum

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

Ne zaman koşmak sudo apt-get install -fben sadece google-chrome-istikrarlı kaldırıldı:

The following packages will be REMOVED
  google-chrome-stable

Gerekli sürümleri ararsanız, örneğin denerim sudo apt-get install libstdc++6=4.8.0sürümü bulamıyorum:

E: Version ‘4.8.0’ for ‘libstdc++6’ was not found

Bunu nasıl düzeltebilirim?

Ubuntu 12.04'ün 32bit sürümü için artık destek olmadığını biliyorum. 64bit Ubuntu sürümünü çalıştırıyorum.


@glut gerçek başlık doğrudur. Kesin hata mesajını söylüyor.
Braiam

@Braiam Ben lsb_base hatası içermiyor çünkü sadece kısmen doğru olduğunu iddia ediyorum
Glutanimate

@Glutanimate ancak lsb- base'de Chrome'un kullandığı kitaplık / ikili dosya yok.
Braiam

@Braiam Tamam, doğru. Şimdi düşünüyorum, çoğu kullanıcı yine de hata mesajının ilk bölümünü arayacak, bu yüzden bununla kalalım.
16:31

Yanıtlar:


14

Google, Ubuntu 12.04 desteğini sona erdirdiği için bu hataları alıyorsunuz.

Google: 32 bit Linux Ubuntu Precise (12.04) üzerinde Google Chrome desteğini sona erdireceğiz.

Alternatif olarak, chromium-browserGoogle Chrome'un üzerine kurulu olduğu yükleyebilirsiniz .

Chrome'u kullanmak için Ubuntu 14.04 LTS veya Ubuntu 15.10'u da yükleyebilirsiniz.

Ancak yeni Ubuntu 16.04 LTS'nin piyasaya sürüleceği 21 Nisan'a kadar beklemenizi öneririm.

Ubuntu 12.04 LTS'nin yalnızca bir yıllık resmi güvenlik desteğinin kaldığını düşünmelisiniz.


64bit Ubuntu sürümüm var. Operatif sistemi yeni kurdum, bir hafta öncesine kadar aynı yapılandırma üzerinde krom çalışıyordum. Benim kötü ben söylemedim, üzgünüm
fmonegaglia

5
@fmonegaglia: Buradaki en önemli şey, 32 bit veya 64 bit Ubuntu sürümünün kullanımından bağımsız olarak Ubuntu 12.04'ün artık genel olarak desteklenmemesidir. Google Chrome, yalnızca Ubuntu
14.04

Bu kesinlikle doğru cevap. Ne yazık ki bazı nedenlerimiz 12.04 ile sıkışmış. Çaba düşürme gibi geçici çözümlerden ziyade 12.04'ten çıkmak için çaba harcanmalıdır (aşağıda). Ancak bazen işleri çalıştırmanız gerekir.
lathonez

6

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:

  1. 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.
  2. 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++64.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++6bağı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.shve yürütülebilir olarak işaretleyin (yoluyla chmod +x install_chrome.shveya 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ş .debdosyayı 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, .debChrome'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 .debdosyayı yüklemeden hemen önce ). Geçici dizin altında bir yerde bulunması gerekir /tmp/deb.XXXXXXXXX(burada XXXXXXXXXrasgele dizedir).


1
Şirketimin uyguladığı politikalar nedeniyle Ubuntu 12.04 ile sıkışıp kaldım. Senaryoyu kullanarak yine de chrome yükleyebildim. Çok teşekkürler!
Eugeniu Rosca

4

Yapabileceğini sanmıyorum. Yeni yükselttiler ve bağımlılıklar 12.04'te karşılanamıyor .

Aynı problemi bir travis yapısında da yaşadım ve eski sürüme geçtim. Burada eski sürümler bir sürü .

Açıkçası harika bir cevap değil, iyi bir süre aradım ve indirmeden bir yol bulamadım.


1
Bununla gidiyorum. Tabii ki gitmek için en iyi yol değil, ancak şu anda daha sonraki Ubuntu sürümlerine geçemediğim için geçici bir çözüm olarak benim için çalışıyor.
fmonegaglia

Mirror.pcbeta.com bağlantısı 404.
AlexD

2

Google, Chrome ve 12.04 desteğini durdurduğundan, en iyi çözümünüz Chromium'u yüklemektir:

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

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.

Temel olarak, Google Chrome, Hassas olarak bulunmayan lsb-base ve libstdc ++ 6 istemektedir:

>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

Google'dan google-chrome'u yüklemek için ya da sadece Ubuntu depoları krom tarayıcısı tarafından sağlananı yüklemek için Trusty'ye (LTS'dir) veya daha yenisine ihtiyacınız olacaktır.


1

Doğrudan Glutanimate cevabı hakkında yorum yapamam, ancak yine de paylaşmak istiyorum. İnstallscript için ek bir satır eklemek gerekiyordu:

perl -pe  's|libnspr4 \(\>\= 2\:4\.9\-2\~\)|libnspr4 \(\>\= 4\.12\)|g' "$buildDir/DEBIAN/control.1" > "$buildDir/DEBIAN/control"

Chrome bununla iyi çalışıyor gibi görünüyor, ancak başka türlü yüklememe izin vermiyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.