ひょんなことから IBM の ThinkPad iSeries 1157 を手に入れる。今更、Windows9x 系が動いてもあんまり嬉しくないので、勉強も兼ねて Linux をインストールすることにする。Linux のインストールに挑戦するのは、これで6回目(成功は3回)。しかもノート型パソコンにはまだ1回しか成功したことがないので、うまくインストールできるか全く自信なし。
ディストリビューションを何にするか迷ったけれど、これまでの相性と Ruby、Namazu が標準で含まれている Vine に決定。
インストール作業そのものは拍子抜けするくらい簡単に終わってしまう。ノート型パソコンと言っても、CD-ROM が内蔵されているので、CD-ROM からブートしてしまえば、後は画面の指示のままさくさくこなす。今回は Windows との共存も考えなくていいし。X の設定まで特にトラブルもなく完了。なお、パッケージは「すべて」を選択する。
これでインストールが完了した時点で、サウンド関係、モデム関係、電源関係以外は正常に動いてくれる。逆に言えば、サウンド関係、モデム関係、電源関係は機能していない。サウンドは、「sndconfig」で設定したところ、テスト用の声は聞こえるのだけど、相変わらず音は鳴らないっぽい。あとシャットダウンもうまくできない。これ課題。モデムについては、動けば動いたに越したことないのだけど、内蔵モデムが動くよりは、AirHとかLANカードが認識できれば、そっちの方が便利なので、当面はこれ以上の作業をしないことにする。
とりあえずしばらくは、Bash、Emacs の設定をちまちまといじろう。と言いつつ、今日は特に何もしなかった。
Canna のキーバインドを ATOK 風にする。これは単純に /usr/lib/canna/sample/just.canna を個人のホームディレクトリに.canna でコピーしただけ。
Emacs の自動改行を止める。それに伴い、カーソルキーの移動が表示行に対応するように設定する。
カーソル移動の設定は、寺川愛印のHomepageからce-scroll.elをダウンロードしてきて、/usr/share/emacs/site-lisp/ にコピーして、.emacs.el に「(load "/usr/share/emacs/site-lisp/ce-scroll.el") 」設定を記述する。
Bash の設定は、CVS 関連の設定と Ruby 関連の設定を行う。あとプロンプトに現在のディレクトリを表示するように変更。
PS1='[¥w] >'
Ruby の開発環境の設定を行う。OptionParser、Racc、RDtool、ERb、dRuby をインストールする。インストール方法は、それぞれ下記の通り。依存関係があるので、インストールの順番にも注意する必要がある。
make -f GNUmakefile install
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install
ruby rdtoolconf.rb make all make install
ruby install.rb
サウンドカード関係や Air'H 関係をいろいろと試していたら、にっちもさっちも状態になったので、再インストールする羽目になる(^^;
今回もインストール自体は無事に終了。昨日行った設定もバックアップを取っておいたので、すぐに元の環境に戻る。ただ、相変わらずサウンド関係と電源管理はうまくいっていない。ちょっとお手上げ。
電源関係、カスタムインストールを選んでパッケージを全てインストールしたところ、何となくうまくいっているっぽい。スリープまではできるようになった。復帰もちゃんとできているみたい。
「日経Linux 2002年12月号」に付いていた Cgoban と GNUGo をインストールする。
./configure make make install
これで基本的にはどちらもインストールできるはずなのだけど、なぜか Cgoban の方はうまくインストールできなかった。原因は分からなかったのだけど、エラー表示を参考にして、Makefile-i686-linux ファイルの PREFIX を/usr/local/bin に手動で書き直すと、インストール完了。当面はこれで遊ぼう。
ついでに、「お気に入り」に登録する。Gnome のメニューは一般ユーザでは登録・削除の作業ができないので、ちょっと違和感を覚える。
「LinuxWORLD 2003年3月号」に付いていた倉庫番をインストールする。インストール手順は、CDの中に入っていた説明の通りでできた。起動には、ちょっと注意が必要で、「GNOMEDIR=/usr/local gsokoban」としてやらないとダメみたい。
試験的に Linux を外に持ち出して作業をしてみる。バッテリー関係は問題なく動いている。残存量もちゃんと表示されているし。
バッテリーの容量そのものが少ないし、ちょっと重いので、Librettoの用に普段持ち歩いて作業するわけにはいかないのだろうけれど、これはこれでいい感じ。あと Air'H が使えるようになれば、モバイル環境としてもそれなりの作業ができそう。
RubyUnitをインストールする。インストールの方法は、RubyUnit のアーカイブを展開したディレクトリで、
ruby install.rb
これで問題なくインストールできた。
後、サウンドカードの設定も何となくうまくできたような感じ。sndconfig で問題なくできてしまった。でも、ALSAドライバのインストールには失敗している。どうしてだろう。『日経Linux 2002年6月号』に付いていたファイルをインストール使用としたのだけど、ドライバのインストールで失敗している。
./configure --with-kernel=/usr/src/linux-2.4.19 make su make install && ./devices
これでインストールしようとすると、System.map が見つからないとのエラーが出てしまう。ちょっと手の施しようがないというのが正直なところ。とは言うものの、とりあえずデフォルトの sndconfig でうまく音が出るようになったので、これ以上の作業は止めておこう。
なお、当初うまく音が出なかったのは、サウンドカードの認識の問題ではなく、単純に Fn + PgUp で音量を上げたらよかっただけだった。ちょっと拍子抜け。
Java のインストールを行う。と言っても、Java が使いたいわけではなくて、UMLモデリングツールの IIOSS を使いたいから。インストール方法は下記の通り。
※ アーカイブを展開したディレクトリ下にある「Install」ディレクトリに移動。 su ./install.sh ※ この後は、画面の指示通りに作業を行う。
ついでに、.bashrc にも Java と IIOSS が使えるようにパスを設定する。
addpath /usr/java/java-1.xx.xx/bin addpath /usr/local/iioss/bin
ただ、両方とも古い書籍についていたものを利用しているので、バージョンは結構古め。Java は、1.03 だし。アップデートしたいのだけど、Linux でネットワーク関係の設定が全く進んでいないので、当面は無理っぽい。
ともあれ、これで僕の力量範囲内での開発環境はとりあえず整った。
音楽CDの再生に挑戦してみる。問題なく再生できたけど、音質はちょっと悪い。これThinkPadのサウンドカードの限界なのだろうか、それともドライバの限界なのだろうか。
とは言うものの、一歩前進。拡張ベイから取り外して持ち運んでいるときでも音楽を聴けるように、MP3か何かへの変換手段を整えよう。
ここのところ週末に自分一人の時間をとれていなかったので、ちょっと Linux から遠ざかっていた。
デスクトップ環境として使うとしても、やはりネットワーク環境(特にインターネットへの接続環境)は整備しておいた方が何かと便利なようなので、これを優先しよう。Air'H を使えるようにして単体でインターネットに接続できるようにした方がいいのか、それとも LAN カードで家庭内 LAN を構築してしまって、インターネットへの接続は引き続き Windows で行う方がいいのか、ちょっと悩み中。ベストは両方なのだろうけど……。
GNUアーカイブ集の CD-ROM につられて『UNIX USER 2003年5月号』を購入。依然としてインターネットへの接続がうまくいかないので、この種の付録は助かる。
『LINUX WORLD 2003年6月号』を購入。雑誌を購入するのはいいけれど、Linuxでの作業は滞っている。よくない。
拡張ベースの脱着後、DVD-ROMドライブが認識されない。ある意味、当然と言えば当然なのだけれど、Windows上ではできそうなだけに、ちょっと悔しい。
ここのところ、職場内で出張所を作っていて、いろいろと不便だったので、Linux PC を職場にデビューさせる。VNC を導入して、本宅と別荘で PC の移動をしなくてもいいようにしたい。さて、うまくいくかどうか。とりあえずネットワークカードを認識させるところから始めないといけないのだけど。
なんてことを心配していたのだけれど、ネットワークカードの認識、VNC の導入ともに、予想以上に簡単に終わってしまった。ちょっと拍子抜け。
ただし、外部ネットワークへのアクセスには失敗。とりあえず仕事はできるので、外部アクセスのためのネットワーク設定は宿題に残しておく。
外部ネットワークにアクセスできない問題、社内の SE の人に設定してもらう(^^; すごくあっさり解決されたので、さすが! しかも、設定用の GUI ツールを使うのではなく、直接設定ファイルを編集されていた。さすが! ただし、あまりにも作業が早かったので、どこをどう編集したのかさっぱり分からなかった。次、同じ問題が発生したときに自分で解決できない〜。
ともあれ、I手さんによって外部ネットワークにアクセスできるようになったので、早速 apt でシステムの更新を行う。
apt-get update apt-get upgrade
これ、毎回、コマンドをタイプするのはちょっと面倒なので、シェルスクリプトにしてしまう。本当は cron に登録してしまってもいいのだろうけれど、当分の間は何が起こっているのか確認したいので、手動で行うことにする。
#!/bin/sh apt-get update apt-get upgrade
Linux を職場に持っていって、作業そのものは行っているものの、勉強は進まず。ついでに実験的な意味も含めた設定もあまり進んでいないような気がする。やっぱり手元に置いて作業をしないと、なかなか進まないものなのかもしれない。
住所録データを検索するためのスクリプトを書く。
データそのものはテキストファイルで、下記のような形式でデータを持っている。
#!/usr/env ruby require 'getopts' class SearchAddress def initialize( file ) @f_target = file @str = "" @result = Array.new end def search( str ) @str = Regexp.new(str) delimitar = Regexp.new("◆") File.foreach(@f_target) do |line| date, name, f_name, company, f_company, div, position, zip, address, bld, tel, fax, mail, keyword = line.split(delimitar,14) if (@str =‾ name || @str =‾ f_name || @str =‾ company || @str =‾ f_company || @str =‾ keyword) _result = { "name" => name, "company" => company, "div" => div, "position" => position, "zip" => zip, "address" => address, "bld" => bld, "tel" => tel, "fax" => fax, "mail" => mail, "keyword" => keyword } @result.push(_result) end end return @result end end getopts("l") sead = SearchAddress.new("‾/work/address.txt") result = sead.search(ARGV.shift) result.each do |a| puts "名前 : #{a['name']}" puts "会社 : #{a['company']}" puts "所属 : #{a['div']}" puts "TEL : #{a['tel']}" puts "FAX : #{a['fax']}" puts "Mail : #{a['mail']}" puts "郵便 : #{a['zip']}" if $OPT_l puts "住所 : #{a['address']}" if $OPY_l puts "ビル : #{a['bld']}" if $OPT_l puts "" end puts "#{result.size}hits!¥n"
時間を合わせる方法のメモ。
ntpdate 133.100.9.2
職場内での出張状態が解消されたので ThinkPad を持って帰る。再び自宅で使うための環境設定をこつこつこなすことに。