« November 2006 | Main | February 2007 »

December 11, 2006

OSを選ぶ時代?──仮想マシンごっこ(笑)

10月の中頃に知った無償版VMware Server/Playerとマイクロソフトの無償版Virtual PC(どちらも2006年7月12日に発表された)による仮想マシンごっこだが、夢中になり始めてそろそろ2ヶ月になる。自宅のPCでこんなに遊んだのはMS-DOS 5.0のconfig.sys以来だ。もともと最新のEmacsがちゃんとコンパイル出来て、ちゃんと動く環境が欲しかっただけなのに・・・落ち着くまでにものすごく時間がかかった気がする。この2ヶ月間、土日はもちろん平日も夜遅くまで、あーでもない、こーでもないとホントにいろんなことを試し、同じ間違いを何度も繰り返しながら、昨日やっと落ち着いた。いい歳をしたオッサンが2ヶ月も夢中になれるんだから結構楽しいと思うのだが、他の人にとってはどうだろう。

最初のサプライズは「Windows上でLinuxが動く」「VMware無償版の配布開始」というのをWEBのニュースで読んだ時だったと思う。ちょっと前まで本業の方でも、顧客から「なんで1台のマシンでOSを複数動かせないの?」と言われていたので、ピクンとくるものがあった。もしかしてこれのことを言われていたんだろうか・・・そうだとしたら「客ながらアッパレ!」と言いたいところである。

むかしやっていた開発で、SUN上で動くTRONチップのエミュレータを使ったことがあるのだが、テキスト端末上でちょっとした試験プログラムを動かすだけでも、すごく重かった記憶がある。なので基本的にハードウェアをエミュレートするのは非常に大変なことなんだという先入観があった。ましてエミュレータ上でWindowsやLinuxなどのGUIを動かすなんて、常識では考えられないようなことだった。ところがどうだろう、今ではそれがごく当たり前に出来るようになってきている。面白いもので、突然やってきた技術革新に驚くというよりは、これについていかなくてはならないと狼狽えている自分に気が付いた。

きっと、むかしからLinuxやBSDなどのPC-UNIXを触ってきた人たちは、Windowsとのデュアルブートにしていたんだと思う。それだと起動時に立ち上げるOSを決めるので、それで立ち上がってしまったらそのOSだけの環境になる。「それで良いんじゃん!」って言う人も居るのだろうが、ちょっとLinuxを触ってみたいからという程度の動機で、自分のPCをデュアルブート環境に作り替える気になる人がどれほど居るだろうか。そういう意味でVMwareやMS Virtual PCが提供する仮想マシン環境は、1台のマシンで複数のOSを動かすというマニアックな行為の敷居を極端に低くしたと言える。気に入らなければ、Windows上でその仮想マシンを削除するだけだ。

先月書いた文章でも少し触れたが、最初はとにかくVMware上に何かLinuxをインストールしてみようと思った。そしてLinuxのディストリビューションの多さに驚いた。SlackwareとRedhatしか知らなかった私にとっては「こんなにたくさんあったんだ!」というのが正直な感想だ。最初にやってみようと目に止まったのはVine Linux 3.2だった。これは結構良く出来ていて、日本語のインストーラから簡単にインストールすることが出来た。多少パッケージを追加する必要はあったが、Emacs-23もあっさりコンパイル出来て、これはひょっとしたら一発で決まりか?!と思った。そのまましばらくVine Linux 3.2を使っていたが、カーネル2.6のVine Linux 4.0がリリースされて、それを試してみようと思ったのが流転の始まりだった。Vine Linux 4.0はキーリピートの制御が上手くないのか、速くキータイプすると同じ文字がどーっと入力されてしまい、ひどいときは何度繰り返しても意図する入力が出来なかった。ターミナルにエコーされる入力は良いとして、パスワード入力でもこんなことになったらログインも出来ないではないか!と思い、他に良いディストリビューションは無いかと探し始めた。この事象は、Virtual PC上でも多くのLinuxディストリビューションで再現する。

他のLinuxディストリビューションに行く前に、一度BSDを試しておこうと思い、FreeBSD 6.1をVMwareに入れてみた。何も追加インストールしないとX11はtwm環境になるが、動いているプロセスがLinuxの半分くらいしかなくて、とても軽快な動きをするなぁ・・・と感心した。しかし、Emacs-23をコンパイルするとよく分からないエラーになったので、その時点で即あきらめ。BSD関連は、その後Virtual PCでNetBSDにもトライしたが、こちらは初回ブートでインストーラに辿り着かなかった。

そうこうしているうちに、いつもCygwinでスイスイとインストール出来ていたNTEmacsのコンパイルが出来なくなっていた(makeがエラーを出すようになった)。configure後にすべてのMakefileを書き変えるフィルターでも作ろうかな?とも考えたが断念・・・それで、自分の目的にマッチしたLinuxディストリビューションを探すのに拍車がかかった。たかがメールやニュースをスムーズに読むためだけに、いつまでもこんなことばかりしていられない。本屋に行ってメディアの付いた雑誌や書籍を買い集め、Fedora Core 6、CentOS 4.4、Debian 3.1、Ubuntu 6.10、Knoppix4.0、Mandriva 2007、Plamo Linux 4.12、coMomonga 3、などを入手。これらはVirtual PCを使って試した。VMwareは、qemu+VMware Playerという使い方が一般的なんだろうが、私はVMware Serverでインストールしていたので、非常に時間がかかる上に、ServerとPlayerのインストール/アンインストールを繰り返すのにうんざりしたので、Virtual PCを使うことにした。やっているうちにVirtual PC 2007 Betaが出てきて、正式サポートされたWindows Vistaの味見もしている。

