2006年01月31日
『結晶する魂』
深い闇に包まれた夜の森の中で、忌わしき惨劇に見舞われた美しい少女ディー。それ以来、彼女の幼い心は、夜ごと訪れる悪夢に苛まれ続けていた。どこからか聞こえてくる"声"が「父親を殺せ」と囁くのだ。愛する娘の異変に気づいたブリーマーは、彼女の精神を支配しようとする邪悪な力と対決すべく、ついに銃を握ったが…。P・K・ディックの絶賛を浴びて登場した鬼才が、圧倒的な筆力で描破する恐怖と異常世界。
…背の紹介文は、内容の良さを表してないなぁ(笑)。
『ブレードランナー2』『スタートレック ディープスペースナイン』『ドクター・アダー』といった作品を持つジーターの筆による、幻想ホラー小説。
淡々として冷酷ささえも感じさせる文体で描かれる世界には、勇敢なヒーロー・ヒロインはおらず、人間の弱さがあぶり出される。ブリーマーは物事に悩み、傷つき、怒り、逃げる。義姉のキャロルは言う。「――愛している人間に何かが起これば分かるのが当然でしょ。たぶん、あなたにはそういうことが分からないんでしょうね。あなたは自分の人生を自分だけの世界に閉じこめてきたからよ。自分独りで勝手に何かをやって、自分独りでどこかへ行って……はるばるイギリスまで、あなたが愛してくれてると思っている人たちを置きざりにして。」鈍感だった彼にこの言葉は届いたのだろうか。
『ドクター・アダー』で描かれた人体(死体)描写は単に趣味の悪さだけを見せているような未熟さがあったが、本書のその描写はまさにそこで登場するのが必然であり、極めて精緻で、我々にとっても身近な食材さえもぞっとしたものに見える感覚を呼び醒す。金銭・名誉・愛情・生殖――そういった生きる「意味」なく(死の恐怖でさえもない)、原始的・本能的な「生き続ける」ために「生きる」、かつて人だったものが、そういった描写された背景とのコントラストによってますます浮かび上がってくる。
なお、冒頭に引用したハヤカワ文庫の紹介文には不満があるが、原題『SOUL EATER』に、「魂を食らう者」ではなく、あえて『結晶する魂』という邦題を創造したセンスには素直に脱帽したい。
鶏肉と唐辛子の黒酢山椒炒め
辛くてうまい。うまくて辛い。
- 北京鍋を熱くして油を入れ、唐辛子と中華山椒を黒くなるまでよく炒める。
- 鶏肉に片栗粉をはたき、刻みニンニクを入れて炒める。
- 切ったナス、ネギを入れて炒め合わせる。
- 中国醤油、黒酢、紹興酒、鳥ガラスープ、塩を混ぜて、回しかける。
何かスープを添えたほうがよいかも。
2006年01月30日
Debconf 6登録
とりあえず登録をしてみる。5/13日本発(同日夕メキシコ着)-5/22メキシコ発(翌日日本着)かなぁ。sponsored accomodation in a 4-6 peopleか。あの部屋に6…。
エアカナダまたはAAかな。マイル的にはエアカナダか。
『iPod nano』『パワーサポートiPodnano Crystal JacketSet』『だれでもラジオ英会話』
いつ買うかというタイミングだけの問題だったのだが、何かと必要性が強まってきたのでこの機会に一式購入して試用中。
いわゆるnano 2GB。ヘッドフォンもそんなに悪くはないような。たいへん軽くてすばらしい。操作も簡単…なのはいいが、Macフォーマットで初期化してしまった。共用を考えるとWindowsでFATに初期化し直したいかな。
nano用のカバー。値段の割に保護シートと保護カバーがちゃんと付いて充電にも差し支えがないので、お得な気がする。
評判の良いNHKラジオ英会話。レベルは中級。学校を舞台にしたストーリーで、会話はゆっくりだけど、けっこう難しい単語が出てくるので侮れない。じっくりやっていこう。
2006年01月29日
OpenMicroServer、死亡…
うーむ、どうにも安定しない…。コンソールに何も出ないまま即死してるのが嫌すぎるな。カーネルにwatchdogは入ってないみたい(どなたか.ko作っていないかな)。software watchdogするにしても、こういう即死のときにちゃんと動作するのかどうか、という問題はある。
どうにも駄目なので一旦元に戻して、カーネルリビルドや高負荷テストなどしてからにしようかなぁ。独自パッチがいろいろ当たっているため、Debianカーネルでは駄目そう。
OpenMicroServer
ぷらっとに注文していたOpenMicroServerがようやっと届いた。
ホテルの金庫箱みたいな形。Ether×3で、ポート1は電源取得可能タイプだけど10/100Mbpsまで。ポート2、3はギガイーサ。シリアルポートはRJ45ケーブルをつなぎ、コンバータでPC側のシリアルポートに差し込めるようになっている。USBもあり。
SSD Linuxはちょっとナンなので、Webインターフェイスなどを見る間もなくシリアルでつないで情報をひととおりチェックしたあと、Debian化に入る。今日でひとまず動かしたいものは動くようになった。ただ、TUN/TAPのドライバがないのでopenvpnが動かない。これはちょっと困った。フラッシュ書き換えはあまりやりたくないなぁ…。
ハマリポイントがいくつかあったので、wikiにぼちぼちとまとめていく予定。CFには128MBを使ったけど、256MBあったほうがいろいろ楽だと思う。
ありゃ、リモートでiptablesを設定してみたら死んだ。シリアルにも応答しないし、何か秘孔を突いたか…?今回ルール多いので、この程度でめげるようだとはなはだ困るんだが。
餃子
皮から作ってみる。皮作りは以前とほぼ同じで、水の代わりにお湯を使う。具は豚肉、ニラ、白菜、生姜、ニンニク、塩、胡椒、片栗粉。
2/3は焼き、1/3は試しに蒸しにしてみる。蒸しは本来は澱粉で作るのでやっぱ無理があるな。焼きのほうはたいへんおいしくできた。小麦の主張が強い分、ご飯のおかずにはならないけど。
2006年01月28日
OpenMicroServer設置
昨日に続き、出社して作業。iptablesで死んだのは、Debian Sargeのiptablesが古くて、natテーブルを使うとカーネルをクラッシュさせてしまうからだったようだ。
ひとまず済ませてJLAセミナーに向かったものの、最初のセッションの話をほとんど聞く間もなく会社からのエマージェンシーコールが。MicroServer、止まってしまったらしい。リセットしても効果ナシ。
泣く泣く途中退席して再出社し、再確認。止まった原因は不明。過負荷で死ぬのかな。ただ、再起動後の設定コードに問題があり、うまくIPを取れない状況になっていた。何度か設定と再起動をしてみて、ひとまず問題ない(最悪いつでもリセットしてもらえばいい)というところまでできた。
JLAセミナーのほうはおもしろそうではあったのだけど、後ろの席からだとプレゼンで何をしているのかさっぱり見えず。
2006年01月26日
牡蛎のオーブン焼き、ペペロンチーノ風ナスのペンネ
時間調整をしくじって牡蛎が前菜並みの時間にできてしまった。ということで写真は牡蛎のみ。急ぎすぎてペンネは固くて失敗…。
牡蛎のほうのレシピ。ワインのおつまみ系。
- 玉葱とジャガイモとニンニクを弱火でじっくり炒めてグラタン皿に並べる。
- 塩で〆めたあとに強力粉を振った牡蛎を、バター+強火で両面を炒めて、白ワインで軽く煮つめる。
- 牡蛎に塩・胡椒を振ってスープごとグラタン皿に並べる。
- パン粉を軽く振り、モッツァレラチーズをちぎり乗せる。
- 200度のオーブンで10分ほど焼いてでき上がり。
Freenodeでpriv
#debian-develや#debian-bootなどに入っている手前、ときたまprivが飛んでくる。 i18n関連だったり、buildd関連だったり、CUPS関連だったり、「takuoに連絡とれるか?」だったり。
で、どうもこちらから送ったのが全然届いてないということで諦めていたのだが、ふとksircでつないで見たところ、freenodeにレジストしないと駄目だったらしい。ちゃんとメッセージ出てるし…。plumだと見えん。基本的にはprivでnickservに対して、
/msg nickserv register パスワード /msg nickserv set hide email on /msg nickserv set email メールアドレス あとで識別するには、 /msg nickserv identify パスワード
2006年01月25日
コーンコロッケと牛肉コロッケ、茹でキャベツ
当初牡蛎を買ってきてオーブン焼きにしようと思ってたのだけど、ご飯と味噌汁がまだあることを思い出した。ということで、出来合いのコロッケに、軽く茹でたキャベツを添えて。
2006年01月24日
豚丼、なめこと豆腐の味噌汁、きゅうりのぬか漬けとキムチ
牛はあいかわらず高いので、代わりに豚切り落としで作る。しょうがと豚を炒め、ネギと玉葱を加え炒めて、白滝を入れ、醤油、砂糖、塩、酒、味醂、昆布とかつお節と干し椎茸のだし汁で煮込み。
2006年01月23日
JLA Open Source Documentation Seminar: 翻訳支援環境に関するセミナー
JLAのセミナー。Sunで使っている支援システムや、今後の展望についての講演がある。
公私ともに何かと翻訳には関わっているので、モノになるものなのかどうか、興味があるところ。
鮭の味噌鍋
パートナーの体調があまりよくないということで刺激物を控える。が、鮭しか使えなさそうだ。しかも冷凍庫にいつから入ってたのか思い出せない…かなりしょぱそうだ。
ということで、ぶつ切りにして、鍋に野菜と一緒に放り込んで味噌味つけにしてみた。予想外にうまかった。野菜はストックのあったもので、昆布、白菜、人参、椎茸、ネギ。
2006年01月22日
お昼: カルボナーラ、生野菜のサラダ
お昼に作ったのを太陽光で撮ってみる。確かに「白く綺麗」に撮れるのかもしれないけど、『オレンジページ』みたいなちょっとつまらない写真になっちゃう感じ。ちなみに味のほうはたいへんおいしかったです。
po訳更新
bubulleに捕まって、aptitude/apt/dpkg/shadowの訳の更新をセヨとな。状況。
aptitudeは小林さんに引き続き期待か。shadowは今は中野さんだっけ。
apt/dpkgはいろいろ訳が不統一なので、Sargeでできなかった統一をやる気になってきた。いいかげんdselectのところは外して欲しいが…。aptitudeで変なのは「holdがhelpになっている」、dpkgで変なのは「。。」「processingが"読み込みエラー"」という感じかな。
dpkgとaptでほかに明らかに妙なところがあったらご連絡を。いちお全部読み直すつもりではありますが。
(自分メモ: Ctrl+X Enter cでこれから操作するI/Oのエンコーディングを指定できる)
2006年01月21日
ja.po for CUPS 1.2、とりあえず完了
とりあえず終わらせてSTRにアップロードしてしまった。602t。
どっちにしろ、まだWebインターフェイス関連はほとんどmsgidに入っていないし、類似のmsgidが重複して無駄が多いpoなので、upstreamレベルでブラッシュアップする必要があるだろう。
msweetはその辺興味なさそうだし、気合いのある企業が国際化周りのコード綺麗にするパッチでも作ってくれないかな。技術的なものよりも地道にprintfの箇所を追っていってメッセージの共有化を図っていくだけだけなので、リソースさえあればなんとかなる話。多分200メッセージくらいに減らせるのではないか。
テスト的にdebを作って試しているのだけど、眩暈がする国際化っぷり…。GNU gettextを使えば何も考えないで済むところが、Apple縛りで入れられないため、無茶なgettextもどきコードで対処されている。/usr/share/locale/ja/cups_jaという名前で生poを置き、これを何か実行のたびに必死にパース。パースもかなり微妙なコードで、すさまじくバギーだし、おっかないことこの上ない。
あれ、msweet休暇じゃなかったのか。返事がきた。$n%な順序変更はサポートしてないらしい…えぇー。文章いじらないとだめか。
GIMPで各アイコンも作ってくれよ、とのこと。ふむ、ちょっくらやってみますか。
ja.poを更新、アイコンもひととおり作成して送付。
チゲ鍋
19日のアップロード忘れてた。餃子用にニラを買ってきたけどちょっと皮を作る暇がなさそうなので、そろそろ見切って鍋に。昆布でダシを取り、豆板醤とコチュ醤を入れて、ネギ、白菜、キムチ、もやし、大根を加え、牛肉をしゃぶしゃぶとして最後に入れてできあがり。
2006年01月20日
GUI d-iのフォント問題、再び
必要なグリフを抽出したCJKフォントパッケージの導入でひとまず安心、あとは台湾中国韓国の翻訳100%を待つだけと思っていたのだけど、d-iの改良の副作用の影響をモロに受けることが判明(薄々気付いてたとも言うが…)。
etch d-iは、1st stageの段階でこれまで2nd stageでやっていたほぼ全部のことを行うようになった。パスワードの設定、時間の設定、パッケージの選択と設定。ん、「パッケージの選択」?そう、インストール済みの環境をchrootとして、taskselを呼び出してタスクの選択ができるわけだ。
不吉な匂いがしてきたかな? タスクで自由にインストールできることは即ち、何が入るか予想がしづらい。現状のタスク一覧をベースに予想できないことはないのだが、タスクは環境・時代によって変わる可能性があるし、もしaptitudeも起動できるようにすることになったら(というか今はtasksel呼び出し部のバグのために出てこないだけのような…。常に優先度highでdebconf表示されるし)、使われ得るグリフを抽出するというのは非現実的だ。
場当たり的な対処としては、1. 現状のを元に使われているグリフを入れる→スケーラビリティがなく容易に破綻する。2. 完全なTTFをinitrdに入れる→拒否されること確実。3. お帰りなさい、中国語ビットマップフォント→勘弁していただきたい。ということで、どれもできるだけ避けたい。
1つ考えた案としては、CJKのときにはそれぞれ固有の完全版ttf-*フォントをbase-installerのpostinst時にtarget環境にインストールさせ、これに/usr/share/fontsにある(shrinkされた)実体フォントをsymlinkに変えて参照させるようにすることでなんとかならんかな、というもの。
GTK+が動いているときに実体フォントを変えられた場合にうまくいくのか、もしパーティションフォーマットし直しが発生した場合にはどうshrinked実体フォントに戻すのか、が課題か。頭痛い。
ja.po for CUPS 1.2
Michael Sweetから、「ようやくCUPSメッセージの国際化フレームワークができたので、ja.po作ってくれれば入れるよ」というメールが。1.1以来、長かったなぁ。
んでさっそくpotを見てみたのだが、600近くmsgstrがある…。まぁほとんどはエラーメッセージとかなので、Ctrl+jしてコピーしてはちょいちょいと直し、なんだけど。254tまで進んだ。昔tomo-pさんに訳してもらったものの、だいぶ変わってしまったのと拾い出すほうが手間なので、ほとんど新訳。
というところでハタと思ったんだけど、SystemV/BSDコマンド系、つまりlp/lpstat/lpr/lpq/lprmといったコマンドのメッセージって翻訳してもよいものだろうか? LANGに日本語を入れたまま・あるいはLANG=Cにしないでバッチで特定メッセージ依存で動かしている場合だと、なにやら困った状態になるのではないかとちょっと懸念。
今回のこれはDebian固有じゃなくてupstream的な話なので、もう少し広い範囲でネゴっておいたほうがいい気がする。えーと、国内だとOpenPrintingがいいのかな。Michaelがこちらのことを覚えているうちにさっさと済ませたいという気分でもある。
2006年01月19日
『バンビ〜ノ!』
第3巻が近々ということもあって、まとめ買い。普通の漫画を買うのはなんかすごい久しぶりな気がする。
リストランテという戦場の描きっぷり、各キャラの立ちっぷりがなかなか良い。
もう1つの今のお気に入りは『王様の仕立て屋』なのだが、コミック買ってまで、というのはちょっと微妙かな…。中古で一揃い買えるならいいんだけど。amazonだと1冊あたり手数料かかるので結局新品買ったほうが…ということになっちゃうね。
ベーコンと水菜のホワイトソースのニョッキ、メンチカツ
メンチカツは出来合いのもの。ソースはベーコンを炒めて取り出し、玉葱とバターとコンソメと牛乳でホワイトソースを作ったところにベーコンを戻して軽く茹でて切った水菜を加え混ぜ、胡椒で味を整えたもの。茹でたニョッキの上にかけ、パセリを振る。ベーコン、バター、ニョッキと全体にちょっと塩気が強いものが多く、若干しょっぱくなってしまったかな。あと、ニョッキは自作したほうがいいのかも。ディチェコのはちょっとくどい。
2006年01月18日
taskselとdebconf
taskselのタスクチェックをしていたところ、debconfの各タスク翻訳が使われなくなっていることに気付いた。#278186のパッチで消されちゃったようだ。
過去のものではChoices: ${CHOICES}で作っており、SUBSTによってCHOICESに翻訳「済み」のテキストが挿入されていた。debconfデータベースにも翻訳済みのものが入るために、preseedでも言語を知った上でその言語の翻訳済みのテキストを入れる必要があった。これは確かに良くない。いずれにせよ、この状態だとLANGを変えたとたんにdebconfデータベースと整合性が合わなくなってしまうので、はなはだ問題ではある。
が、しかし、英文文字列からだいたい推測できるラテン系ならともかく、これではかなり嬉しくない言語圏は多そうだ。多言語化したときのSUBST処理ができないというのはdebconf-i18nのかなり大きな問題で、またしてもこれに頭を悩ますことになりそうだ。
ん、待てよ。_Choices "${ORIGCHOICES}"として、poのほうではmsgid "${ORIGCHOICES}"に対してmsgstr "${CHOICES}"とすればいいんじゃないのか? なんとなくこれでよさそうな気がする。
skkinput
徹底本への質問メールを期に。
OpenOffice.orgやmlterm、あるいは一般的なGTK+2アプリケーションをGNOME上で使っており、これにskkinputで入力している場合、OvertheSpotやOntheSpotで変換時に表示されるポップアップウィンドウが後ろに隠れてしまうという問題がある。ちなみにkinput2ではちゃんと最上段に表示される。
IMmoduleなuimやscimを使うというのもまぁ解決の1つなのだが、kinput2でできてskkinputにできないというのはちょっと妙ではある。ということで、tagohさんに最上段に表示するにあたってのアドバイスを頂き、昨日ハックしてみた。
deb http://kmuto.jp/debian/mtu debian_dic main deb-src http://kmuto.jp/debian/mtu debian_dic main
解法はわりあい簡潔で、要は_NET_WM_STATE_ABOVEにしてやれば最上段にウィンドウがやってくる。
Atom net_wm_state = XInternAtom(XtDisplay(gw), "_NET_WM_STATE", False); Atom state_above = XInternAtom(XtDisplay(gw), "_NET_WM_STATE_ABOVE", False); Atom prop[1]; prop[0] = state_above; XChangeProperty(dpy, win, net_wm_state, XA_ATOM, 32, PropModeReplace, (unsigned char*)prop, 1);
ただ、skkinputのウィンドウ作成箇所はけっこう入り組んでいて、Spotごとにコード分かれてる(デフォルトはOnなのだがmltermではOver)し、デバッガがなぜか落ちちゃうので思わぬ苦戦。fprintfでひたすら当たりをつけていく。Raise&updateしているところでコードをうまく入れてやることで、なんとか希望の動作になった。XChangePropertyの2つめの引数もちょっとトラップが存在。詳しくはdiff.gzにて。
2006年01月16日
さばの香味焼き、豆腐とネギの味噌汁、きゅうりのぬか漬け
さば味噌や塩焼きはありきたりなので、ちょっと趣向を変えて中華風にしてみた。
- さばの小骨を取り、縦1〜2cmずつくらいに切る。
- 五香粉、酒を振り、10分ほど置く。
- 薄力粉をまぶし、フライパンで揚げるように焼く。
- 揚げたさばを取り出して油を捨てる。
- 再び油を敷き、生姜とニンニクのみじん切りを弱火で炒める。
- 醤油、味醂、酒をよく混ぜて水を少し加えたものを注ぐ。
- さばを戻し、全体に絡めて、水分がなくなりきる直前に皿に上げる。
ご飯が進む一皿。今回はレタスで巻きながら食べたけど、シャンツァイを添えたり、セロリで食べてもおいしいかと思う。
2006年01月15日
ハンバーグ、トマト・レタス・ピクルス・人参のサラダ
ハンバーグはいつものとおりに挽肉多めで、炒め玉葱・ニンニクと、塩・胡椒・パプリカ・ナツメグ・オールスパイス・シナモンを混ぜ、丸めたあとに小麦粉はたいて、焼く。裏返して表面を焼いてから赤ワインを入れて飛ばし、だいたいできたところでチーズを乗せて溶けたらできあがり。このチーズだとちょっと合わなかったかな。
野菜が高い高いと言われてるけど、ほんとに高かった。スーパーにて、ニラ半把で268円…。レタスも1玉400円くらいするし。ちょっと品質は悪いけどはるかに安い八百屋にて野菜を購入。
2006年01月13日
2006年01月12日
2006年01月11日
2006年01月10日
xlibs-dev Mass Bug Filing
Xorg 6.9のunstableへのアップロードに伴い、xlibs-devはobsolete扱いになった。
対処方法は、build-depends: xlibs-devから、ちゃんと個々の開発ライブラリへの依存にしろということらしい。WikiからリンクしてるDavid Nusinowのスクリプトを使うとよいとか。どれどれ。
…ということで、私にもけっこうな数のFTBFS bugが…。jnethack, xengine, xeji, xfireworks, xtokkaetama, xjokes, xshodo, xslideshow, mltermか。つかメンテしてるのを忘れているパッケージが…
1月10日21:00、ようやく作業完了。mltermはcvsの新しいのを入れた。
マトンビリヤーニ
中国旅行に行ってきたパートナー妹さんからナッツ類をもらったので、これを使ってビリヤーニ(インド風チャーハン)を作ることにした。レシピはいろいろあるのだけど、パエーリャ風に作るのが楽そうだと判断して適当にオリジナルで。
- ラム肉を適当に切って、ヨーグルト・胡椒・塩・ガラムマサラ・ニンニク・ショウガ・チリ・ビリヤーニマサラ・クミン・パプリカ・コリアンダーシード・ターメリック・etc…とまぁいろんなハーブとスパイスに3時間ほど漬け込んでおく。
- 米を洗い、ざるに上げておく。
- パエーリャ鍋に油を敷き、シナモン、カルダモン、クローブ、ベイリーブスを炒める。
- 切った青唐辛子と、みじん切りの玉葱を加えて炒める。
- 肉を汁ごと入れ、ナッツ(アーモンド、カシューナッツ、干しブドウ等)を加えて炒める。
- 火が通ったら米とピーマンを入れ混ぜ、水を注いで塩を振る。
- 強火でざっと混ぜたあと、中火〜弱火で焦げない程度に水気を飛ばす。
- アルミホイルで包み、180度のオーブンで20分ほど炊き上げる。
2006年01月09日
『APPLESEED』
原作は士郎正宗。
大戦で崩壊した都市での闘いから、デュナン・ナッツは連れ出され、人間とバイオロイドの共存を目指す理想郷「オリュンポス」へと舞台を移す。かつての恋人プリアレオスとの再会、バイオロイドのヒトミと義経との交流(ヒトミがストーカーっぽくて怖い…)。オリュンポス内で政治的鍔迫り合いを行うESWATと軍。
…んーと、amazonのレビューでもあまり評判が良くないように、実験的フルモーションCG映画。Final Fantasy映画に似てる。要するに全体にキビキビ感がなくてタルく、せっかく金かけてシーン作ったので全部使いましょうと言わんばかりの冗長なカット。静止画あるいは15秒程度のモーションで見るなら「綺麗」だけど、それだけ。
せっかくいくつかおもしろいテーマはあるのに、それを生かし切れず――あるいは説明しすぎて薄っぺらいものにしてしまう。良い食材を台無しにしてしまう調理。セリフはどれもキレがなく、子供っぽくわざとらしくて、「カッコイイ」人も「憎々しい」人もどこにもいない。ある意味これがユートピア?
個人的にはやっぱ押井系のほうが好き。原作ははるかに良いみたいだし、押井塾でこれ作り直してみてくれないかなぁ。
2006年01月08日
2006年01月07日
secure apt
パッケージに正当性を示す電子署名がないのがDebパッケージの弱点だと言われていたのだが、etch/sidに入っているAPTツールでは、パッケージ個々ではない、ちょっと変わったアプローチで署名検証をする機能が入っている。
1月に入り、この署名用の鍵が更新された(セキュリティのために毎年更新される)。etch/sidでaptを使っており、この新しい鍵を登録していない場合、apt-get updateのときに「GPG error: The following signature couldn't be verified (以下の署名は検証できないよ)」という警告が表示され、インストール時には「Install these packages without verification [y/N]? (検証なしにほんとにインストールするんかい)」という質問が尋ねられることになる。
Joey HessがDebian Wikiにまとめてくれたので、これを参考にしながら状況と対処を書いてみよう。
まずは基本概念から(そんなのはもう知ってるという方はスキップ)。Debianミラーには大量のパッケージがあるが、悪意を持つ者によって改変されるのを防ぐ必要がある。信頼できる組織のミラーを使うというのも1つだが、Debian.orgですべてのミラーに目を光らせるというわけにもいかない。
Debianの各パッケージは、そのメタ情報ファイルに、md5ハッシュ値と、バイト数が書かれている。md5のコリジョンは発見されているが、同じバイト数のコリジョンは確か発見されていなかった気がする。なので、この2つがセットとなっていれば、まぁまず一意なものと見なせるだろう。少なくとも、md5比較してパッケージファイルが壊れている/何らかの操作がされていることはこれでわかる。
荒っぽく言えば、上記の各パッケージのメタ情報ファイルをまとめて、ローカル側のデータベースとして使えるようにしたものがPackagesファイルだ(ソース用はSources)。通常はgzipあるいはbzip2で圧縮され、dists/{RELEASE}/{main/contrib/non-free}/binary-{ARCH}/Packagesという単位で存在する。apt-get updateを実行すると、このPackagesがローカルにダウンロードされ、APTデータベースによって参照されるようになる。このPackagesが「信頼できるならば」、その情報にある各パッケージのmd5/バイト数をもとにパッケージが「信頼できる」ことを証明できる。
次にあるのがReleaseファイルだ。実はReleaseファイルには2種あり、dists/{RELEASE}/Releaseと、dists/{RELEASE}/{main/contrib/non-free}/binary-{ARCH}/Releaseがある。後者はそのアーカイブがstable/testing/unstableのうちどれかやリリースバージョンなどが書かれているだけだが、前者はこれ以外に配下にあるPackagesファイル(圧縮したものやSources/Releaseも含む)のmd5ハッシュ値とサイズを記述している。だんだんややこしくなってきたが、このReleaseファイルが「信頼できるならば」、Packagesファイルを「信頼でき」、その中に書かれているパッケージも「信頼できる」ということになるわけだ。
ということで、ようやくテーマであるRelase.gpgにたどりついた。dists/{RELEASE}/Release.gpgファイルは、Debianの自動FTPマネージャのGPG秘密鍵を使って、dists/{RELEASE}/Releaseファイルを電子署名(サイン)した結果値だ。このGPG秘密鍵は、Debian.orgのFTP管理者によって作成されたもので、Debian.orgの極めて限定的なアクセス環境(ごく一部の選ばれたDebian Developerだけがアクセスできる)の下、純粋にRelaseファイル署名のためだけに使われている。この秘密鍵に対応する公開GPG鍵、Releaseファイル、Release.gpgファイルの3つが揃っていれば、Releaseファイルが改ざんの行われていない、正当にFTPマネージャに署名されたものであることを証明できる。
さて、残るはGPG公開鍵の信頼性である。ここが一番難しいところで、これが破綻したらここまでに築いてきたものが全部ダメになってしまう。公開鍵は、ftp-master.debian.orgのWebサイト、およびPGPサーバー(新しい鍵はID 2D230C5F)で配布されている。Debian.orgの(本当に信頼できる!)FTP管理者に直に話して、鍵が本物かどうか聞くのがベストなんだろうけど、まぁそれは難しいので、こちらにせいぜいできるのは、そのGPG鍵に付けられているsign(「署名」と語が似てしまうけど「この鍵は確かにこの人のものですよ」ということを示すもの。キーサインパーティなどをやる目的はこれ)を見て、Debian.org FTP管理者のものだからまぁOKだろう、という判断になるだろう。自分で試すならこんな感じ。
$ gpg --keyserver pgp.mit.edu --recv-keys 2D230C5F ←鍵をPGPサーバーから取り込み gpg: 鍵2D230C5Fをhkpからサーバーpgp.mit.eduに要求 gpg: 鍵2D230C5F: 公開鍵“Debian Archive Automatic Signing Key (2006) <ftpmaster@debian.org>”を読み込みました gpg: 処理数の合計: 1 gpg: 読込み: 1 $ gpg --check-sigs 2D230C5F ←signを見てみる pub 1024D/2D230C5F 2006-01-03 [満了: 2007-02-07] uid Debian Archive Automatic Signing Key (2006) <ftpmaster@debian.org> sig! AB2A91F5 2006-01-04 James Troup <james@nocrew.org> ←いろんな人にsignされている sig! 2A4E3EAA 2006-01-03 Anthony Towns <aj@azure.humbug.org.au> sig! 29982E5A 2006-01-04 Steve Langasek <vorlon@debian.org> sig! FD6645AB 2006-01-04 Ryan Murray <rmurray@cyberhqz.com> sig! 0813569F 2006-01-04 Jeroen van Wolffelaar <jeroen@wolffelaar.nl> sig!3 2D230C5F 2006-01-03 Debian Archive Automatic Signing Key (2006) <ftpmaster@debian.org> 鍵がないため1個の署名を検査しません ←ふむ、誰かの公開鍵が足りないようだ…
Debian developerの鍵は、debian-keyringパッケージをインストールして、gpg --import /usr/share/keyrings/debian-keyring.gpgでインポートできる(さて、debian-keyringパッケージが信頼できるかどうかを判断するにはどうしたらいいものか…)。ちなみに同じディレクトリにはdebian-role-keys.gpgという鍵リングファイルもあり、こちらにFTP GPG公開鍵が入っているので、これをインポートするのもよいだろう。
まとめると、FTP GPG公開鍵を信頼できる→Release.gpg署名を検証できる→Releaseファイルを信頼できる→Packages/Sourcesを信頼できる→Packagesのmd5/サイズを信頼できる→パッケージを信頼できる ということになる。
やれやれ。
ともかく、APTで各パッケージの正当性を検証するには、GPG(gnupgパッケージ)が必要だ。 gnupgパッケージはいろいろ補助機能を実現するために無駄に依存関係が多いのだけど、まぁ我慢してインストールしておこう。
APTのGPG鍵リングを制御するフロントエンドが、apt-keyだ(gpgコマンドのラッパー)。鍵リングは/etc/apt/trusted.gpgとして配置されている。本当はdebian-keyringパッケージを入れておけば「apt-key update」で更新できるらしいんだけど、archive-keyringはないみたいなので、これは動作しない(これって/usr/share/apt/debian-archive.gpgを使うのでいいんじゃないのか?)。
# apt-key list ←とりあえず入ってる公開鍵を見てみる /etc/apt/trusted.gpg -------------------- pub 1024R/1DB114E0 2004-01-15 [満了: 2005-01-27] uid Debian Archive Automatic Signing Key (2004) <ftpmaster@debian.org> pub 1024D/4F368D5D 2005-01-31 [満了: 2006-01-31] uid Debian Archive Automatic Signing Key (2005) <ftpmaster@debian.org>
では、新しい鍵を加えるため、ftp-master.debian.orgからGPG公開鍵ファイル(ziyi_key_2006.asc)をダウンロードしてどこかに置いておこう。先ほど--importして手元に持っているなら、gpg --export -a 2D230C5F > ファイル名 で取り出して使うこともできる。
続いて、apt-keyを使って、このファイルをtrusted.gpgに取り込む。
# apt-key add ziyi_key_2006.asc gpg: 絶対的に信用する鍵が見つかりません OK
まぁなんかおっかないメッセージが出てはいるが(これってsign者を絶対的に信用すればいいんだっけ?)、とりあえず「OK」になった。
# apt-key list /etc/apt/trusted.gpg -------------------- pub 1024R/1DB114E0 2004-01-15 [満了: 2005-01-27] uid Debian Archive Automatic Signing Key (2004) <ftpmaster@debian.org> pub 1024D/4F368D5D 2005-01-31 [満了: 2006-01-31] uid Debian Archive Automatic Signing Key (2005) <ftpmaster@debian.org> pub 1024D/2D230C5F 2006-01-03 [満了: 2007-02-07] ←追加された uid Debian Archive Automatic Signing Key (2006) <ftpmaster@debian.org>
これで、2006年版のFTP GPG鍵が入ったので、めでたくRelease.gpgの署名確認ができるようになった。
ちなみに、dak(mini-dinstallも?)を採用していないような個人リポジトリでこの署名実現はけっこう面倒そうである。
牡蠣のパスタ、ポテトサラダ
写真に失敗…。しめじはないけど、レシピは以前とほぼ同じ。今回はバターの風味加減、胡椒のスパイス加減、牡蠣の火の入り具合、強力粉とワインとオイルの混ざり具合、パスタの茹で具合、とすべてがピシっとはまった、かなり完成度の高いものにできた。
2006年01月04日
『レボリューション・イン・ザ・バレー』
Macintoshという機械――コンピュータ、OS、あるいは思想・哲学・宗教いずれでもよいがご存じだろうか。Yes?よろしい、ならば本書をまずは手にとって開いてみよう。Macintoshやその他のApple製品に一度でも憧れたことはあるだろうか。あるいはすでに愛用しているだろうか。それともMacintoshあるいはApple社を嫌いで嫌いでしょうがなくてアンチ巨人ファンのような心境をお持ちだろうか。Yes?すばらしい、きっと本書を楽しめるはずだ。
Steve Jobs、Steve Wozniak、Bill Gatesという名前を知っているだろうか。Yes?なら、本書をさらに2倍楽しめる。さらに進んでAndy Hertzfeld(本書著者)、Bill Atkinsonといった名前はどうだろう。知っている?すごい、本書をそこからさらに2倍、計4倍楽しめるに違いない。
秘話、裏話、ゴシップ、政治的暗躍といった類に目がないだろうか。Yes?本書はまさに打ってつけ、5倍楽しめるだろう。Macintoshのインサイド、技術的側面、そして古の魔術に関心があるだろうか。おっと、これもYes?本書は偉大な黒魔術書でもある。常人の8倍は楽しめること間違いなしだ。
美しい装丁、巧妙な紙面の配置やデザインに関心があるだろうか。Yes?うむ、本書はデザインセンスもオライリーらしからぬ(失礼)一級品だ。表紙の赤は著者の感想と同じくあまりイケてるとは言えないが、そんなときにはカバーを外してしまえばあら不思議…おっと、ここは実際に見てからね。これをコジャレた本棚にディスプレイすれば10倍は悦に入ることができる。
ということで、本書は、初代Macintosh(ハードもOSも)の製作ストーリーを開発者の1人Andy Hertzfeldがエッセイ形式で綴ったものだ(原文はWeb記事で、FOLKLOREサイトから見ることができる)。挑戦的なプロジェクトの例に漏れず、Macintoshの開発も平坦なものではなく、開発チームは、さまざまな困難――無理解、衝突、政治的思惑も含む――と戦った。完全なハッピーエンドではないが、少なくとも彼らは偉業を成し遂げた。暴君であり芸術家であるSteve Jobsがいなければ、MacintoshがMacintoshとして市場に出ることはなかっただろう。一度は追い出されたSteveが復帰して数年、iPodなどの大ヒットによってApple社が今再び隆盛を極めんとしている理由は、本書を読むことで掴めるに違いない。
ちなみに、Windows NT開発を描いた『闘うプログラマー』もおもしろいよ。おすすめ。
2006年01月03日
鯛とトマトとハーブのオレキエッテ
鯛の切り身が2割引で売ってたのでパスタ用に買ってきた。強力粉と塩・胡椒をまぶし、ニンニクとローズマリーをローストしたオリーブオイルで両面を焼き、白ワインを振って軽く蒸す。粗く刻んだトマトを入れて軽く混ぜ、胡椒、オレガノ、タイムで味つけして、茹でたオレキエッテとあえて出来上がり。骨がちょっとあったけど、パスタの茹で具合もちょうどよく、いい感じになった。
つけあわせはワカメと豆腐のサラダ。
![[hatena]](http://d.hatena.ne.jp/images/b_entry_de.gif)
パワーサポート iPodnano Crystal Jacket Set NJ-51
だれでもラジオ英会話 (NHK CD‐extra book)


バンビ~ノ! (1) (ビッグコミックス)
バンビ~ノ! (2) (ビッグコミックス)
バンビ~ノ! (3) (ビッグコミックス)
王様の仕立て屋 1 〜サルト・フィニート〜 (ジャンプ・コミックスデラックス)



APPLESEED [DVD]


レボリューション・イン・ザ・バレー ―開発者が語るMacintosh誕生の舞台裏
闘うプログラマー〈上〉―ビル・ゲイツの野望を担った男達



![[g15.jp]](http://g15.jp/powered-g15.png)
![[RSS]](/d/rss10.png)
Debian GNU/Linux徹底入門 Sarge対応
Debian辞典