2000-07-04(火) [長年日記]
■ mph
slocate
とか、けっこう使ってるツールがerattaに上がっている。いちいちパッケージをftpしてきてもいいんだけど、そろそろmph
で自動upgradeに挑戦してもいい頃。自宅のマシンはいいとしても、職場のマシンは誰にクラックされるかわかったもんじゃないし。それに職場にはKondaraのmirrorサイトがある。これを利用しない手はない。
mph
自体は自動的にインストールされているので、まず、/etc/mph.conf
を自分の環境に合わせて書き換える。デフォルトではスナップショットを持ってくるという実にKondaraらしいというか、恐ろしい設定になっているので、ここは以前、ぱぱんださんの日記で読んだのを参考にして、Kondara1.1/eratta
以下だけを対象にするようにしよう。こんな感じ:
$DIRS = [ 'ftp://ftp.hogehoge.co.jp/Linux/kondara/Kondara-1.1/errata/bugfixes/i586', 'ftp://ftp.hogehohe.co.jp/Linux/kondara/Kondara-1.1/errata/bugfixes/noarch', 'ftp://ftp.hogehoge.co.jp/Linux/kondara/Kondara-1.1/errata/security/i586', 'ftp://ftp.hogehoge.co.jp/Linux/kondara/Kondara-1.1/errata/security/noarch', 'ftp://ftp.hogehoge.co.jp/Linux/kondara/Kondara-1.1/errata/updates/i586', 'ftp://ftp.hogehoge.co.jp/Linux/kondara/Kondara-1.1/errata/updates/noarch' ]
■ 上の方にある、ftpのパスワードを、自分のメールアドレスに変えるのも忘れずに。続いて、データーベースを更新:
$ sudo mph-get update
■ ……と思ったらmph-get
(その実体はRubyスクリプト)自体がコケる。正規表現のparseエラーだ。Ruby 1.4.5の非互換だな、これ。こないだ自作のスクリプトもこれにやられた。ちょこちょこと直して再実行。これでそれぞれのディレクトリに関する*.mph
ファイルを取得してくるので、その内容に基づいてアップグレードできるようになる。さて、アップグレードしてみよう。
$ sudo mph-get upgrade
■ アップグレード対象になっているパッケージの一覧がずらずらと表示され、そのファイルサイズ(初めてなので30MBほど。とても自宅でやりたい作業ではないね)が出て、更新するかどうか聞いてくる。「y」と答えるとftpからrpm
ファイルをGETしてくる……はずなんだけど、よくわからない理由でGETできんとかぬかしてくる。をいっ。
なんとなくftpのライブラリがくさい。現在のRubyはnet/ftp
を使うことを推奨してるけど、このmph-get
は古いftplib
を使っている。そこで、スナップショットから最新のmph-0.9.6-17
を持ってきてインストール……と、またreadline
が依存してるとか言われたので、src.rpm
の方を再GETして--rebuild
してから再インストール。手慣れてきたな(笑)。
新しい/etc/mph.conf
を編集して($DIR
が$asDIR
に変わってたりするので注意)、再度update、upgradeを行う。こんどはいけてる。全ファイルの取得が終わると、rpm -Uvh
がかかるのだ……が(こればっか)、なんとRubyのupgradeに失敗していると出た。あんた、今入ってるのは最新の1.4.5なのに、なんで1.4.4を入れようとするの。しかもruby-eb
が依存してるからダメとか言うし。たぶん、mph
ファイルに書かれている方が優先されちゃうんだな。
■ 仕方がないので、ruby-eb
をいったんアンインストールしてから、再度upgradeを実行。さっきダウンロードしたファイルはキャッシュされているので、すぐにrpm
が動いて、こんどは成功。でもRubyが1.4.4に戻っちゃったので、改めてこないだ作ったRuby 1.4.5と、RubyEBを入れ直す。その前に、eb.so
が入る/usr/lib/ruby/1.4/i586-linux-gnu
というディレクトリを削除して、i586-linux
を指すシンボリックリンクに変えておく。これで素直に入るようになった。泥縄だけど(笑)。
でもこれだけだと、次回のupgradeでまた同じことが起きるような……。仕方がない、当面の処置としてeratta/updates/i586
(Rubyが入っているディレクトリ)だけ、更新対象からはずしておこう。ローカルに自作のパッケージを入れたディレクトリを作ってmph
ファイルを生成しておけば、それを見に行くようにできる気もするけど、いかんせん、mph
ファイルの書き方がわからない(笑)。ま、これはいずれ。
■ Kondara 1.2
そういえば、Kondara自体の最新版もShizuka(1.1)からAyaka(1.2)になってるんだよなぁ。まぁ、特に不都合はないからしばらく1.2にする必要はないんだけど。つーか、ダイヤルアップユーザとしては、箱になるまで入手できないんだけどな(会社でCD-Rに焼くという手はあるけど、これは最後の手段)。そもそも、OSなんてものは年に何回もバージョンアップするものではない。次はKernelが2.4になるタイミングでしょう。
■ ディスク増設
続いて、週末に買ってきたハードディスクの取り付け。MP3ファイルで手狭になってきたQuantum Fireball SE 4GBに変えて、IBM DTLA-30502 20GBにするのだ。まずはIBMをセカンダリ・スレーブに取り付けて、以前の増設の手順を見ながら領域確保〜フォーマット〜mountまで順調に進める。日記ってすばらしい(笑)。それから取り外す予定のQuantumから、全ファイルをコピー。なんか、やたらとCPUを食うような。しかも遅い。変だな。
この時点ではあまり気にせず、Quantumを外して空いたプライマリ・スレーブにIBMをつなぎ替え。/etc/fstab
を適当に修正して、載せ替え完了。ふっふっふー、楽勝じゃ。
でも、さっきの遅さが気になる。いずれ/home
をこっちに移動しちゃおうと思ってるだけに、あまり遅いのは困るだろ。dmesg
を見てみると、プライマリ・マスターにつないであるもう1つのQuantumには「UDMA」の文字が出ているのに、今日増設したIBMには出ていない。UltraDMA66のディスクだから? どうもハードウェアのことになるとからきしだからなぁ、おれ。
hdparm
というコマンドが記憶にあったので、root
になって使ってみる。DMAは-d
で見えるらしい。なるほど、Quantumは1(on)なのに、IBMの方は0(off)だ。だから遅い? いやいやしかし。-t
でちょっとしたベンチマークを取ってみると、どっちのディスクも3MB/secくらいしか出ていないことが判明(爆)。こんな遅いディスクで満足してたんか、おれは(笑)。
Webを調べてみると、DMAよりも-c
オプション、つまりI/Oモードを32bitにする方が効果があるみたいだ。実際、IBMの方に-d 1
を指定してDMAをonにしたら、ディスクが正しく読めなくなっちまった(汗)。試しに両者を比較してみると……
# hdparm -c 0 -t /dev/hdb /dev/hdb: setting 32-bit I/O support flag to 0 I/O support = 0 (default 16-bit) Timing buffered disk reads: 64 MB in 17.45 seconds = 3.67 MB/sec # hdparm -c 1 -t /dev/hdb /dev/hdb: setting 32-bit I/O support flag to 1 I/O support = 1 (32-bit) Timing buffered disk reads: 64 MB in 10.29 seconds = 6.22 MB/sec
■ おおー、およそ倍。これなら文句ないだろ。いや、もしかするともっと速くなるかも知れないけど、おれって以前からSCSI2の5MB/secで満足だった人だから。これだけ出てれば十分でないの。いやホント。不満なのはDMA転送を使えないとCPU負荷が高いことだよなぁ。どうしたもんか……。
などと考えつつ、試しにリブートしてみたら、見事に設定を忘れてくれてるし。いちおう-k
オプションもつけてみたんだけど、無意味だったか。仕方がないので、/etc/rc.d/rc.local
の末尾に/sbin/hdparm -c1 /dev/hda /dev/hdb
というのを追加しておいた。ちょっと不満だが、ま、いいだろ。