“ google-chrome-stable ขึ้นอยู่กับ libstdc ++ 6 (> = 4.8.0); อย่างไรก็ตาม: เวอร์ชันของ libstdc ++ 6 บนระบบคือ 4.6.3-1ubuntu5”


10

ฉันพยายามติดตั้งgoogle-chrome-stableในการติดตั้งUbuntu 12.04 ใหม่ ฉันเรียกใช้คำสั่งต่อไปนี้

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

ฉันได้รับข้อผิดพลาดดังต่อไปนี้

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

เมื่อฉันเรียกใช้sudo apt-get install -fฉันเพิ่งลบ google-chrome-stable:

The following packages will be REMOVED
  google-chrome-stable

ถ้าฉันค้นหารุ่นที่ต้องการเช่นฉันลองsudo apt-get install libstdc++6=4.8.0ฉันไม่สามารถหารุ่นได้:

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

ฉันจะแก้ไขได้อย่างไร

ฉันรู้ว่าไม่มีการรองรับ Ubuntu รุ่น 12 บิต 32 บิตอีกต่อไป ฉันใช้ Ubuntu รุ่น 64 บิต


@glut ชื่อจริงนั้นถูกต้อง มันบอกว่าข้อความผิดพลาดที่แน่นอน
Braiam

@Braiam ฉันจะยืนยันเป็นเพียงส่วนหนึ่งเป็นเพราะความถูกต้องจะไม่รวมถึงข้อผิดพลาด lsb_base
Glutanimate

@Glutanimate แต่lsb-baseไม่มีไลบรารี่ / ไบนารีที่ Chrome ใช้
Braiam

@Braiam ตกลงจริง ตอนนี้ฉันคิดแล้วผู้ใช้ส่วนใหญ่จะค้นหาส่วนแรกของข้อความแสดงข้อผิดพลาดอยู่แล้วดังนั้นมาติดตามกันต่อไป
Glutanimate

คำตอบ:


14

คุณได้รับข้อผิดพลาดเหล่านี้เนื่องจาก Google ได้สิ้นสุดการสนับสนุนสำหรับ Ubuntu 12.04

Google: เราจะสิ้นสุดการสนับสนุน Google Chrome บน Linux แบบ 32 บิต, Ubuntu แม่นยำ (12.04)

หรือคุณสามารถติดตั้งchromium-browserที่ Google Chrome ถูกสร้างขึ้น

คุณยังสามารถติดตั้ง Ubuntu 14.04 LTS หรือ Ubuntu 15.10 - รองรับทั้งสองอย่าง - เพื่อใช้ Chrome

แต่ฉันขอแนะนำให้คุณรอจนถึงเดือนเมษายนที่ 21 เมื่อ Ubuntu 16.04 LTS ใหม่จะเปิดตัว

คุณควรพิจารณาว่า Ubuntu 12.04 LTS เหลือการสนับสนุนความปลอดภัยอย่างเป็นทางการเพียงหนึ่งปี


ฉันมีรุ่น Ubuntu 64 บิต ฉันเพิ่งติดตั้งระบบปฏิบัติการอีกครั้งฉันมีโครเมี่ยมที่ทำงานบนการกำหนดค่าที่แน่นอนเดียวกันจนกระทั่งหนึ่งสัปดาห์ที่ผ่านมา ฉันไม่ดีฉันไม่ได้พูดอย่างนั้นขอโทษ
fmonegaglia

5
@fmonegaglia: สิ่งที่สำคัญที่สุดคือ Ubuntu 12.04 โดยทั่วไปไม่รองรับอีกต่อไปโดยไม่ขึ้นกับว่าจะใช้งาน Ubuntu 32 บิตหรือ 64 บิต Google Chrome เท่านั้นที่สามารถติดตั้งบน 64 บิตอูบุนตูที่ได้รับการสนับสนุนเริ่มต้นจากอูบุนตู 14.04 ... :)
CL-netbox

นี่เป็นคำตอบที่ถูกต้องอย่างแน่นอน น่าเสียดายที่พวกเราบางคนติดกับ 12.04 ไม่ว่าด้วยเหตุผลใด ควรใช้ความพยายามในการลงมือ 12.04 แทนที่จะใช้วิธีแก้ปัญหาชั่วคราวเช่นการลดระดับ (ด้านล่าง) อย่างไรก็ตามบางครั้งคุณก็แค่ต้องทำงานให้ได้
lathonez

