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:
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.
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++6
4.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++6
phụ 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.sh
và đánh dấu nó là có thể thực thi được (thông qua chmod +x install_chrome.sh
hoặ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 .deb
tệ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 .deb
tệ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 sudo
lời nhắc mật khẩu khi chạy tập lệnh (tức là ngay trước khi cài đặt .deb
tệ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 XXXXXXXXX
là một chuỗi ngẫu nhiên).