“google-chrome-stable 依赖于 libstdc++6 (>= 4.8.0);但是:系统上的 libstdc++6 版本是 4.6.3-1ubuntu5。”

fmo*_*lia 10 dpkg google-chrome software-installation

我正在尝试安装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
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

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
Run Code Online (Sandbox Code Playgroud)

当我运行时,sudo apt-get install -f我只是删除了 google-chrome-stable:

The following packages will be REMOVED
  google-chrome-stable
Run Code Online (Sandbox Code Playgroud)

如果我寻找所需的版本,例如我尝试sudo apt-get install libstdc++6=4.8.0找不到版本:

E: Version ‘4.8.0’ for ‘libstdc++6’ was not found
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

我知道不再支持 32 位版本的 Ubuntu 12.04。我正在运行 64 位 Ubuntu 版本。

cl-*_*box 14

您收到这些错误是因为 Google 已终止对 Ubuntu 12.04 的支持。

Google:我们将在 32 位 Linux、Ubuntu Precise (12.04) 上终止对 Google Chrome 的支持。

您也可以安装chromium-browserGoogle Chrome 所在的 。

您还可以安装 Ubuntu 14.04 LTS 或 Ubuntu 15.10 - 两者都受支持 - 以使用 Chrome。

但我建议你等到 4 月 21 日,届时新的 Ubuntu 16.04 LTS 将发布。

您应该考虑到 Ubuntu 12.04 LTS 只剩下一年的官方安全支持了。

  • @fmonegaglia:这里最重要的一点是 Ubuntu 12.04 通常不再受支持,这与使用的是 32 位还是 64 位 Ubuntu 版本无关。Google Chrome 只能安装在受支持的 64 位 Ubuntu 版本上,从 Ubuntu 14.04 开始...... :) (5认同)

Glu*_*ate 6

最后编辑 (2017-09-13)

此解决方案不再适用于 Chrome 版本 60 及更高版本。最新的软件包依赖于 libc6 吗?2.17 无法安装在 Ubuntu 12.04 上。如果您仍在使用 Precise,您应该考虑升级(就像我所做的那样),或者如果您仍然不能这样做,请切换到另一个浏览器(尽管此时您不太可能找到任何仍在维护的浏览器)。


编辑( 2016 年 12 月 6 日:看起来 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。以下是关于如何在 64 位 Ubuntu 12.04 上安装最新 Chrome 版本(截至 2016 年 6 月 28 日)的快速教程。

警告这是一个非常黑客的解决方案,可能会在任何时间点停止工作。在继续之前,请确保您知道自己在做什么。

先决条件

更新内核

重要提示: 请注意,更新内核可能会带来一系列问题和硬件兼容性问题。在继续执行此步骤之前,请确保您知道如何切换到较早的内核。

最近的 Chrome 版本依赖于许多与沙盒相关的内核功能,这些功能在 Ubuntu 12.04 的默认内核 (3.2.0) 中不可用。如果您使用更新的映像(12.04.2 及更高版本)安装了 Ubuntu 12.04,那么您可能已经在运行更新的内核;但如果您仍在使用原始内核版本,则可以通过LTS 硬件启用堆栈包更新到 Ubuntu 14.04 的内核堆栈:

sudo apt-get install --install-recommends linux-generic-lts-trusty
Run Code Online (Sandbox Code Playgroud)

确保在执行内核升级后重新启动系统。如果一切顺利,您的系统现在应该使用 Linux 内核 3.13.X。

依赖问题

如果您查看尝试安装最新 Chrome 版本时收到的错误消息,您会看到两个不同的依赖问题:

  1. libstdc++6 (>= 4.8.0): 这是 GNU 标准 C++ 库。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 在官方 Ubuntu工具链测试构建 PPA 中可用。作为第一步,我们将把这个 PPA 添加到我们的软件源中:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

从这一点开始安装 Google Chrome 将从libstdc++6PPA 中提取依赖项,消除第一个依赖项问题。解决了这个问题,让我们继续第二个问题。

lsb 基 (>= 4.1)

事实证明,我们实际上并不需要安装此软件包的更新版本来运行最新版本的 Chrome。目前,Chrome 似乎并不真正依赖 LSB base 4.1 中的任何修改标准,因此对 的依赖lsb-base (>= 4.1)似乎是一种软依赖,我们可以简单地将其删除。

当然,您可以手动执行此操作,但我已编写了一个脚本来为您处理以下大部分步骤。

安装脚本

sudo apt-get install --install-recommends linux-generic-lts-trusty
Run Code Online (Sandbox Code Playgroud)

复制上面的脚本,将其另存为install_chrome.sh并将其标记为可执行文件(通过chmod +x install_chrome.sh或您的文件管理器的属性对话框)。

完成后,您可以使用以下命令执行脚本:

./install_chrome.sh
Run Code Online (Sandbox Code Playgroud)

该脚本将继续下载最新的稳定版 Chrome 版本,对其进行修改以删除对 lsb-base 4.1 的依赖,并提示您.deb通过dpkg.

恭喜,您现在正在 Ubuntu 12.04 上使用更新版本的 Google Chrome!

更新

要更新 Chrome,只需再次运行脚本。

未来兼容性

重要提示:由于此解决方案可能随时停止工作,我建议您始终将最新的工作修改.deb文件保存为备份,以防 Chrome 因更新而突然拒绝启动。

要保存最新修改的安装程序,只需sudo在运行脚本时(即在安装修改后的.deb文件之前)获得密码提示后立即前往脚本的临时目录。临时目录应位于/tmp/deb.XXXXXXXXX(其中XXXXXXXXX是随机字符串)下的某处。


小智 4

我认为你不能。他们刚刚升级,在 12.04 中无法满足依赖关系

我在 travis 构建上遇到了同样的问题并降级了。这里有很多旧版本。

显然这不是一个很好的答案,我找了很长一段时间,但找不到不降级的方法。