我正在尝试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
我该如何修复它?
我知道不再支持 32 位版本的 Ubuntu 12.04。我正在运行 64 位 Ubuntu 版本。
答案1
您收到这些错误是因为 Google 已终止对 Ubuntu 12.04 的支持。
谷歌:我们将终止对 32 位 Linux Ubuntu Precise (12.04) 上的 Google Chrome 的支持。
您也可以选择安装chromium-browser
Google Chrome 所基于的版本。
您还可以安装 Ubuntu 14.04 LTS 或 Ubuntu 15.10(均受支持)以使用 Chrome。
但我建议您等到 4 月 21 日,届时新 Ubuntu 16.04 LTS 将发布。
您应该考虑到 Ubuntu 12.04 LTS 只剩下一年的官方安全支持。
答案2
最后修改 (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。接下来是有关如何在 Ubuntu 12.04 64 位上安装最新版 Chrome(截至 2016-06-28)的快速教程。
警告:这是一个非常不成熟的解决方案,可能会随时停止工作。在继续操作之前,请确保您知道自己在做什么。
先决条件
更新内核
重要的: 请注意,更新内核可能会带来一系列麻烦和硬件兼容性问题。在继续此步骤之前,请确保您知道如何切换到较早的内核。
最近的 Chrome 版本依赖于一些与沙盒相关的内核功能,而这些功能在 Ubuntu 12.04 的默认内核(3.2.0)中不可用。如果您使用较新的映像(版本号 12.04.2 及更高版本)安装了 Ubuntu 12.04,则很可能您已经拥有更新的内核;但如果您仍在使用原始内核版本,则可以通过LTS 硬件支持堆栈包:
sudo apt-get install --install-recommends linux-generic-lts-trusty
确保在执行内核升级后重新启动系统。如果一切顺利,您的系统现在应该使用 Linux 内核 3.13.X。
依赖问题
如果你查看在尝试安装最新的 Chrome 版本时收到的错误消息,你会发现两个不同的依赖问题:
libstdc++6 (>= 4.8.0)
:这是 GNU 标准 C++ 库。Chrome 50.X 及以上版本依赖于此库的 4.8.0 版本,但 Ubuntu 12.04 默认仅自带 4.6.3 版本。lsb-base (>= 4.1)
:这是 Linux 标准基础包。它表示发行版符合 Linux 基金会制定的一组标准。Chrome 版本 50.X+ 要求符合 LSB 基础 4.1 中定义的标准,但 Ubuntu 12.04 仅符合 4.0。
事实证明这两个问题都可以相当容易地解决:
libstdc++6(>= 4.8.0)
重要的: libstdc++6 是一个重要的系统库,许多不同的软件包都依赖它。将此软件包升级到较新的版本可能会很危险,并可能导致系统稳定性问题。我自己在执行此升级的两个系统上没有遇到任何问题,但 - 一如既往 - 您的情况可能会有所不同。
幸运的是,libstdc++6
Ubuntu 官方提供了 4.8.X工具链测试构建 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-base 4.1 的依赖,并提示您.deb
通过 安装更新的文件dpkg
。
恭喜,您现在正在 Ubuntu 12.04 上使用更新版本的 Google Chrome!
更新
要更新 Chrome,只需再次运行脚本。
未来兼容性
重要的:由于此解决方案可能随时停止工作,因此我建议您始终将最新的工作修改.deb
文件保存为备份,以防 Chrome 因更新而突然拒绝启动。
要保存最新修改的安装程序,只需sudo
在运行脚本时收到密码提示后(即在安装修改后的.deb
文件之前)立即前往脚本的临时目录即可。临时目录应位于/tmp/deb.XXXXXXXXX
(其中XXXXXXXXX
是随机字符串)下的某个位置。
答案3
我认为你不能。他们刚刚升级了,12.04 中无法满足依赖关系。
我在 travis 版本上遇到了同样的问题,因此降级了。很多旧版本这里。
显然这不是一个很好的答案,我寻找了很长时间,却找不到不降级的方法。
答案4
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 的 google-chrome,或者只需安装 Ubuntu 存储库 chromium-browser 提供的版本。