64ビットシステムで32ビット版ブラウザを使うLeverage OSS(1/2 ページ)

64ビットのシステムでどうしても32ビット版のWebブラウザを使わなければならない状況にあるとすれば、あなたはどのように対策するだろうか。「chroot jail」を利用した方法を手始めに、幾つか考えられる方法を挙げてみよう。

» 2006年05月22日 11時36分 公開
[Nathan-Willis,japan.linux.com]
SourceForge.JP Magazine

 問題:手間ひまかけて高度にチューニングした自作マシンにお気に入りの64ビット版Linuxをインストールした。ところが、いまだに32ビット版のIntel互換Webブラウザでしか見られないコンテンツを公開しているWebサイトもある。そうしたコンテンツは、32ビット版のバイナリしか存在しない自社開発のプラグイン用に作られたものか、32ビット版のバイナリしか利用できないプレイヤー向けの圧縮メディアフォーマットであるか、のどちらかだ。さあ、あなたならどうする?

 一番簡単な解決策は、32ビット版のブラウザを「chroot jail」内部にインストールすることだ。chroot jailとは、ブラウザとその実行に必要なサポートライブラリ(この場合は、32ビット版のプラグインとコーデック)だけを備えた最小構成の32ビットシステムで、chrootコマンドなしではアクセスできないようにシステムのほかの部分から隔離された領域をいう。この32ビット版ブラウザは、上述の64ビット環境から起動可能で、Webに接続してそのコンテンツを閲覧できる。しかし、chroot jailの外側にインストールされた、ローカルマシン上のリソースにはアクセスできない。

 埋め込まれたメディアを普通に閲覧したり表示するのであれば、こうした環境でも問題なく動作する。ほとんどの場合は、プラグインやメディアコーデックをこのブラウザの動作の範囲内で直接インストールすることもできる。使っているディストリビューションのパッケージ管理アプリケーションの32ビット版をインストールし、ほとんど、あるいはまったく手をかけずに、すべてのアプリケーションを最新の状態に保つことさえできる。

 欠点は、このブラウザを使い続けると、ヘルパーアプリケーションや補助ツールがchroot jailにどんどんインストールされてしまうことだ。例えば、通常、BitTorrentのダウンロードファイルは外部のアプリケーションによって処理されるとはいえ、それらの大部分は依然としてWeb上のリンクから取得される。そのため、お気に入りのBitTorrentクライアントを32ビット版ブラウザからクリックして起動するには、chroot jail内部にBitTorrentクライアントの32ビット版をインストールしなければならない。多くの人にとって、同じアプリケーションなのに複数のバージョンをインストールしなければならないのは面倒であり、洗練されたやり方とはいえない。

 また、この方法は、32ビット版と64ビット版の両方のビルドが利用可能なディストリビューションでしか使えない。通常、そうしたディストリビューションを見つけるのは難しくはないのだが、念のために記しておく。

 たいてい、ディストリビューションのユーザーフォーラムやWiki、メーリングリストを探せば、chroot jailの詳しいセットアップ手順が見つかるだろう。具体的な例を挙げておくと、わたしは64ビット版UbuntuでMozilla Firefoxの32ビット版を使っているのだが、ubuntuforums.orgのこのスレッドにそのためのセットアップ手順がある。

ライブラリを利用する

 まったく異なるアプローチとして、32ビットの命令セット向けにコンパイルされ、/usr/libなど通常の(64ビットの)システムライブラリではなく同等の(/usr/lib32のような)32ビットライブラリにリンクされたブラウザをインストールする、という方法がある。バイナリライブラリが複数ある場合にどのような名前付けを行うかは、Filesystem Hierarchy Standardで指示されていないため、ディストリビューションごとに異なるが、たいていは、/usr/libは64ビット版ライブラリ、/usr/lib32は32ビット版ライブラリだと考えていいだろう。

 このことから、この方法には大きな問題があることが分かる。ディストリビューションへの依存性が非常に高いのだ。この方法だと、ディストリビューションは、32ビット版と64ビット版の両方が用意されていなければならないほか、複数の共有ライブラリにも対応していなければならない。chroot jailの方法との違いは、複数の共有ライブラリに対応していれば、ディストリビューションの設定やインストールに煩わされずに済む、という点だ。ただし、複数の共有ライブラリに対応していない場合、手動でセットアップを行うことになるのだが、その厄介さはchroot jail手法のセットアップの比ではない。

 さらに、このクロスライブラリシステム用にコンパイルされたWebブラウザ、つまり、/user/lib32またはそれに相当するライブラリにリンクされたバイナリ、をうまく扱う必要がある。32ビット版ディストリビューションで使えるように開発された、vanillaの32ビット版バイナリは動作しないだろう。現在使っているディストリビューションでこうしたクロスライブラリ・パッケージが利用できれば、苦労をせずに済む。そうでない場合は、皆さんのご健闘を祈る。力になりたいのはやまやまだが、この記事で自作ライブラリのコンパイルについて解説するわけにはいかない。

 別に、皆さんを落胆させようという意図はない。実は、いい知らせもある。わたしの非公式な調査によると、日々この問題に取り組んでいる64ビット版Linuxのユーザーは相当な数にのぼり、そのため、主要なディストリビューションのほとんどにはクロスライブラリ・パッケージが用意されているようだ。先ほどのわたしの環境を例に取ると、64ビット版Ubuntuには32ビットとの互換性を保つために開発されたパッケージが含まれているし、Firefox最新版の公式リリースが出るたびに、自らの時間を削って32ビット互換のFirefoxパッケージを最新版にアップデートしてくれる親切な人々もいる。

       1|2 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