Skip to main content

ログ取得ツール

Category: GNU/Linux

Fedora Core 2 Test2

Fedora Core 2 Test2、4GBか…着実に増えてくなぁ。このぶんでは、DVD1枚に入らなくなる日もそう遠くないだろう。 とりあえずいまBitTorrentで落としているところ。こういうツールは上り側で貢献するので、ただ落とすだけでサーバに負荷かけてごめんね的な後ろめたさがないからいいよね。明日中くらいは上げっぱなしにしておこうと思った。 明日このサイトが重くなったらそのせいだけど、たいして重くはならないというのが経験上、ある。

CPUの数

Linuxで有効になっているプロセッサ数(SMPとかで)を求めるコマンドってなんだっけ? もしかして、grep -c ‘cpu[0-9]’ /proc/statなんてので誤魔化してたら恥ずかしい? sysctlとかで求められたような気がするんだよなぁ。 …と思って調べたら、getconf _NPROCESSORS_ONLNだった。glibcについてくるツールだ。ほかにもいろいろあるので、strings =getconfとかで調べてみるといいだろう。GNU_LIBPTHREAD_VERSIONとか。

メモ:zshのsetopt

いまはこうなっている。rmstarsilentをsetしてunsetしているのはご愛嬌。しかしzshのsetoptは「_(アンダースコア)」を無視するんだね。

setopt auto_menu auto_cd correct auto_name_dirs auto_remove_slash
setopt extended_history hist_ignore_dups hist_ignore_space prompt_subst
setopt pushd_ignore_dups rm_star_silent sun_keyboard_hack
setopt extended_glob list_types no_beep always_last_prompt
setopt cdable_vars sh_word_split auto_param_keys ignore_eof list_types
setopt noclobber magicequalsubst printeightbit
setopt auto_pushd chase_links print_exit_value
unsetopt rmstarsilent

これのchase_linksをどうするかが問題だ。うちでは/homeを/usr/homeにしているので、/etc/passwdでhomeを/home/xxxにしておいた場合、homeにいるときの右プロンプトが「~」にならなくなる。しかしこのオプションを指定してあげないと、ディレクトリへのシンボリックリンクの扱いがどうも困ったことになる。/etc/passwdを直すのが正式な対応かな。

製品が触れ込みどおり動くようにする

今日の名言。 Linux製品が売れない理由(linux.com)より。

製品が触れ込みどおり動くようにする
これはきわめて当たり前のことのように思われるが…

全ての製品に言えることだ。元記事How not to sell Linux products(newsforge.com)の表現だと、Make sure your product works as promised(This seems sooooo obvious…)という。

原因

そうか、migemo(namazu.org)が動いてなかったのはRubyをアップデートしたからか…1.6系用のディレクトリに周辺のライブラリ(romkanとbsearch)を入れていて、1.8だと動いてなかった。 なんか数年ぶりに気がついたって感じのように思えて、rpmのDBによれば私が1.8.0をインストールしたのは2003-10-20ということで、半年間もmigemoを使えない状態でXEmacsを使っていたのだ。使えてないということにはずいぶん前から気づいていたけど、なぜか直してなかった。なんというか…ショック。

来週の新製品:ソースバイナリパッチパッケージ形式

小さなパッチを当ててコンパイルして入れる…だけだとパッケージシステムで矛盾してしまうことになりかねない。 そこで、私はソースパッケージを持ってきて*.specファイルをいじってそのパッチ入りのパッケージにしてインストールする…という手順をいつも踏んでいる。これが、非常に面倒である。かと言って/usr/local以下に手コンパイルバイナリを入れる方法もあるが、これは昔やって破綻して懲りた。 で、今やっている「パッケージ+小さなパッチ」→「パッケージ」化の作業を自動化できないかな、と思った。バイナリからソースへのポインタが張ってあれば、ソースにパッチを当ててリビルドしてバイナリを実行できる場所に置く…というのが自動化できるような気がする。 つまり、/bin/lsへのパッチがあったのでユーザがそれを当てたくなったとして、/bin/lsはcoreutilsとかfileutilsに入っているものなので…というのを検索して(rpm -qfで可能)、coreutilsやらfileutilsのソースを見つけだしてパッチを当てて再コンパイルしてできたバイナリをインストールしてパッケージシステムに登録する…というのを自動化できると思ったのだ。…「つまり」以下が余計にわかりにくくなっているが(笑)。 けっこう画期的な気がする。ユーザからの見た目はバイナリパッチのようであって、中身がソースパッチであることを隠蔽するのだ。 実装方法としては、rpmbuildコマンドを改造して、コマンドラインだけで*.src.rpmや*.specにパッチを追加できるようにするのがいいかなぁ。rpmbuildよりも上位でやったほうがいいかな。悩ましい。 でも、小さなパッチをあっちこっちで作って配っているという文化じゃなくなってるんだよね、最近は。残念なことだ。 まあ「パッチ」とさかんに言っているが本命はバージョンアップだ。software-0.1-1.{nosrc,src}.rpmとsoftware-0.2.tar.gzからsoftware-0.2-1.{src,i686}.rpmを作る、というのを自動化できるだけでだいぶ違うと思うんだよな。自分でバラしてsoftware.specの中身をいじってrpmbuild -bb software.specして、rpm -Uvh software-0.2-1.i686.rpmする、というのを、rpmbuild –rebuild software-0.1-1.src.rpm –withver=0.2 –installとかだけで実行できれば労力は激減するだろう。 (追記) 2004-03-10 14:09 そういう意味ではrpmbuild -tb software-0.2.tar.gz(*.specが*.tar.gzの中に入っている)というのも一つの解ではあるな。あれは非常に楽だ。いい加減な*.specもあるからけっこう困るんだが。

古人の敗北

FedoraのlessはLESSCHARSET=japanese-eucにするとinvalid charset nameが出て動かなくなっている。これは非道だろう。ここはlessを削除してlvに移行するべき。さすがFedora。 ただlvには「F」コマンド(いわゆるtail -fの動作)がないんだよなぁ。 というわけで、少し試行錯誤して作ってみました。なんかメッセージ行が消えたりする未完成パッチですが、一応動作はしてるみたいです。これでlessを捨てられる人も多いはず。 lvはiconvよりも良い文字コード変換フィルタみたいな使い方もできるし、lessよりも細かい面で使いやすかったりするので重宝している。特にlessは検索が遅いんだよな。同じような正規表現なのに。BM法を使っていないのだろうと勝手に思っている(その思いが正しいのかどうかはわからない)。 (追記) 2004-03-10 15:31 なんだよ、lv-4.51には最初からF(CommandPoll)が入ってるのか。さすがにちゃんと書いてある。騙された。恥ずかしい。 とりあえず、Fedora Core 1のlvがいずれ4.51以降にアップデートされることを願う。