2008年09月17日
Debianパッケージ作成入門の入門
ずいぶん前から続いてるなぁと思ってたYLUGカーネル読書会だけど、今回Debian JPのHenrichくんがパッケージ入門を発表するとのお知らせがHenrichくんジキジキにspamされていた。Debian中級なので行かないといけないな。YLUG自体10年くらい前にgotomかukaiさんに誘われて行ったとき以来だけど。
会場は新橋にあるミラクルリナックス社のセミナールームで、銀座線から適当に勘で向かったところ途中で微妙に迷った。ビバEZナビウォーク。ずいぶん立派なビルで、セミナールームもちゃんとした机と椅子が置かれてる。電源とネットは希望すれば利用可能。金曜日の告知だったにもかかわらず、30名超の盛況。これもHenrichくんの人徳と言わざるを得まい。
18:30に開場し、19:00のお題開始の前に「何か言いたいこと発表」として小園井さん@LFによるLinux Foundationの活動紹介。来年10月に東京でカーネルサミットが開催され、よ。氏もカーネル読書会第100回をBOFの1枠としてTorvalds氏を交じえて開くんだそうな。それからひとしきり参加者の自己紹介。なにぶん小心者なので控え目に目立たないようにしておく。
19:00よりHenrichくんの表題発表。未承諾広告2つほどの後、パッケージを作成する理由として、「既存パッケージの修正/更新」「パッケージングされていないソフトウェアのパッケージ化」の2つに分け、前半/後半で説明。
既存パッケージの修正/更新では、helloパッケージ、vl-gothicパッケージ、jdパッケージを例に、プレイン環境の構築、apt-get source、build-dep、dch、uupdate、uscanといった手順の紹介。aptitude build-depってヘルプに出てこないね。update-alternatives --config editorでエディタ(editorコマンド)を変更する手法が紹介されていた。私はEDITOR環境変数にgnuclientを指定しているのだけど、changelog書くときにはEmacsだと不便(バックアップファイルとか邪魔だし)なので、EDITOR=vi dchを使ってる。watchファイル/uscanはいろいろ深いので、興味のある方はmanやwatchファイルサンプルなどを参照。
前半が終わったところですでに予定の20:00になってる気がするが、後半の新規パッケージ作成講座。まずはRPMパッケージがある場合には、alienを使うという手法。しかしalienで変換したものはいろいろ不具合が出たりすることもある罠。
変換でなく新規に作成する例は、sl(古いソフトウェアでビルドできりゃいい的なMakefileのslを例にした時点ですでに負け気配が漂う)。アーカイブの展開、dh-make、debian/ファイルの編集、debuild。pbuilderによるクリーンビルド、pipartsによるインストール/アンインストールテスト。slは提供されているMakefileにビルドルールしかなく、cleanやインストールがないので、かなり面倒くさい。準備不足ということもあり、あちこちで問題発生。それでもなんとかこぎつけたけど、パッケージ作りが難しいイメージをちょっと持たれたかもしれない。時間を30分ほど押して終了。
なお、現在、Debianではdh_make -sで作るrulesをちまちまいじるよりも、cdbsビルド支援ツールを使うのが主流になっている。slのような自前Makefile系のソフトウェアにはあまり向いていないけど、よくあるconfigure→make→make install系のautoconfソフトウェアであれば、Debianのビルドプロセスを定義するdebian/rulesファイルがほんの2、3行ほどになる。カスタマイズも容易。ので、私としては次回はcdbsによるビルド手順の紹介を期待したい。よく書かれているんだけど英文のcdbsマニュアルについては、noritadaくんががんばる(by iwamatsu)らしい。
ピザとビールで懇親会およびHenrich反省会。本物よりもスリムになった偽wakatonoが参上。しゃるとかnsaitoさんとかものすごく久しぶりに話した。22:00で切りのよさそうなところで中座して帰宅。新橋の夜は赤提灯が並んでいて、自分が外国人旅行者だったら「おぉすげーおもしろそー」となりそう。
![[hatena]](http://d.hatena.ne.jp/images/b_entry_de.gif)
![[RSS]](/d/rss10.png)
Debian GNU/Linux徹底入門 Sarge対応
Debian辞典