Google-chrome-ổn định phụ thuộc vào libstdc ++ 6 (> = 4.8.0); tuy nhiên: Phiên bản libstdc ++ 6 trên hệ thống là 4.6.3-1ubfox5.


10

Tôi đang cố gắng cài đặt google-chrome-stabletrên bản cài đặt Ubuntu 12.04 mới. Tôi chạy các lệnh sau

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

Tôi nhận được các lỗi sau

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

Khi tôi chạy, sudo apt-get install -ftôi chỉ cần gỡ bỏ ổn định google-chrome:

The following packages will be REMOVED
  google-chrome-stable

Nếu tôi tìm các phiên bản bắt buộc, ví dụ: tôi thử sudo apt-get install libstdc++6=4.8.0tôi không thể tìm thấy phiên bản:

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

Làm thế nào để tôi sửa nó?

Tôi biết không còn hỗ trợ cho phiên bản 32bit của Ubuntu 12.04. Tôi đang chạy phiên bản Ubuntu 64 bit.


@glut tiêu đề thực tế là chính xác. Nó nói thông báo lỗi chính xác.
Braiam

@Braiam Tôi cho rằng nó chỉ chính xác một phần vì nó không bao gồm lỗi
lsb_base

@Glutanimate nhưng lsb-base không có thư viện / nhị phân mà Chrome sử dụng.
Braiam

@Braiam Ok, đúng rồi. Bây giờ tôi nghĩ về nó, hầu hết người dùng sẽ tìm kiếm phần đầu tiên của thông báo lỗi, vì vậy hãy ở lại với nó.
Glutimate

Câu trả lời:


14

Bạn đang nhận được những lỗi này vì Google đã kết thúc hỗ trợ cho Ubuntu 12.04.

Google: Chúng tôi sẽ kết thúc hỗ trợ cho Google Chrome trên Linux 32 bit, Chính xác Ubuntu (12.04).

Ngoài ra, bạn có thể cài đặt chromium-browserGoogle Chrome được xây dựng trên đó.

Bạn cũng có thể cài đặt Ubuntu 14.04 LTS hoặc Ubuntu 15.10 - cả hai đều được hỗ trợ - để sử dụng Chrome.

Nhưng tôi khuyên bạn nên đợi đến tháng 4, ngày 21 khi Ubuntu 16.04 LTS mới được phát hành.

Bạn nên xem xét rằng Ubuntu 12.04 LTS chỉ còn một năm hỗ trợ bảo mật chính thức.


Tôi có phiên bản Ubuntu 64 bit. Tôi vừa cài đặt lại hệ thống oper, tôi đã chrome hoạt động trên cùng một cấu hình chính xác cho đến một tuần trước. Thật tệ, tôi đã không nói điều đó, xin lỗi
fmonegaglia

5
@fmonegaglia: Điều quan trọng nhất ở đây là Ubuntu 12.04 thường không được hỗ trợ nữa, độc lập với việc sử dụng phiên bản Ubuntu 32 bit hay 64 bit. Google Chrome chỉ có thể được cài đặt trên các phiên bản Ubuntu 64 bit được hỗ trợ, bắt đầu từ Ubuntu 14.04 ... :)
cl-netbox

Đây chắc chắn là câu trả lời chính xác. Thật không may, một số người trong chúng ta bị mắc kẹt với 12.04 vì lý do gì. Cần nỗ lực để thoát khỏi 12.04 thay vì các giải pháp tạm thời như hạ cấp (bên dưới). Tuy nhiên đôi khi bạn chỉ cần làm cho công cụ làm việc.
lathonez

6

Chỉnh sửa lần cuối (2017-09-13) :

Giải pháp này không còn hoạt động đối với Chrome phát hành 60 trở lên . Các gói mới nhất phụ thuộc vào libc6 ≥ 2.17 không thể cài đặt trên Ubuntu 12.04. Nếu bạn vẫn đang sử dụng Chính xác, bạn nên xem xét nâng cấp (như tôi đã làm) hoặc nếu bạn không thể làm điều đó, hãy chuyển sang trình duyệt khác (mặc dù tại thời điểm này, bạn không thể tìm thấy bất kỳ thứ gì vẫn đang được duy trì).


Chỉnh sửa (2016-12-06) : Có vẻ như Chrome cũng phụ thuộc vào phiên bản cập nhật của libfontconfig1 ngay bây giờ (≥ 2.9.0). Tôi đã cập nhật kịch bản phù hợp. Phiên bản mới dường như vẫn hoạt động tốt cho đến nay, nhưng xin lưu ý rằng với mỗi phụ thuộc giả định, bạn có thể mong đợi ứng dụng trở nên kém ổn định hơn.

