แก้ไขล่าสุด (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 ล่าสุดคุณจะเห็นปัญหาการพึ่งพาสองประการ:
libstdc++6 (>= 4.8.0)
: นี่คือไลบรารี C ++ มาตรฐานของ GNU Chrome เปิดตัว 50.X ขึ้นไปขึ้นอยู่กับเวอร์ชัน 4.8.0 ของไลบรารีนี้ แต่ Ubuntu 12.04 มาพร้อมกับ 4.6.3 โดยค่าเริ่มต้นเท่านั้น
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++6
4.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 และพรอมต์ให้คุณติดตั้งปรับปรุงไฟล์ผ่านทาง.deb
dpkg
ขอแสดงความยินดีขณะนี้คุณใช้ Google Chrome รุ่นล่าสุดบน Ubuntu 12.04!
อัพเดท
ในการอัปเดต Chrome ให้เรียกใช้สคริปต์อีกครั้ง
ความเข้ากันได้ในอนาคต
สำคัญ:เนื่องจากโซลูชันนี้อาจหยุดทำงานตลอดเวลาฉันแนะนำให้คุณบันทึก.deb
ไฟล์ที่แก้ไขล่าสุดที่ทำงานอยู่เสมอเพื่อเป็นข้อมูลสำรองในกรณีที่ Chrome ปฏิเสธที่จะเริ่มทำงานทันทีเนื่องจากการอัปเดต
ในการบันทึกโปรแกรมติดตั้งที่แก้ไขล่าสุดเพียงไปที่ไดเรกทอรีชั่วคราวของสคริปต์ทันทีหลังจากได้รับsudo
พรอมต์รหัสผ่านเมื่อเรียกใช้สคริปต์ (เช่นถูกต้องก่อนติดตั้ง.deb
ไฟล์ที่แก้ไข) ไดเรกทอรีชั่วคราวควรอยู่ที่ใดที่หนึ่งใต้/tmp/deb.XXXXXXXXX
(โดยที่XXXXXXXXX
เป็นสตริงสุ่ม)