“Google-chrome-stable tergantung pada libstdc ++ 6 (> = 4.8.0); namun: Versi libstdc ++ 6 pada sistem adalah 4.6.3-1ubuntu5. "

10

Saya mencoba untuk menginstal google-chrome-stablepada instalasi Ubuntu 12.04 segar. Saya menjalankan perintah berikut

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

Saya mendapatkan kesalahan berikut

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

Ketika saya menjalankan, sudo apt-get install -fsaya baru saja menghapus google-chrome-stable:

The following packages will be REMOVED
  google-chrome-stable

Jika saya mencari versi yang diperlukan, misalnya saya mencoba sudo apt-get install libstdc++6=4.8.0saya tidak dapat menemukan versi:

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

Bagaimana cara memperbaikinya?

Saya tahu tidak ada lagi dukungan untuk versi 32bit dari Ubuntu 12.04. Saya menjalankan versi Ubuntu 64bit.

fmonegaglia
sumber
@tapi judul sebenarnya akurat. Dikatakan pesan kesalahan yang tepat.
Braiam
@Braiam Saya berpendapat itu hanya sebagian akurat karena tidak termasuk kesalahan
lsb_base
@Glutanimate tetapi lsb-base tidak memiliki perpustakaan / biner yang digunakan Chrome.
Braiam
@Braiam Ok, benar. Sekarang saya pikir, sebagian besar pengguna akan mencari bagian pertama dari pesan kesalahan, jadi mari kita tetap melakukannya.
Glutanimate

Jawaban:

14

Anda menerima kesalahan ini karena Google telah mengakhiri dukungan untuk Ubuntu 12.04.

Google: Kami akan mengakhiri dukungan untuk Google Chrome pada Linux 32-bit, Ubuntu Precise (12.04).

Anda juga dapat menginstal chromium-browserdi mana Google Chrome dibangun.

Anda juga dapat menginstal Ubuntu 14.04 LTS atau Ubuntu 15.10 - keduanya didukung - untuk menggunakan Chrome.

Tapi saya sarankan Anda menunggu hingga 21 April ketika Ubuntu 16.04 LTS baru akan dirilis.

Anda harus mempertimbangkan bahwa Ubuntu 12,04 LTS hanya memiliki satu tahun dukungan keamanan resmi yang tersisa.

cl-netbox
sumber
Saya memiliki versi Ubuntu 64bit. Saya baru saja menginstal ulang sistem operasi, saya punya chrome yang bekerja pada konfigurasi yang sama persis sampai satu minggu yang lalu.
Sayangnya
5
@fmonegaglia: Yang paling penting di sini adalah bahwa Ubuntu 12.04 umumnya tidak didukung lagi, terlepas dari apakah 32 bit atau 64 bit edisi Ubuntu sedang digunakan. Google Chrome hanya dapat diinstal pada edisi 64 bit Ubuntu yang didukung, mulai dari Ubuntu 14.04 ... :)
cl-netbox
Ini jelas jawaban yang tepat. Sayangnya beberapa dari kita terjebak dengan 12,04 karena alasan apa pun. Upaya harus dikeluarkan untuk keluar dari 12,04 daripada solusi sementara seperti penurunan peringkat (di bawah). Namun terkadang Anda hanya perlu membuat barang berfungsi.
lathonez
6

Edit Terakhir (2017-09-13) :

Solusi ini tidak lagi berfungsi untuk rilis Chrome ke atas 60 . Paket-paket terbaru bergantung pada libc6 ≥ 2.17 yang tidak dapat diinstal pada Ubuntu 12.04. Jika Anda masih menggunakan Precise, Anda sebaiknya mempertimbangkan untuk meningkatkan (seperti yang saya lakukan), atau jika Anda masih tidak dapat melakukannya, beralihlah ke peramban lain (walaupun pada titik ini Anda tidak mungkin menemukan yang masih dipertahankan).


Sunting (2016-12-06) : Sepertinya Chrome juga tergantung pada versi libfontconfig1 yang diperbarui sekarang (≥ 2.9.0). Saya telah memperbarui skripnya. Versi baru tampaknya berfungsi dengan baik sejauh ini, tetapi harap dicatat bahwa dengan setiap ketergantungan pura-pura Anda dapat mengharapkan aplikasi menjadi kurang stabil.