Chỉnh sửa (2017-06-10) : Chrome 59 đi kèm với các phụ thuộc mới (libfontconfig1 2.11, libpango và libpangocairo). Tôi đã cập nhật tập lệnh để xóa những thứ này. Sự cảnh báo tương tự như tính ổn định của Chrome được áp dụng một lần nữa.


Giải pháp cho các vấn đề phụ thuộc trên Ubuntu 12.04 64 bit

Hỗ trợ Chrome chính thức cho Ubuntu phiên bản 12.04 đã kết thúc, nhưng điều này không có nghĩa là bạn phải từ bỏ Chrome. Dưới đây là hướng dẫn nhanh về cách cài đặt bản phát hành Chrome mới nhất (kể từ 2016-06-28) trên Ubuntu 12.04 64-bit.

Cảnh báo : Đây là một giải pháp rất hack có thể ngừng hoạt động tại bất kỳ thời điểm nào. Hãy chắc chắn rằng bạn biết những gì bạn đang làm trước khi tiếp tục.

Điều kiện tiên quyết

Đã cập nhật kernel

Quan trọng: Xin lưu ý rằng việc cập nhật kernel của bạn có thể đi kèm với các vấn đề tương thích và vấn đề tương thích phần cứng. Hãy chắc chắn rằng bạn biết cách chuyển sang kernel trước đó trước khi tiến hành bước này.

Các bản phát hành Chrome gần đây phụ thuộc vào một số tính năng kernel liên quan đến hộp cát không có trong kernel mặc định của Ubuntu 12.04 (3.2.0). Nếu bạn đã cài đặt Ubuntu 12.04 bằng một hình ảnh gần đây hơn (bản phát hành điểm 12.04.2 trở lên), có khả năng bạn đã sử dụng kernel đã cập nhật; nhưng nếu bạn vẫn còn trên bản phát hành kernel gốc, bạn có thể cập nhật lên ngăn xếp kernel của Ubuntu 14.04 thông qua gói ngăn xếp hỗ trợ phần cứng LTS :

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

Đảm bảo khởi động lại hệ thống của bạn sau khi thực hiện nâng cấp kernel. Nếu mọi thứ đều ổn, hệ thống của bạn sẽ sử dụng Linux kernel 3.13.X.

Vấn đề phụ thuộc

Nếu bạn nhìn vào thông báo lỗi bạn nhận được khi cố gắng cài đặt bản dựng Chrome gần đây, bạn sẽ thấy hai vấn đề phụ thuộc khác biệt:

  1. libstdc++6 (>= 4.8.0): Đây là thư viện C ++ tiêu chuẩn GNU. Chrome phát hành 50.X trở lên tùy thuộc vào phiên bản 4.8.0 của thư viện này, nhưng Ubuntu 12.04 chỉ đi kèm với 4.6.3 theo mặc định.
  2. lsb-base (>= 4.1): Đây là gói Linux Standard Base. Nó biểu thị sự tuân thủ của bản phân phối với một bộ tiêu chuẩn do Tổ chức Linux đặt ra. Chrome phát hành 50.X + yêu cầu tuân thủ các tiêu chuẩn được xác định trong LSB cơ sở 4.1, nhưng Ubuntu 12.04 chỉ tuân thủ 4.0.

Hóa ra cả hai vấn đề này đều có thể được khắc phục khá dễ dàng:

libstdc ++ 6 (> = 4.8.0)

Quan trọng: libstdc ++ 6 là một thư viện hệ thống quan trọng mà nhiều gói khác nhau phụ thuộc vào. Nâng cấp gói này lên bản phát hành mới hơn có thể nguy hiểm và có thể dẫn đến các vấn đề ổn định hệ thống. Tôi chưa gặp phải bất kỳ vấn đề nào trên hai hệ thống mà tôi đã thực hiện nâng cấp này, nhưng - như mọi khi - số dặm của bạn có thể thay đổi.

May mắn cho chúng tôi, libstdc++64.8.X có sẵn trong thử nghiệm công cụ Ubuntu chính thức xây dựng PPA . Bước đầu tiên, chúng tôi sẽ thêm PPA này vào các nguồn phần mềm của mình:

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

Cài đặt Google Chrome từ thời điểm này trở đi sẽ kéo sự libstdc++6phụ thuộc khỏi PPA, loại bỏ vấn đề phụ thuộc đầu tiên. Với giải pháp này, chúng ta hãy tiến hành vấn đề thứ hai.