これらの中で、まず見た目で完成度が高そう且つカーネル2.6を採用しているFedora Core、CentOS、Ubuntuに絞られた。いずれも前述のキーリピート現象が起きるが、マウスホイールに対応していたのがCentOSだけだったので、これをVMwareで試してみようと考えた。そして予想は的中し、VMware上ではキーリピートは正常だった。Virtual PCでいろいろ試しているうちにVMware Playerが1.0.3にバージョンアップしたので、それを使用した。これで獲物は決まった。後はEmacs環境を作るだけだ。

Emacs環境は、これまでCygwinを使ったビルドを飽きるほどやっているので何の迷いもない。まずEmacs本体をCVSサーバからチェックアウトし、configureを使ってMakefileを生成、X11のtoolkitと画像関係がサポートされることを確認する。ここで足りないものがあれば、追加インストールしなければならない。CentOSでは「アプリケーションの追加/削除」で行うが、これがまたよく分からない。それに追加項目を選択してインストールしようとすると、何番目の媒体を入れろと言われる。CentOS自体のインストールは雑誌付録のDVDから行ったので、4枚組のCDは持っていない。仕方がないのでISOイメージをダウンロードすることにした。これが大幅な足止めになってしまう。ISDNの時代だったら、その場は断念するしか無かったろう。2〜3時間かけてCentOSのISOイメージをダウンロードし、さあどうだ!とばかりに「アプリケーションの追加/削除」を再開したのだが・・・VMware Player上で4枚あるISOイメージをどうやって切り替えるのだろうか。これもGoogleで調べるしかなかった。運良くすぐに方法は分かったが、かなり無理のある方法だ。媒体を要求されたらVMware Playerをサスペンドして、仮想マシンの設定ファイルをエディタで書き替え、レジュームすることで認識するらしい。途中何度もレジュームせずにリセットされてしまった。でも何とか、必要なパッケージはインストール出来たと思われる。

次にEmacsをコンパイル/インストールする。Meadowではないので,日本語を入力するにはSKKで我慢するか、Wnn、Canna、SJ3、Anthyなどの日本語変換サーバをEggから使えるようにしないといけない。ところが今回のビルドしたEmacs-23ではデフォルトでkinput2+Cannaが使えるようになっていた。これってC-SPCで入力切替するようになっていて、ちょっとウザい(笑)。出来ればS-SPCに変更したいものだ。これはいろいろと悩んだ結果「入力メソッドの選択」の設定を「IIIMF」から「高度な設定」に変更すると解消した。なので、ほとんど使用しないにもかかわらず、今でもS-SPCをタイプするとEmacs上でもKinput2+Cannaで日本語入力可能である。これによりCannaやKinput2の設定をいくら弄ってもダメという、かなり本質から離れた部分の知識が増えた(笑)。Emacsが使えるようになったら、emacs-lispライブラリであるtamago、apel、flim、semi、emacs-w3m、wanderlust、gnusをインストールする。日本語変換はすでにWindows上でも便利に使えているAnthyにした。当然の如くsemiまでは順調だったが、emacs-w3mをインストール中にw3mが居ないことに気付き、ちょっと焦る。なんで?っていう感じだったが、仕方がないのでyumを使ってパッケージインストールを試みるがNG。次にソースを持ってきてコンパイルしようとしたが、configureでエラー発生。こんなことCygwinでも無かったのに・・・とブツブツ独り言を言いながら、原因を調べ始めた。GCライブラリが無いためにエラーになったようだ。他にもエラーが出ているがw3mを直に使うわけでは無いので、とりあえず無視する。これでw3mのインストールは出来たが、Wanderlustでメールを読むとHTMLメールでlibgc.so.1が見付からないと表示される。これにもちょっと焦ったが、結局LD_LIBRARY_PATHを設定することで何とかなったようだ。心配なので、一応/usr/libにファイルのリンクを置き、/etc/ld.so.confに/usr/local/libを追加しておく。

今回のLinuxディストリビューション選びで気にした観点は、画面の見た目(表示可能な解像度の高さ、フォントの綺麗さ)、操作上のおかしな挙動(キーリピートなど)が無いこと、マウスホイールが効くかどうか(設定変更により動くのも可)、軽快に動くかどうか・・・と主に操作性を重視した。個人的にはEmacsがコンパイル出来るかどうかという観点も重要だが、いまどきのLinuxならたいてい問題ないし、仮にあったとしても解決方法がある。唯一FreeBSDの場合は、パッケージの追加でどうにかなるエラーじゃないような気がしたのであきらめた。

仮想マシン上にLinuxをインストールする際に注意すべきことは、画面の解像度は16ビットカラーを指定すること、X11の画面が乱れたらCTRL+ALT+F1を押下してテキストモードに移行し/etc/X11/xorg.confなどのファイルを適切に編集(24ビットカラーを16ビッドカラーに変更、表示不可能な解像度を削除)すること、VMware Serverでテキストモードのインストールする場合は動作が鈍い割りにキーリピートが速いのでEnterキーをルーズに叩かないこと、モニタ機種やビデオカードの種類を選択する場合にはそれぞれの仮想マシンがOSに対してどのようなエミュレーションをしているかを把握して適切に選択すること(たとえばモニタの機種を正確に選択しても意味が無い場合が多いので「汎用モニタ」にするとか)、などだ。他にもWEB検索すればいろんな情報が溢れている。

ダメでも最悪Windowsはちゃんと動くので、焦らずにのんびり時間をかけてやった方が良いと思う。動けば別のマシンを手配しなくても、ただでLinuxが動くのだから。

| | Comments (0) | TrackBack (1)

« November 2006 | Main | February 2007 »