Sunting (2017-06-10) : Chrome 59 hadir dengan dependensi baru (libfontconfig1 ≥ 2.11, libpango, dan libpangocairo). Saya telah memperbarui skrip untuk menghapus ini. Peringatan yang sama dengan stabilitas Chrome berlaku lagi.


Solusi untuk masalah ketergantungan pada Ubuntu 12.04 64bit

Dukungan Chrome resmi untuk Ubuntu versi 12.04 telah berakhir, tetapi ini tidak berarti Anda harus meninggalkan Chrome dulu. Berikut ini adalah tutorial singkat tentang cara menginstal rilis Chrome terbaru (pada 2016-06-28) di Ubuntu 12,04 64-bit.

Peringatan : Ini adalah solusi yang sangat meretas yang mungkin berhenti bekerja kapan saja Pastikan Anda tahu apa yang Anda lakukan sebelum melanjutkan.

Prasyarat

Kernel yang diperbarui

Penting: Harap dicatat bahwa memperbarui kernel Anda mungkin disertai dengan serangkaian masalah dan kompatibilitas perangkat kerasnya. Pastikan Anda tahu cara beralih ke kernel sebelumnya sebelum melanjutkan dengan langkah ini.

Rilis Chrome terbaru bergantung pada sejumlah fitur kernel yang terkait dengan sandboxing yang tidak tersedia di kernel default Ubuntu 12.04 (3.2.0). Jika Anda telah menginstal Ubuntu 12.04 menggunakan gambar yang lebih baru (rilis point 12.04.2 dan lebih tinggi), kemungkinan Anda sudah menggunakan kernel yang diperbarui; tetapi jika Anda masih pada rilis kernel asli Anda dapat memperbarui ke tumpukan kernel Ubuntu 14.04 melalui paket tumpukan pemberdayaan perangkat keras LTS :

sudo apt-get install --install-recommends linux-generic-lts-trusty

Pastikan untuk reboot sistem Anda setelah melakukan peningkatan kernel. Jika semuanya berjalan dengan baik, sistem Anda sekarang harus menggunakan kernel Linux 3.13.X.

Masalah ketergantungan

Jika Anda melihat pesan kesalahan yang Anda terima saat mencoba memasang build Chrome terbaru, Anda akan melihat dua masalah ketergantungan yang berbeda:

  1. libstdc++6 (>= 4.8.0): Ini adalah perpustakaan standar C ++ GNU. Chrome merilis 50.X dan yang lebih baru bergantung pada versi 4.8.0 dari perpustakaan ini, tetapi Ubuntu 12.04 hanya hadir dengan 4.6.3 secara default.
  2. lsb-base (>= 4.1): Ini adalah paket Pangkalan Standar Linux. Ini menunjukkan kepatuhan distribusi dengan seperangkat standar yang ditetapkan oleh Linux Foundation. Chrome merilis 50.X + membutuhkan kepatuhan dengan standar yang ditentukan dalam basis LSB 4.1, tetapi Ubuntu 12.04 hanya sesuai dengan 4.0.

Ternyata kedua masalah ini dapat diperbaiki dengan mudah:

libstdc ++ 6 (> = 4.8.0)

Penting: libstdc ++ 6 adalah pustaka sistem penting yang bergantung pada banyak paket. Meningkatkan paket ini ke rilis yang lebih baru mungkin berbahaya dan dapat menyebabkan masalah stabilitas sistem. Saya belum mengalami masalah apa pun pada kedua sistem yang telah saya gunakan untuk meningkatkan versi ini, tetapi - seperti biasa - jarak tempuh Anda mungkin berbeda.

Untungnya bagi kami, libstdc++64.8.X tersedia dalam uji toolchain resmi Ubuntu untuk membangun PPA . Sebagai langkah pertama kami akan menambahkan PPA ini ke sumber perangkat lunak kami:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update

Menginstal Google Chrome mulai saat ini akan menarik libstdc++6ketergantungan dari PPA, menghilangkan masalah ketergantungan pertama. Dengan ini diselesaikan, mari kita lanjutkan ke masalah kedua.

