web-dev-qa-db-ja.com

「google-chrome-stableはlibstdc ++ 6(> = 4.8.0)に依存していますが、システム上のlibstdc ++ 6のバージョンは4.6.3-1ubuntu5です。」

Ubuntu 12.04の新規インストールにgoogle-chrome-stableをインストールしようとしています。次のコマンドを実行します

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.04の32ビットバージョンはサポートされなくなったことを知っています。 64ビットUbuntuバージョンを実行しています。

9
fmonegaglia

GoogleがUbuntu 12.04のサポートを終了したため、これらのエラーが表示されます。

Google:32ビットLinux、Ubuntu Precise(12.04)でのGoogle Chromeのサポートを終了します。

または、Google Chromeが構築されているchromium-browserをインストールすることもできます。

Ubuntu 14.04 LTSまたはUbuntu 15.10(両方がサポートされています)をインストールしてChromeを使用することもできます。

しかし、新しいUbuntu 16.04 LTSがリリースされる4月21日まで待つことをお勧めします。

Ubuntu 12.04 LTSには、公式のセキュリティサポートが1年間しか残っていないことを考慮する必要があります。

13
cl-netbox

最終編集(2017-09-13)

このソリューションは、Chromeリリース60以降では機能しません。最新のパッケージは、Ubuntu 12.04にインストールできないlibc6≥2.17に依存しています。まだPreciseを使用している場合は、アップグレードを検討する必要があります(私が行ったように)、またはまだ実行できない場合は、別のブラウザーに切り替えます(ただし、この時点ではまだ維持されているものは見つかりません)。


編集(2016-12-06):Chromeは、libfontconfig1の更新バージョンにも依存するようになりました(≥2.9.0 )。それに応じてスクリプトを更新しました。これまでのところ、新しいバージョンは正常に機能しているように見えますが、依存関係を偽装するたびに、アプリの安定性が低下することが予想されます。

編集(2017-06-10):Chrome 59に新しい依存関係が追加されました(libfontconfig1≥2.11、libpango、and libpangocairo)。これらを削除するようにスクリプトを更新しました。 Chromeの安定性と同じ警告が再び当てはまります。


Ubuntu 12.04 64bitでの依存関係の問題の回避策

Ubuntuバージョン12.04の公式Chromeサポートは終了しましたが、これはChromeを放棄する必要があるという意味ではありません。以下は、Ubuntu 12.04 64ビットに最新のChromeリリース(2016-06-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

カーネルのアップグレードを実行した後、必ずシステムを再起動してください。すべてがうまくいけば、システムはLinuxカーネル3.13.Xを使用しているはずです。

依存関係の問題

最近のChromeビルドをインストールしようとしたときに表示されるエラーメッセージを見ると、2つの明確な依存関係の問題があります。

  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 Standard Baseパッケージです。これは、Linux Foundationによって設定された一連の標準へのディストリビューションの準拠を示します。 Chromeリリース50.X +は、LSBベース4.1で定義された標準に準拠する必要がありますが、Ubuntu 12.04は4.0にのみ準拠しています。

結局のところ、これらの問題はどちらもかなり簡単に修正できます。

libstdc ++ 6(> = 4.8.0)

重要:libstdc ++ 6は、多くの異なるパッケージが依存する重要なシステムライブラリです。このパッケージを新しいリリースにアップグレードすることは危険であり、システムの安定性の問題につながる可能性があります。このアップグレードを実行した2つのシステムで自分で問題を経験したことはありませんが、いつものように、走行距離は異なる場合があります。

幸いなことに、libstdc++6 4.8.Xは公式のUbuntu toolchain test builds PPA で利用可能です。最初のステップとして、このPPAをソフトウェアソースに追加します。

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

この時点からGoogle Chromeをインストールすると、PPAからlibstdc++6依存関係が取得され、最初の依存関係の問題が解消されます。これが解決したら、2番目の問題に進みましょう。

lsb-base(> = 4.1)

Chromeの最新バージョンを実行するために、このパッケージの更新バージョンを実際にインストールする必要はありません。現時点ではChromeはLSBベース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への依存関係を削除するように変更し、dpkgを介して更新された.debファイルをインストールするように促します。

おめでとうございます、Ubuntu 12.04でGoogle Chromeの最新リリースを使用しています!

更新

Chromeを更新するには、単にスクリプトを再度実行します。

将来の互換性

重要:このソリューションはいつでも動作を停止する可能性があるため、最新の動作中の.debファイルを常に保存することをお勧めしますChromeのバックアップは、更新のため突然起動を拒否します。

最新の変更されたインストーラーを保存するには、スクリプトの実行時にSudoパスワードプロンプトを取得した直後に(つまり、変更された.debファイルをインストールする直前に)スクリプトの一時ディレクトリに移動します。一時ディレクトリは、/tmp/deb.XXXXXXXXXの下のどこかに配置する必要があります(XXXXXXXXXはランダムな文字列です)。

6
Glutanimate

できるとは思わない。アップグレードしたばかりで、 依存関係は12.04では満たせません

Travisビルドでも同じ問題が発生し、ダウングレードしました。古いバージョンのロード こちら

明らかに良い答えではありませんでしたが、私はしばらく探していましたが、ダウングレードせずに方法を見つけることができませんでした。

4
lathonez

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
2
Arahkun
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は、Preciseでは利用できないlsb-baseとlibstdc ++ 6を要求しています:

>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

Googleからgoogle-chromeをインストールするには、Trusty(LTSでもあります)以降が必要です。または、Ubuntuリポジトリのchrome-browserが提供するものをインストールするだけです。

1
Braiam

私はグルタニメートの答えに直接コメントすることはできませんが、とにかくそれを共有したいと思います。 installscriptに追加の行を追加する必要がありました。

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

Chromeはこれで問題なく動作するように見えますが、そうしないとインストールできません。

1
Fabian Dellwing