lsb-cơ sở (> = 4.1)

Hóa ra chúng ta thực sự không cần phải cài đặt phiên bản cập nhật của gói này để chạy các phiên bản Chrome gần đây. Hiện tại, Chrome dường như không thực sự phụ thuộc vào bất kỳ tiêu chuẩn nào được sửa đổi trong cơ sở LSB 4.1, do đó, sự phụ thuộc vào lsb-base (>= 4.1)dường như là một sự phụ thuộc mềm mà chúng ta có thể loại bỏ một cách đơn giản.

Bạn có thể làm điều này bằng tay, tất nhiên, nhưng tôi đã viết một kịch bản chăm sóc hầu hết các bước sau đây cho bạn.

Kịch bản cài đặt

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

Sao chép tập lệnh ở trên, lưu nó dưới dạng install_chrome.shvà đánh dấu nó là có thể thực thi được (thông qua chmod +x install_chrome.shhoặc hộp thoại thuộc tính của trình quản lý tệp của bạn).

Làm xong bạn có thể thực thi tập lệnh bằng cách sử dụng:

./install_chrome.sh

Tập lệnh sẽ tiến hành tải xuống bản phát hành Chrome ổn định mới nhất, sửa đổi nó để loại bỏ sự phụ thuộc vào lsb-base 4.1 và nhắc bạn cài đặt .debtệp được cập nhật qua dpkg.

Xin chúc mừng, bạn hiện đang sử dụng bản phát hành cập nhật của Google Chrome trên Ubuntu 12.04!

Cập nhật

Để cập nhật Chrome, chỉ cần chạy lại tập lệnh.

Tương thích trong tương lai

Quan trọng: Vì giải pháp này có thể ngừng hoạt động bất cứ lúc nào, tôi khuyên bạn nên luôn lưu .debtệp sửa đổi hoạt động mới nhất làm bản sao lưu trong trường hợp Chrome đột nhiên từ chối bắt đầu do cập nhật.

Để lưu trình cài đặt được sửa đổi mới nhất, chỉ cần vào thư mục tạm thời của tập lệnh ngay sau khi nhận được sudolời nhắc mật khẩu khi chạy tập lệnh (tức là ngay trước khi cài đặt .debtệp đã sửa đổi ). Thư mục tạm thời nên được đặt ở đâu đó bên dưới /tmp/deb.XXXXXXXXX(nơi XXXXXXXXXlà một chuỗi ngẫu nhiên).


1
Do các chính sách được thi hành bởi công ty của tôi, tôi bị mắc kẹt với Ubuntu 12.04. Tôi đã có thể cài đặt chrome bằng cách sử dụng tập lệnh của bạn. Cảm ơn rất nhiều!
Eugeniu Rosca

4

Tôi không nghĩ bạn có thể. Họ vừa mới nâng cấp và các phụ thuộc không thể được đáp ứng trong 12.04 .

Tôi đã có cùng một vấn đề trên một bản dựng travis và đã xuống cấp. Tải các phiên bản cũ ở đây .

Rõ ràng không phải là một câu trả lời hay, tôi đã tìm kiếm một lúc và không thể tìm ra cách nào mà không hạ cấp.


1
Tôi đang đi với cái này Tất nhiên đây không phải là cách tốt nhất, nhưng nó hoạt động với tôi như một giải pháp tạm thời, vì bây giờ tôi không thể nâng cấp lên các phiên bản Ubuntu sau này.
fmonegaglia

Liên kết đến mirror.pcbeta.com đã chuyển 404.
AlexD

2

Vì Google đã ngừng hỗ trợ cho Chrome và 12.04, giải pháp tốt nhất của bạn là cài đặt Chromium thay thế:

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.

Về cơ bản, Google Chrome đang yêu cầu lsb-base và libstdc ++ 6 không có sẵn trong Chính xác:

>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

Bạn sẽ cần Trusty (cũng là LTS) hoặc mới hơn để cài đặt google-chrome từ Google hoặc chỉ cần cài đặt trình duyệt được cung cấp bởi trình duyệt crom của kho lưu trữ Ubuntu.


1

Tôi không thể bình luận trực tiếp về câu trả lời của Glutanimate, nhưng dù sao tôi cũng muốn chia sẻ nó. Tôi cần thêm một dòng bổ sung vào bản cài đặt:

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

Chrome dường như chạy tốt với điều này, nhưng nó sẽ không cho phép tôi cài đặt nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.