6

แก้ไขล่าสุด (2017-09-13) :

โซลูชันนี้ใช้งานไม่ได้กับ Chrome รุ่นที่ 60 ขึ้นไป แพ็คเกจล่าสุดขึ้นอยู่กับ libc6 ≥ 2.17 ซึ่งไม่สามารถติดตั้งบน Ubuntu 12.04 หากคุณยังใช้ Precise อยู่คุณควรพิจารณาอัปเกรด (เหมือนที่เคยทำ) หรือหากคุณยังไม่สามารถทำได้ให้เปลี่ยนไปใช้เบราว์เซอร์อื่น (แม้ว่าจะถึงตอนนี้แล้ว


แก้ไข (2016-12-06) : ดูเหมือนว่า Chrome จะขึ้นอยู่กับ libfontconfig1 รุ่นที่ปรับปรุงแล้วในขณะนี้ (≥ 2.9.0) ฉันได้อัปเดตสคริปต์แล้ว เวอร์ชันใหม่ดูเหมือนจะใช้งานได้ดี แต่โปรดทราบว่าด้วยการปลอมแปลงแต่ละครั้งคุณสามารถคาดหวังว่าแอปจะมีเสถียรภาพน้อยลง

แก้ไข (2017-06-10) : Chrome 59 มาพร้อมกับการขึ้นต่อใหม่ (libfontconfig1 ≥ 2.11, libpango และ libpangocairo) ฉันได้อัปเดตสคริปต์เพื่อลบสิ่งเหล่านี้แล้ว ข้อแม้เดียวกันกับความเสถียรของ Chrome จะใช้อีกครั้ง


วิธีแก้ปัญหาสำหรับปัญหาการพึ่งพาบน Ubuntu 12.04 64 บิต

การสนับสนุน Chrome อย่างเป็นทางการสำหรับ Ubuntu รุ่น 12.04 สิ้นสุดลงแล้ว แต่นี่ไม่ได้หมายความว่าคุณจะต้องละทิ้ง Chrome ไปก่อน สิ่งต่อไปนี้เป็นบทแนะนำอย่างรวดเร็วเกี่ยวกับวิธีการติดตั้ง Chrome รุ่นล่าสุด (ณ วันที่ 2016-06-28) บน Ubuntu 12.04 64- บิต

คำเตือน : นี่เป็นวิธีการแฮ็กที่อาจหยุดทำงาน ณ จุดใดก็ได้ โปรดตรวจสอบให้แน่ใจว่าคุณรู้ว่าคุณกำลังทำอะไรอยู่ก่อนดำเนินการต่อ

requisites ก่อน

เคอร์เนลที่อัพเดต

สำคัญ: โปรดทราบว่าการอัพเดตเคอร์เนลของคุณอาจมาพร้อมกับชุดปัญหาและปัญหาความเข้ากันได้ของฮาร์ดแวร์ ตรวจสอบให้แน่ใจว่าคุณรู้วิธีสลับเคอร์เนลก่อนหน้านี้ก่อนดำเนินการตามขั้นตอนนี้

Chrome รุ่นล่าสุดขึ้นอยู่กับคุณสมบัติเคอร์เนลจำนวนหนึ่งที่เกี่ยวข้องกับการทดลองใช้แซนด์บ็อกซ์ซึ่งไม่สามารถใช้ได้ในเคอร์เนลเริ่มต้นของ Ubuntu 12.04 (3.2.0) หากคุณติดตั้ง Ubuntu 12.04 โดยใช้อิมเมจที่ใหม่กว่า (ชี้ไปที่ 12.04.2 ขึ้นไป) โอกาสที่คุณจะได้ใช้เคอร์เนลที่อัพเดตอยู่แล้ว แต่ถ้าคุณยังคงใช้เคอร์เนลรุ่นเดิมอยู่คุณสามารถอัปเดตเคอร์เนลสแต็กของ Ubuntu 14.04 ผ่านทางแพ็คเกจการเปิดใช้งานฮาร์ดแวร์ LTS :

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

ตรวจสอบให้แน่ใจว่ารีบูตระบบของคุณหลังจากทำการอัพเกรดเคอร์เนล หากทุกอย่างเป็นไปด้วยดีระบบของคุณควรใช้ Linux kernel 3.13.X

ปัญหาการพึ่งพา

หากคุณดูข้อความแสดงข้อผิดพลาดที่คุณได้รับเมื่อพยายามติดตั้งบิวด์ Chrome ล่าสุดคุณจะเห็นปัญหาการพึ่งพาสองประการ:

  1. libstdc++6 (>= 4.8.0): นี่คือไลบรารี C ++ มาตรฐานของ GNU Chrome เปิดตัว 50.X ขึ้นไปขึ้นอยู่กับเวอร์ชัน 4.8.0 ของไลบรารีนี้ แต่ Ubuntu 12.04 มาพร้อมกับ 4.6.3 โดยค่าเริ่มต้นเท่านั้น
  2. lsb-base (>= 4.1): นี่เป็นแพ็คเกจฐาน Linux มาตรฐาน มันแสดงให้เห็นถึงการปฏิบัติตามการกระจายของชุดมาตรฐานที่กำหนดโดยมูลนิธิ Linux Chrome เปิดตัว 50.X + ต้องการการปฏิบัติตามมาตรฐานที่กำหนดใน LSB base 4.1 แต่ Ubuntu 12.04 นั้นสอดคล้องกับ 4.0 เท่านั้น

เมื่อปรากฎว่าปัญหาทั้งสองนี้สามารถแก้ไขได้ค่อนข้างง่าย:

libstdc ++ 6 (> = 4.8.0)

สำคัญ: libstdc ++ 6 เป็นไลบรารีระบบที่สำคัญซึ่งขึ้นอยู่กับแพ็คเกจที่แตกต่างกัน การอัพเกรดแพ็กเกจนี้เป็นรีลีสที่ใหม่กว่าอาจเป็นอันตรายและอาจนำไปสู่ปัญหาด้านเสถียรภาพของระบบ ฉันไม่ได้พบปัญหาใด ๆ เกี่ยวกับตัวฉันเองในทั้งสองระบบที่ฉันได้ทำการอัพเกรดนี้ แต่เช่นเคย - ระยะทางของคุณอาจแตกต่างกันไป

โชคดีสำหรับเราlibstdc++64.8.X ใช้ได้อย่างเป็นทางการในอูบุนตูtoolchain ทดสอบสร้าง PPA ในขั้นตอนแรกเราจะเพิ่ม PPA นี้ไปยังแหล่งซอฟต์แวร์ของเรา:

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

การติดตั้ง Google Chrome จากจุดนี้จะเป็นการดึงการlibstdc++6พึ่งพาจาก PPA ซึ่งเป็นการขจัดปัญหาการพึ่งพาครั้งแรก เมื่อแก้ไขแล้วให้ทำต่อในประเด็นที่สอง

lsb-base (> = 4.1)

ปรากฎว่าเราไม่จำเป็นต้องติดตั้งแพคเกจรุ่นปรับปรุงนี้เพื่อให้ Chrome ทำงานได้เวอร์ชันล่าสุด สำหรับตอนนี้ Chrome ดูเหมือนจะไม่ได้ขึ้นอยู่กับมาตรฐานที่ปรับเปลี่ยนใด ๆ ใน LSB base 4.1 ดังนั้นการพึ่งพาอาศัยนั้นlsb-base (>= 4.1)ดูเหมือนจะเป็นการพึ่งพาอาศัยแบบนุ่มนวลซึ่งเราสามารถนำออกได้อย่างง่ายดาย

คุณสามารถทำสิ่งนี้ได้ด้วยตนเอง แต่ฉันได้เขียนสคริปต์ที่ดูแลขั้นตอนต่อไปนี้ส่วนใหญ่ให้คุณ

สคริปต์การติดตั้ง

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

คัดลอกสคริปต์ด้านบนบันทึกเป็นinstall_chrome.shและทำเครื่องหมายว่าสามารถเรียกใช้งานได้ (ผ่านchmod +x install_chrome.shหรือโต้ตอบคุณสมบัติของตัวจัดการไฟล์ของคุณ)

หลังจากทำเสร็จแล้วคุณสามารถรันสคริปต์โดยใช้:

./install_chrome.sh

สคริปต์ที่จะดำเนินการต่อเพื่อดาวน์โหลดมั่นคง Chrome รุ่นล่าสุดแก้ไขเพื่อลบพึ่งพา lsb ฐาน 4.1 และพรอมต์ให้คุณติดตั้งปรับปรุงไฟล์ผ่านทาง.debdpkg

ขอแสดงความยินดีขณะนี้คุณใช้ Google Chrome รุ่นล่าสุดบน Ubuntu 12.04!

อัพเดท

ในการอัปเดต Chrome ให้เรียกใช้สคริปต์อีกครั้ง

ความเข้ากันได้ในอนาคต

สำคัญ:เนื่องจากโซลูชันนี้อาจหยุดทำงานตลอดเวลาฉันแนะนำให้คุณบันทึก.debไฟล์ที่แก้ไขล่าสุดที่ทำงานอยู่เสมอเพื่อเป็นข้อมูลสำรองในกรณีที่ Chrome ปฏิเสธที่จะเริ่มทำงานทันทีเนื่องจากการอัปเดต

ในการบันทึกโปรแกรมติดตั้งที่แก้ไขล่าสุดเพียงไปที่ไดเรกทอรีชั่วคราวของสคริปต์ทันทีหลังจากได้รับsudoพรอมต์รหัสผ่านเมื่อเรียกใช้สคริปต์ (เช่นถูกต้องก่อนติดตั้ง.debไฟล์ที่แก้ไข) ไดเรกทอรีชั่วคราวควรอยู่ที่ใดที่หนึ่งใต้/tmp/deb.XXXXXXXXX(โดยที่XXXXXXXXXเป็นสตริงสุ่ม)


1
เนื่องจาก บริษัท ของฉันบังคับใช้นโยบายฉันติดอยู่กับ Ubuntu 12.04 ฉันสามารถติดตั้ง Chrome ได้โดยใช้สคริปต์ของคุณ ขอบคุณมาก!
Eugeniu Rosca

4

ฉันไม่คิดว่าคุณจะทำได้ พวกเขาได้รับการอัพเกรดเพียงและพึ่งพาไม่สามารถพบใน 12.04

ฉันมีปัญหาเดียวกันกับเทรวิสบิวด์และปรับลดรุ่น โหลดของรุ่นเก่าที่นี่

เห็นได้ชัดว่าไม่ใช่คำตอบที่ดีฉันมองหาสิ่งที่ดีและไม่สามารถหาวิธีได้โดยไม่ต้องลดระดับ


1
ฉันจะไปกับคนนี้ แน่นอนว่ามันไม่ใช่วิธีที่ดีที่สุดที่จะไป แต่มันใช้งานได้สำหรับฉันเป็นวิธีแก้ปัญหาชั่วคราวเนื่องจากฉันไม่สามารถอัปเกรดเป็น Ubuntu รุ่นที่ใหม่กว่าได้ในตอนนี้
fmonegaglia

ลิงก์ไปยัง mirror.pcbeta.com หายไป 404
AlexD

2

Google ได้หยุดการสนับสนุน Chrome และ 12.04 ทางออกที่ดีที่สุดของคุณคือการติดตั้ง Chromium แทน:

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.

โดยทั่วไป Google Chrome จะขอ lsb-base และ libstdc ++ 6 ซึ่งไม่สามารถใช้ได้ใน 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

คุณจะต้องมี Trusty (ซึ่งก็คือ LTS) หรือใหม่กว่าเพื่อติดตั้ง google-chrome จาก Google หรือเพียงแค่ติดตั้งอันที่จัดหาโดยคลังเก็บ Ubuntu ของโครเมียมเบราว์เซอร์


1

ฉันไม่สามารถแสดงความคิดเห็นโดยตรงกับคำตอบ Glutanimate แต่ฉันต้องการแบ่งปันมันต่อไป ฉันต้องการเพิ่มบรรทัดเพิ่มเติมใน installscript:

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

Chrome ดูเหมือนว่าจะทำงานได้ดีกับสิ่งนี้ แต่จะไม่อนุญาตให้ฉันติดตั้งเป็นอย่างอื่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.