Vine Linux 5.2 (i386, x86_64) で Google Chrome を頑張って動かしてみた

[2011-05-22 追記]x86_64 の場合の「Adobe Flash Player 10 をインストール」を nspluginwrapper 経由する方法を加筆。install-assist-google-chrome 化してもよいかも (^^

Vine Linux Magazine 2010,09,29 オープンソースカンファレンス 2010 Tokyo/Fall 参加レポート で、

$ google-chrome 
(snip)
/usr/bin/google-chrome: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/bin/google-chrome)

となるので、「Vine Linux 5 では Google Chrome が動きません(泣」と書いておりました。

また、VinePlus/5 にある chromium パッケージは、chrome ウェブストアにある最近の拡張機能に対応しなくなりつつあります。

ところがちょっと頑張てみると、Vine Linux 5.2 (i386, x86_64) で Google Chrome を "強引に" 動かすことができたので、メモっておきます。

"強引に" 責めたい方、または "強引に" 責められるのがお好きな方は、以下の手順をお試しください。

Google Chrome 本体のインストール

まず、Google Chrome 本体をインストールします。

Chrome ブラウザ から Google Chromerpm をダウンロードします。新しいものがお好きな方、危険な香りが魅力的と感じる方は、Chrome Release Channels - The Chromium Projects から開発版をダウンロードしても楽しいかもしれません。

例えば、私はちょっと危険な香りを魅力的に感じてしまうので、現時点の VineSeedChromium と同じメジャーバージョンである 12.X の Beta 版をインストールしました。

$ rpm -qp google-chrome-beta_current_x86_64.rpm 
警告: google-chrome-beta_current_x86_64.rpm: ヘッダ V4 DSA 署名: NOKEY, key ID 7fac5991
google-chrome-beta-12.0.742.53-85089
$ sudo apt-get install google-chrome-beta_current_x86_64.rpm

これで、Google Chrome が /opt/google/chome 以下にインストールされました。

一部のライブラリを /opt/google/chome/lib へインストール

つぎに、VineSeed から一部のライブラリを拝借して、/opt/google/chome/lib にインストールします。

i386 の場合

http://updates.vinelinux.org/VineSeed/i386/RPMS.main/ から libstdc++-4.4.5-6vl6.i686.rpm, libgcc-4.4.5-6vl6.i686.rpm をダウンロードして、それらを展開します。

$ cd /opt/google/chome
$ sudo su
# mkdir VineSeed_i386
# cd VineSeed_i386
# rpm2cpio /some/where/libstdc++-4.4.5-6vl6.i686.rpm | cpio -id
# rpm2cpio /some/where/libgcc-4.4.5-6vl6.i686.rpm | cpio -id

ちょっと細工をします。

# ls lib/
libgcc_s-4.4.5.so.1*  libgcc_s.so.1@
# ls usr/lib/
libgcc_s-4.4.5.so.1*  libgcc_s.so.1@  libstdc++.so.6@  libstdc++.so.6.0.13*
# cp -a lib/* usr/lib/
# cd ..
# cp -ra VineSeed_i386/usr/lib lib
# chmod 755 lib
# exit

これで、完成です。

x86_64 の場合

http://updates.vinelinux.org/VineSeed/x86_64/RPMS.main/ から libstdc++-4.4.5-6vl6.x86_64.rpm, libgcc-4.4.5-6vl6.x86_64.rpm をダウンロードして、それらを展開します。

$ cd /opt/google/chome
$ sudo su
# mkdir VineSeed_x86_64
# cd VineSeed_x86_64
# rpm2cpio /some/where/libstdc++-4.4.5-6vl6.x86_64.rpm | cpio -id
# rpm2cpio /some/where/libgcc-4.4.5-6vl6.x86_64.rpm | cpio -id

ちょっと細工をします。

# ls lib64/
libgcc_s-4.4.5.so.1*  libgcc_s.so.1@
# ls usr/lib64/
libgcc_s-4.4.5.so.1*  libgcc_s.so.1@  libstdc++.so.6@  libstdc++.so.6.0.13*
# cp -a lib64/* usr/lib64/
# cd ..
# cp -ra VineSeed_x86_64/usr/lib64 lib
# chmod 755 lib
# exit

これで、完成です。

Adobe Flash Player 10 をインストール

x86_64 の場合には、nspluginwrapper を使って i386flash-player を使う方法と、リリースされていない x86_64 プレビュー版を使う方法の 2 通りがあります。私は、前者をおすすめいたします。

i386 の場合

手っ取り早く、install-assist-flash-plugin パッケージからインストールしちゃいます。

$ sudo apt-get install install-assist-flash-plugin
$ rpm -q flash-plugin

/opt/google/chome/google-chrome の起動スクリプトに記述されている LD_LIBRARY_PATH にいくつかのパスを追加します。

--- google-chrome.orig	2011-05-12 10:43:00.000000000 +0900
+++ google-chrome	2011-05-18 00:01:28.000000000 +0900
@@ -22,9 +22,9 @@ fi
 # Always use our versions of ffmpeg libs.
 # This also makes RPMs find the compatibly-named NSS3/NSPR symlinks.
 if [[ -n "$LD_LIBRARY_PATH" ]]; then
-  LD_LIBRARY_PATH="$HERE:$HERE/lib:$LD_LIBRARY_PATH"
+  LD_LIBRARY_PATH="$HERE:$HERE/lib:/lib:/usr/lib:/usr/lib/xulrunner-1.9.1:$LD_LIBRARY_PATH"
 else
-  LD_LIBRARY_PATH="$HERE:$HERE/lib"
+  LD_LIBRARY_PATH="$HERE:$HERE/lib:/lib:/usr/lib:/usr/lib/xulrunner-1.9.1"
 fi
 export LD_LIBRARY_PATH
x86_64 の場合(その 1):nspluginwrapper を使って i386flash-player を使う

手っ取り早く、install-assist-flash-plugin パッケージからインストールしちゃいます。

$ sudo apt-get install install-assist-flash-plugin
$ rpm -q flash-plugin

nspluginwrapper の wrap された plugins ディレクトリを Google Chrome の plugins とします。

$ cd /opt/google/chrome
$ sudo ln -sf /usr/lib64/mozilla/plugins-wrapped plugins

/opt/google/chome/google-chrome の起動スクリプトに記述されている LD_LIBRARY_PATH にいくつかのパスを追加します。

--- google-chrome.orig	2011-05-12 10:43:00.000000000 +0900
+++ google-chrome	2011-05-18 00:01:28.000000000 +0900
@@ -22,9 +22,9 @@ fi
 # Always use our versions of ffmpeg libs.
 # This also makes RPMs find the compatibly-named NSS3/NSPR symlinks.
 if [[ -n "$LD_LIBRARY_PATH" ]]; then
-  LD_LIBRARY_PATH="$HERE:$HERE/lib:$LD_LIBRARY_PATH"
+  LD_LIBRARY_PATH="$HERE:$HERE/lib:/lib64:/usr/lib64:/usr/lib64/xulrunner-1.9.1:$LD_LIBRARY_PATH"
 else
-  LD_LIBRARY_PATH="$HERE:$HERE/lib"
+  LD_LIBRARY_PATH="$HERE:$HERE/lib:/lib64:/usr/lib64:/usr/lib64/xulrunner-1.9.1"
 fi
 export LD_LIBRARY_PATH
x86_64 の場合(その 2):リリースされていない x86_64 プレビュー版を使う

いまだに Adobe から 64bit 版の Flash Player がリリースされていないので、仕方なくプレビュー版をダウンロードして、インストールします。

$ wget http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_2_p3_64bit_linux_111710.tar.gz
$ tar xf flashplayer10_2_p3_64bit_linux_111710.tar.gz
$ sudo mkdir /opt/google/chome/plugins
$ sudo mv libflashplayer.so /opt/google/chome/plugins/
$ sudo chmod 755 /opt/google/chome/plugins/libflashplayer.so
$ sudo chown root:root /opt/google/chome/plugins/libflashplayer.so

/opt/google/chome/google-chrome の起動スクリプトに記述されている LD_LIBRARY_PATH にいくつかのパスを追加します。

--- google-chrome.orig	2011-05-12 10:43:00.000000000 +0900
+++ google-chrome	2011-05-18 00:01:28.000000000 +0900
@@ -22,9 +22,9 @@ fi
 # Always use our versions of ffmpeg libs.
 # This also makes RPMs find the compatibly-named NSS3/NSPR symlinks.
 if [[ -n "$LD_LIBRARY_PATH" ]]; then
-  LD_LIBRARY_PATH="$HERE:$HERE/lib:$LD_LIBRARY_PATH"
+  LD_LIBRARY_PATH="$HERE:$HERE/lib:/lib64:/usr/lib64:/usr/lib64/xulrunner-1.9.1:$LD_LIBRARY_PATH"
 else
-  LD_LIBRARY_PATH="$HERE:$HERE/lib"
+  LD_LIBRARY_PATH="$HERE:$HERE/lib:/lib64:/usr/lib64:/usr/lib64/xulrunner-1.9.1"
 fi
 export LD_LIBRARY_PATH

Google Chrome を起動

以上で Google Chrome を起動するための作業が完了しました。

Google Chrome をさっそく立ち上げてみます。

Vine Linux 5 上で動かしているこの Google Chrome では、Flash のあるページも閲覧でき、ibus + mozc の組み合わせで日本語入力も問題なくできており、一気に快適なウェブブラウジング環境になりました。

それでは、Vine Linux 5.2 でも最新版の Google Chrome Life をお過ごしくださいm(_ _)m

ちなみに、「install-assist 化、希望!」と言われてもやりませんので、あしからず(笑