lsb-base (> = 4.1)

Ternyata kami sebenarnya tidak perlu menginstal versi terbaru dari paket ini untuk menjalankan versi terbaru Chrome. Untuk saat ini Chrome tampaknya tidak benar-benar bergantung pada salah satu standar yang dimodifikasi di LSB basis 4.1, sehingga ketergantungan lsb-base (>= 4.1)tampaknya merupakan ketergantungan lunak yang dapat kita hapus.

Anda dapat melakukan ini secara manual, tentu saja, tetapi saya telah menulis sebuah skrip yang menangani sebagian besar langkah-langkah berikut untuk Anda.

Skrip instalasi

#!/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"

Salin skrip di atas, simpan sebagai install_chrome.shdan tandai sebagai dapat dieksekusi (baik melalui chmod +x install_chrome.shatau properti Anda manajer dialog).

Setelah melakukannya, Anda dapat menjalankan skrip menggunakan:

./install_chrome.sh

Script akan melanjutkan untuk mengunduh rilis stabil Chrome terbaru, memodifikasinya untuk menghapus ketergantungan pada lsb-base 4.1 dan meminta Anda untuk menginstal .debfile yang diperbarui melalui dpkg.

Selamat, Anda sekarang menggunakan rilis terbaru Google Chrome di Ubuntu 12.04!

Pembaruan

Untuk memperbarui Chrome cukup jalankan skrip lagi.

Kompatibilitas di masa depan

Penting: Karena solusi ini dapat berhenti berfungsi kapan saja, saya sarankan Anda untuk selalu menyimpan .debfile yang dimodifikasi yang berfungsi terakhir sebagai cadangan jika Chrome tiba-tiba menolak untuk memulai karena pembaruan.

Untuk menyimpan penginstal yang dimodifikasi terbaru cukup menuju ke direktori sementara skrip tepat setelah mendapatkan sudoprompt kata sandi ketika menjalankan skrip (yaitu tepat sebelum menginstal .debfile yang dimodifikasi ). Direktori sementara harus ditempatkan di suatu tempat di bawah /tmp/deb.XXXXXXXXX(di mana XXXXXXXXXstring acak).

Glutanimate
sumber
1
Karena kebijakan yang diberlakukan oleh perusahaan saya, saya terjebak dengan Ubuntu 12.04. Saya tetap dapat menginstal chrome menggunakan skrip Anda. Terima kasih banyak!
Eugeniu Rosca
4

Saya pikir Anda tidak bisa. Mereka baru saja ditingkatkan dan dependensi tidak dapat dipenuhi dalam 12,04 .

Saya memiliki masalah yang sama pada travis build dan telah diturunkan peringkatnya. Banyak versi lama di sini .

Jelas bukan jawaban yang bagus, saya mencari waktu yang baik dan tidak bisa menemukan jalan tanpa menurunkan peringkat.

lathonez
sumber
1
Saya akan dengan yang ini. Tentu saja ini bukan cara terbaik untuk pergi, tetapi ini berfungsi untuk saya sebagai solusi sementara, karena saya tidak dapat memutakhirkan ke versi Ubuntu yang lebih baru sekarang.
fmonegaglia
Tautan ke mirror.pcbeta.com hilang 404.
AlexD
2

Karena Google telah menghentikan dukungan untuk Chrome dan 12.04, solusi terbaik Anda adalah menginstal Chromium sebagai gantinya:

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
Arahkun
sumber
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.

Pada dasarnya, Google Chrome meminta lsb-base dan libstdc ++ 6 yang tidak tersedia di Precise:

>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

Anda akan memerlukan Trusty (yang juga LTS) atau yang lebih baru untuk menginstal google-chrome dari Google, atau hanya menginstal yang disediakan oleh kromium-browser repositori Ubuntu.

Braiam
sumber
1

Saya tidak dapat berkomentar langsung tentang jawaban Glutanimate, tetapi saya ingin membagikannya. Saya perlu menambahkan baris tambahan ke script installs:

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

Chrome tampaknya berjalan baik dengan ini, tetapi tidak memungkinkan saya untuk menginstalnya.

Fabian Dellwing
sumber