目次
1

Debian Policy 入門 第 1 回

2

2

Debian Policy 入門 第 2 回

8

3

Debian Policy 入門 第 3 回

16

4

Debian multimedia project22

5

Debian Multimedia Audio application 概観

25

6

Debian TEX のファイル構造38

7

Debian latex の現状調査

43

8

一年間 Debian 勉強会をやってみて46

9Debian 勉強会の事前資料の作成はどうやってやったか

52

10

Debconf で開催された会議概要

55

11pbuilder cowdancer cowbuilder

63

12

Debian Weekly News trivia quiz

69

13

Debian Weekly News 問題回答85

『あんどきゅめんてっど でびあん』について



本書は、東京周辺で毎月行なわれている『東京エリア Debian 勉強会』で使用された資料・小ネタ・必殺技などを一冊にまとめたものです。収録範囲は勉強会第 11 回から第 17 回まで。内容は無保証、つっこみなどがあれば勉強会にて。



1



東京エリア Debian 勉強会 2006

1 Debian Policy 入門 第 1 回
岩松 信洋

1.1 Debian ポリシーとはDebian GNU/Linux のポリシーです。Debian GNU/Linux として守るべき方針についてまとめられたものです。Debian パッケージの内部構成やオペレーティングシステムとして必要な設計部について示されており、ドキュメント化されています。
これらのドキュメントには debian-policy マニュアルと他の部分について補足するサブポリシー
マニュアル があります。現在の debian-policy マニュアルバージョンは 3.6.2.2 です。毎日議論され、修正が加えられています。

1.2 debian-policy マニュアルの構成
deian-policy マニュアルの構成はどうなっているのか。
主に Debian パッケージの内容になっています。以前は debian-policy マニュアルと Debian パッ
ケージングマニュアルに分かれていたのですが、統合されました (3.2.1.1 で統合) 。
以下に debian-policy の内容をリストにしてみました。
1.2.1 Debian アーカイブ• Debian Free Software Guidelines (DFSG) とはなにか• main / contrib / non-free セクションの説明および各セクションに収録されるパッケージの条件について• Copyright の問題について• サブセクションについて• パッケージに対するプライオリティについて
1.2.2 バイナリパッケージについて• パッケージ名について• パッケージのバージョンについて日付に基づいたバージョン番号の付け方• メンテナーのパッケージについて• パッケージの説明についてパッケージの簡単な説明についてパッケージの詳細な説明について• パッケージの依存について• バーチャルパッケージ2• ベースシステムについて• エッセンシャルなパッケージについて• メンテナースクリプト
1.2.3 ソースパッケージについて• 規格への対応• パッケージ関係• 上流パッケージソースの変更について• Debian changelog（debian/changelog）代替の changelog 形式• Makefile 内でのエラーのトラップについて• タイムスタンプスタンプ• ソースパッケージの中の物における制限• メインビルドスクリプト: (debian/rules)• Variable substitutions: (debian/substvars)• 生成されたパッケージリスト: (debian/file)
1.2.4 コントロールファイルについて• コントロールファイルの構文について• ソースパッケージ制御ファイル (debian/control)• バイナリパッケージ制御ファイル (debian/control)• Debian ソース制御ファイル–.dsc• Debian Change ファイル–.changes• コントロールファイルのフィールドリスト• ユーザによって定義されたフィールド
1.2.5 パッケージメンテナンススクリプトとパッケージがインストールされる手順について• パッケージメンテナスクリプトの序論• メンテナスクリプトの再入結果の同一性• メンテナンススクリプトからのターミナルの制御• メンテナンススクリプトの呼ばれ方の詳細• インストールおよびアップグレードのアンパックフェーズの詳細• 詳細な構成• パッケージの削除とパッケージ設定の完全削除の詳細
1.2.6 パッケージ同士の関係について• パッケージ関係フィールドの構文• バイナリの依存について（Depends, Recommends, Suggests, Enhances, Pre-Depends の説明）• バイナリパッケージのコンフリクト ( Conflicts )• バーチャルパッケージ ( Provides)• ファイルを上書きし、パッケージを置き換える ( Replaces ) 他のパッケージの中のファイル
3

を上書きするパッケージの削除を強制して、全体のパッケージを置き換える

1.2.7 共有ライブラリについて• ldconfig• ランタイムサポートプログラム• スタティックライブラリ• 開発ファイル
• 同じライブラリのパッケージとのの依存関係• ライブラリと他のパッケージとの依存 ( shlibs システム ) システム上の現在の shlibs ファイ
ル dpkg-shlibdeps と shlibs ファイルの使い方について shlibs File フォーマット shlibs ファ
イルの提供する debian/shlibs.local file を書く

1.2.8 オペレーティングシステムについて• ファイルシステム階層構造 ( FHS )• ユーザとグループ• システムランレベルと init.d スクリプト• init.d スクリプトからのコンソールメッセージ• Cron ジョブ• メニュー• Multimedia handler( MIME )• キーボード構成• 環境変数• doc-base パッケージを使ったドキュメントの登録方法
1.2.9 各種ファイルについて• バイナリファイル• ライブラリファイル• 共有ライブラリ• スクリプト• シンボリックリンク• デバイスファイル• 設定ファイル
• ログファイル
• パーミッションと所有者
1.2.10 アプリケーションの変更について• アーキテクチャ指定のための文字列• デーモン• 仮想 tty の使用、wtmp,utmp,lastlog 等の更新について• エディタとページャについて• Web サーバーとアプリケーション
4• メール配送、配信、ユーザーエージェント• ニュースシステムの設定• X Window System 用のプログラム• Emacs Lisp プログラム• ゲーム
1.2.11 ドキュメントについて• マニュアル ( man pages )• Info フォーマットのドキュメント• 追加ドキュメント• ドキュメントの管理• 推奨されるドキュメント形式• 著作権関連情報• 設定例• Changelog ファイル
1.2.12 付録• Debian パッケージ パッケージングマニュアル
1.3 サブポリシーマニュアルについてメインのものは debian-policy として存在し、そのほかに Emacs や Perl に関してのサブポリ
シーマニュアルというものが存在します。以下にサブポリシーマニュアルの簡単な説明を書きます。
1.3.1 build-essential パッケージの一覧

debian のシステム起動に必要なパッケージをリストにしています。このパッケージが規定されているドキュメントは/usr/share/build-essential/listになります。buiid-essential のリストは/usr/share/doc/build-essential/essential-packages-listに書かれており、build-essential としてパッケージに収録されています。(アーキテクチャによって内容が異なります。）
1.3.2 メニューシステム

menu システムを使うためのポリシー。引数を持たずに起動可能なアプリケーション (GIMP や
xChat など) はメニューを使って起動できるようにするべきであり、どのようなアプリケーション
がどのメニュー項目に入れるべきであるか、書かれています。debian-policy パッケージに収録されており、/usr/share/doc/debian-policy/menu-policy.txt.gzにインストールされます。

5

1.3.3 MIME サポート

MIME( Multipurpose Internet Mail Extension RFC1521 ) をサポートするためのポリシーです。MUA やウェブブラウザで MIME を扱えるようにできる仕組のようです。debian-policy パッ
ケージに収録されており、/usr/share/doc/debian-policy/mime-policy.txt.gzにインストールされます。
1.3.4 Emacs ポリシー

Emacs に関連するパッケージは、サブポリシードキュメントに従うことが求められています。
それをまとめたものが Emacs ポリシーです。emacsen-common パッケージに収録されており、/usr/share/doc/emacsen-common/debian-emacs-policy.gzにインストールされます。
1.3.5 Java ポリシー

Java に関連するパッケージのサブポリシー。ドキュメントは java-common パッケージに収録
されており、/usr/share/doc/java-common/debian-java-policy/index.htmlにインストールされます。
1.3.6 Ruby ポリシー

Ruby に関連するパッケージのサブポリシー。ruby パッケージに収録されており、ドキュメン
トは/usr/share/doc/ruby/ruby-policy.txt.gzにあります。
1.3.7 Perl ポリシー

Perl に関連するパッケージのサブポリシー。debian-policy パッケージに収録されており、/usr/share/doc/debian-policy/perl-policy.txt.gzにあります。
1.3.8 Python ポリシー

Python に関連するパッケージのサブポリシー。python パッケージに収録されており、/usr/share/doc/python/python-policy.txt.gzにインストールされます。
1.3.9 Debconf 仕様書

Debconf のための仕様書。現在プロトコル 2。debian-policy パッケージに収録されており、ドキュメントは/usr/share/doc/debian-policy/debconf specification.txt.gzにあります。

6

1.3.10 スペル辞書・ツールポリシー

パッケージの中で使う単語や isspell パッケージや myspell パッケージのためのポリシー。2003
年ごろからメンテナンスされてません。ドキュメントはhttp://dict-common.alioth.debian.org/にあります。

1.4 どのようにしてポリシーが決まるのか
1.4.1 policy-process/usr/share/doc/debian-policy/policy-process.html/に debian ポリシーの決め方が書かれています。
1.4.2 debian-policy@list.debian.org (ML) があります

ポリシーに関する疑問はこの ML に投げるといいでしょう。policy-process に則って、ここで議論され、承認されたときに debian-policy として反映されます。
1.4.3 debian-policy というパッケージがあります

間違いや提案はこのパッケージに対して BTS を行います. BTS されたメールは debian-policy@list.debian.org に forward されます。
1.4.4 debian-policy のメンテナ

現在の debian-policy のメンテナは以下の 4 人です。

• Julian Gilbey devscripts, tetex のメンテナ• Branden Robinson X Strike Froce• Josip Rodin debbugs, lintian のメンテナ• Manoj Srivastava make, selinux のメンテナ
1.5 次回
次回からは、debian-policy を一つづつチェックして、つっこんだ解説をしていこうと思っています。

7

東京エリア Debian 勉強会 2006

2 Debian Policy 入門 第 2 回
岩松 信洋

2.1 はじめに今回から実際に Debian Policy の中身を見ていこうと思います。対象は Debian アーカイブについてと、バイナリファイルのポリシーについてです。

2.2 Debian アーカイブについて
Debian には大量 (1 万パッケージ以上) のパッケージがあります。それらを管理し、フリーなオペレーティングシステムを目指しています。このフリーという言葉はどういうものなのか、

Debian ではどのように扱うのかということをガイドラインにしたものが Debian フリーソフト
ウェアガイドライン (以下、DFSG) です。
2.2.1 Debian フリーソフトウェアガイドライン とは？

Debian GNU/Linux システムのガイドラインである DFSG とはどのような内容なのか、確認してみましょう。

• 自由な再配布
Debian システムを構成するソフトウェアのライセンスは、そのソフトウェアを複数の異なる提供元から配布されているプログラムを集めたソフトウェアディストリビューションの一部として、誰かが販売したり無料配布したりすることを制限してはいけません。また、ライセンスはそのような販売に対して使用料やその他の手数料を要求してはいけません。

Debian にインストールされるソフトウェアのライセンスは自由に配布でき、無償またはお金を取って配布することが可能なライセンスでないといけない、ということです。ただし、ディストリビューションに含まれるプログラムのライセンスの内容に配布に対して料金を請求したりするものがあってはいけないということです。
この項目に合わないライセンスの一つとして aladdin フリー公衆利用許諾契約書 (Aladdin

Free Public License) があります。このライセンスは配布において手数料を取るのを禁じています。

• ソースコード
プログラムにはソースコードが含まれていなければならず、かつ実行形式での配布に加えてソースコードでの配布をも許可していなければなりません。
8ソースコードの配布を許可してないライセンスは Debian にはインストールされることはな
いということです。
これはそのままです。

• 派生ソフトウェア
ライセンスは、ソフトウエアの修正や派生ソフトウエアの作成を認めていなければなりません。そして、これらをオリジナルソフトウエアのライセンスと同じ条件の下で配布することが可能でなければなりません。
あるソフトウェアを改変し、それを配布するときも改変元と同じライセンスで配布できないと Debian にはインストールされないということであり、派生を認めたライセンスでないとだめということです。
この項目に合わないライセンスの一つとして Qmail のライセンスがあります。改変された
場合には配布を認められてないからです。

• 原作者によるソースコードの整合性維持
ライセンスは、プログラムを構築時に変更する目的で「パッチファイル」をソースコードとともに配布することを容認している場合に限り、ソースコードを修正済の形式で配布することを制限することができます。この場合、そのライセンスは修正済のソースコードから構築されたソフトウエアの配布を明示的に許可していなければなりません。またライセンスは派
生ソフトウェアにオリジナルソフトウェアと異なる名前を付けること、あるいは異なるバー
ジョン番号を付けることを要求できます (これは妥協案です。Debian グループは全ての作者に、ファイル、ソース、バイナリについての変更を制限しないよう奨めています)。
パッチを配布するときに許可が必要とか、ソフトウェアのバージョンを替えてはいけないとかそういうことです。
この項目に合わないライセンスの一つとして AT&T 公衆利用許諾契約書 (AT&T Public

License) があります。このライセンスはパッチを公開するときには連絡しないといけません。
• すべての個人、団体の平等ライセンスは、すべての個人や団体を差別してはなりません。
Debian には入れるな！とか、そんなライセンスはだめということです。
• 目標分野の平等
ライセンスは、人々が特定の目標分野でプログラムを利用することを制限してはいけません。たとえば、商用利用や、遺伝学の研究でのプログラムの使用を制限していてはいけません。
商業のみでしか使えないライセンスや研究目的のみで使用可能なライセンスではだめということです。
この項目に合わないライセンスとして Jahia コミュニティソースライセンス (Jahia Com-munity Source License) があります、このライセンスは学術のみで使用可能なライセンスに

9

なっています。

• ライセンスの配布プログラムに付随する権利は、プログラムが再配布されたすべての人々に対して、追加ライ
センスの履行を必要とすることなく、適用されなければなりません。

• ライセンスは Debian に限定されないプログラムに付随する権利は、プログラムが Debian システムの一部であるかどうかに左右されてはいけません。プログラムが Debian から取り出され Debian とは別に使用または配布されるとしても、その他の点でそのプログラムのライセンス条項を満たしているならば、プログラムが再配布されたすべての当事者は Debian システムにおいて付与されたのと同じ権利を与えられなければなりません。

Fedora なら AT&T ライセンスだけど、Debian にインストールされるなら GPL にしていい
よ といったライセンスでは不適合ということです。また、Debian 専用のライセンスではいけないということです。

• ライセンスは他のソフトウエアを侵害しない
ライセンスは、そのソフトウエアとともに配布される他のソフトウエアに制約を加えてはなりません。たとえば、同じ媒体で配布される他のソフトウエアがすべてフリーソフトウエア
でなければならないと要求してはいけません。

• フリーなライセンスの例”GPL”、 ”BSD”、および ”Artistic” ライセンスは私たちが「フリー」と判断しているライセンスの例です。
他のライセンスに関しては

http://www.debian.org/legal/licenses/ に書かれています。
以上の 9 つの項目全てに該当するパッケージが Debian のシステムとしてインストールされています。
2.2.2 セクション

先に書いたように Debian には大量のパッケージがあります。その中には DFSG に沿ったパッ
ケージ以外のものや、輸出に制限があるパッケージも存在します。それらを区別するために

Debian ではセクションを用いて分類しています。ここではこのセクションについて示されています。

• main セクション
main セクションに入るパッケージは以下のことを満たしたパッケージである必要があります。

– DFSG に準拠したパッケージであること。
– コンパイル時に main に含まれないパッケージに依存していけない。
– バグだらけなパッケージであってはいけない。
– Debian Policy マニュアルに全て適合していないといけない。
main セクションに入っているパッケージは DFSG に準拠したパッケージであり、それらのパッケージは Debian システムの一部です。

10• contrib セクション contrib セクションに入るパッケージは以下のことを満たしたパッケー
ジである必要があります。

– DFSG に準拠したパッケージであること。
– バグだらけなパッケージであってはいけない。
– Debian Policy マニュアルに全て適合していないといけない。
このセクションに入るパッケージの例としてコンパイルや実行するときに Debian に存在しないものを必要とするパッケージ。フリーではないプログラム用のラッパーパッケージや、
フリーではないプログラム向けのフリーな付属物などが当てはまります。

contrib セクションに入っているパッケージは Debian システムとして認められていません。
実際のパッケージでは– atokx
理由 : atok for linux をインストールするプログラム– quake2
理由 : ゲームをするために Quake ２の CD が必要（データがフリーではない。)
があります。

• non-free セクション
DFSG にに準拠していないパッケージや、特許や法律上、問題のあるパッケージが non-freeセクションに入ります。

must meet all policy requirements presented in this manual that it is possible for them tomeet.
実際のパッケージとして– fglrx-driver
ATI のデバイスドライバ– lha
lzh アーカイバーがあります。

non-free セクションに入っているパッケージは Debian システムとして認められていません。
• non-US セクション
sarge から non-US セクションが廃止され、同じアーカイブに収録されることになりました。
現在、non-US のパッケージや apt-line は存在しません。

2.2.3 著作権の問題について

Debian にあるパッケージは著作権を示すファイルもポリシーとして決められています。
Debian で は 全 て の パッケ ー ジ が イ ン ス ト ー ル さ れ た と き に 、著 作 権 や ラ イ セ ン ス が/usr/share/doc/¡package-name¿/copyright として配布されないといけません。しかし、そのよ
うなことができないパッケージは non-free に分類されるべきであると示されています。また、バイナリのみの配布は禁止されており、Debian の FTP にもミラーにも置いてはいけないことが示されています。
国際著作権法も挙げられており、著作権が明記されていないプログラムにも著作権が存在し、このようなプログラムに手を加えることによって著作権侵害で訴えられることもありえるのでこ
11

れらのプログラムは注意すべきであるとも書かれています。
2.2.4 サブセクション

パッケージをさらに種類別に分割したものです。main セクションと contrib セクション、non-free セクションにはさらにサブセクションが設けられています。このサブセクションは control
ファイルの Section レコードに指定する必要があります。
main セクションの場合、サブセクションが x11 であれば Section: x11
contrib セクションの場合は Section: contrib/x11
non-free セクションの場合は Section: non-free/x11と指定する必要があります。
現在指定できるサブセクションは以下の通りです。admin, base, comm, contrib, devel, doc,

editors, electronics, embedded, games, gnome, graphics, hamradio, interpreters, kde, libs, libdevel, mail, math, misc, net, news, non-free, oldlibs, otherosfs, perl, python, science, shells,sound, tex, text, utils, web, x11.
これらのサブセクションの分類方法は規定されていません。(base サブセクション以外) (ほんとか？)
2.2.5 プライオリティ

それぞれのパッケージにプライオリティが設定されるべきあるとポリシーに示されています。
このプライオリティは Debian システムでのパッケージの重用度を定めています。この情報はDebian のパッケージ管理ツールが優先順位の高いパッケージを優先順位の低いパッケージから選択する際に使用します。

required Debian のシステムで必要なパッケージにあたえられる重要度です。例えば base-passwd
とか。アンインストールしようとすると警告メッセージが表示されます。

important どんな Unix ライクなシステムにおいて存在することを期待されているプログラムは
この重要度を指定すべきです。しかし、X-Window-system や Emacs の大規模なプログラ
ムは含まれません例えば、manpages パッケージがあります。*1
standard スタンダードなアプリケーションがこの重要度を指定すべきです。perl や pyton ,Emacs など。
optional X-window-system などがこの重要度が指定すべきです。とりあえず、入れとくか程度のもののようです。optional なパッケージは互いに conflict しないように設定しないといけないようです。

extra プライオリティとして required , important ,standard ,optional のいずれかに指定されている他のパッケージと衝突するパッケージはこの重要度が指定されます。しかし、Conflicts
で指定している extra のパッケージもあれば、指定していないパッケージもあります。また、パッケージは自分のプライオリティより低いプライオリティがあたえられたパッケージに依存していはいけません。(ビルド時の依存は除きます)。

*1 こういうのは人によって異なると思うのですが。

12

2.3 バイナリファイル
Debian では、dpkg と呼ばれるパッケージ管理システムをベースにしています。よって、Debianで配布される全てのパッケージは.deb 形式で提供しなければなりません。
ここではこの deb 形式での配布方法等について示されています。
2.3.1 パッケージ名

全てのパッケージ名は Debian アーカイブ内でにおいて重複しない名前でないといけません。
パッケージ名はアルファベット小文字、数字 (0-9) と +,1, ピリオド (.) のみで構成されてないといけません。詳細は Debian ポリシーのセクション 5.6.7 で定義されています。
2.3.2 パッケージのバージョンについて

全てのパッケージはコントロールファイルの Version フィールドに書かれている必要があります。バージョンについては Debian Policy の 5.6.12 節で説明されているので、次回あたりで詳細を説明します。
日付によるバージョン番号のつけ方についても決められています。これはスナップショットでリリースされているアプリケーションにバージョン番号をつけるときに使用します。YYYYMMDDの形式でバージョン番号を付けるようにすべきであるると書かれています。
2.3.3 パッケージのメンテナについて

ここでは、パッケージメンテナについて示されています。
全てのパッケージには必ず一人以上のメンテナを持たないといけなく、連絡可能なメールアド
レスを持たなければなりません。グループでメンテナンスすることも可能ですが、この場合でも共通の一つのメールアドレスを持つ必要があります。
メンテナは control ファイルの Maintainer フィールドに正しい名前と連絡可能なメールアドレ
スを指定します。メンテナが複数のパッケージをメンテナンスしているときは、パッケージ毎に異なった名前やメールアドレスを使うことはやめて、同じものを使うことが推奨されています。
メンテナがパッケージをメンテナンスすることを辞めた場合、他のメンテナがみつかるまで

Debian QA グループがメンテナンスを引き継ぎます。このようなパッケージは orphaned （みなしご）パッケージと呼ばれます。
2.3.4 パッケージの説明について

ここではパッケージの説明文について示されています。
全てのパッケージには control ファイルの description フィールドに説明文が記入されている必要があります。簡単なパッケージの説明を記入するラインは半角 80 文字以内である必要があります。詳細な説明文を記入するエリアがあり、ここは上の簡単なパッケージの説明文とわけて書く必要があります。内容はパッケージが何をするか、Debian システムにどのような機能を追加するのかを書くべきであると示されています。
ソフトウェアのオフィシャルサイトに書いてある説明文をそのまま書くと、わかりにくいとBTS が来るときもあるのでよく考えて書きましょう。

13

2.3.5 依存関係について

ここにはパッケージの依存関係について示されています。
全てのパッケージはパッケージそれぞれが正常に動作するために必要なパッケージパッケージ
を依存情報として指定されている必要があります。
動作に必要なライブラリなどを依存情報として指定しておかないと、プログラムをインストー
ルしても正常に動作しないからです。例外もあって、Essential が指定されているパッケージは依存情報に指定する必要はありません。(2.8 で説明します。)
また、あるパッケージが、それをインストールする際に別のパッケージがインストールされ、且つ設定されている必要があるときがあります。この場合、そのパッケージには Pre-Depends
フィールドに指定する必要があります。
例えば、coreutils パッケージがインストールされる場合に、libacl1 パッケージや libc6 パッ
ケージがインストールされている必要があるので、coreutils の control ファイルの Pre-Depends
フィールドには libacl1 や libc6 が指定されています。
この Pre-Depends は勝手に設定していいものではなく、debian-devel@list.debian.org でその設定が正しいものなのか、必要なものなのか議論して決めるべきですと書かれています。
2.3.6 バーチャル（仮想）パッケージについて同じような機能を持つパッケージを仮想パッケージとして定義する方法について示されています。例えば、httpd の機能を持ったパッケージは apatche や boa, lighttpd などがあります。これらのパッケージで提供される機能は同じようなものであり、これらをまとめて、仮想パッケージとして定義することで想定できるパッケージをずらずら書かなくても良くなります。
例えば、これらの機能を必要とするパッケージ、例えば viewcvs などは httpd の機能が必要なのですが、コントロールファイルの Depands フィールドに httpd と書くだけでよくなります。
仮想パッケージは物理的には存在せず、論理的に存在します。例えば、apt-get install httpdと実行すると httpd を仮想パッケージとして指定している (コントロールファイルの Provides
フィールドで指定) パッケージがずらずらと表示されまます。
仮想パッケージ名は勝手に決めてはいけません。debian-devel@list.debian.org で議論する必要があると思います。現在指定可能な仮想パッケージ名は /usr/share/doc/debian-policy/virtual-pacに書かれています。
2.3.7 ベースシステムについて

Debian のベースシステムについて示されています。Debian のベースシステムは Debian
GNU/Linux システムとして最小のパッケージで構成されています。これらのパッケージのほとんどはプライリティが required か important で、Essential が指定されています。また、Section
フィールドに base が指定されています。
勝手に Section フィールドに base を指定してはいけません。debian-devel@list.debian.org
で議論して同意を得る必要があります。
2.3.8 エッセンシャルパッケージについて

エッセンシャルパッケージのポリシーについて示されています。エッセンシャルパッケージとは

Debian GNU/Linux システムとして必要不可欠なパッケージのことを指します。Essential が指定されているパッケージは control フィールドに Essential: yes が指定されており、Debian14

のシステムとして必ず必要なパッケージであることを示します。
勝手にパッケージ Essential を指定してはいけません。debian-devel@list.debian.org で議論して同意を得る必要があります。
2.3.9 メンテナスクリプトについてここでいうメンテナスクリプトとは、パッケージのインストールの際に実行されるスクリプトのことを指します。debconf を使ったり、オリジナルのスクリプトを使ったユーザーへのデータ入力方法や制限が示されています。
インストールする際に毎回設定をユーザーに対して質問するのではなく、設定ファイルをうまく用いて行うよう努力するべきであると書かれています。また、設定ファイルは/etc の適切な場所に置く必要があり、このことについてのドキュメントも書く必要があると書かれています。質問を行うためのプログラムを呼び出すスクリプトも postinst か config にすべきであり、インストー
ルに失敗したときにも適切な処理が行われるように設計されている必要があると書かれてます。

15

東京エリア Debian 勉強会 2006

3 Debian Policy 入門 第 3 回
岩松 信洋

Debian Policy 第 3 回です。今回は Source package についてです。
3.1 ソースパッケージとは？
ソースパッケージは Debian が配布しているバイナリパッケージの元になっているパッケージのことです。例えば、シェルスクリプトの bash*2 は bash*3 というソースパッケージからビルドされます。しかし、bash ソースパッケージは bash バイナリパッケージを作成するだけでなく、

bash-builtins*4 パッケージや bash-doc*5 パッケージもビルドされます。一つのソースパッケージから複数のソースパッケージがビルドされるとがあるということです。

3.2 Standards-Version についてStandards-Version は Debian Policy のバージョンを指します。Debian Policy は常に更新されており、現在、バージョンは 3.6.2.2 です。ソースパッケージは常に最新の Debian-Policy に追従すべきであると書かれています。実際にはパッケージをアップデートしたときに、Debian Policyのバージョンをチェックし上がっていた時、 Standards-Version の追従してバージョンを上げます。

Standards-Version は debian/control ファイルの Standards-Version フィールドに記述します。
Standards-Version フィールドのフォーマットもポリシーで決められており、セクション 5.6.11 で説明されています。

3.3 パッケージ関係について
パッケージをビルドする際に必要なパッケージが出てきます。そのビルドに必要なパッケージを指定する必要があると書かれています。
必要なパッケージを全て書くわけではなく、最低限必要なパッケージを書くべきであると書かれており、例えば、bash を例にすると、ビルドの依存関係は以下のようになっています。

Build-Depends: autoconf, patch, bison, libncurses5-dev, texinfo, autotools-dev, debhelpe
texi2html, locales*2 http://packages.debian.org/unstable/shells/bash*3 http://packages.qa.debian.org/b/bash.html*4 http://packages.debian.org/unstable/utils/bash-builtins*5 http://packages.debian.org/unstable/doc/bash-doc

16libncurses5-dev に注目して、libncurses5-dev*6 の依存関係を見てみると、Build-Depends: debhelper (>= 3.0.23), libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390],
libc6-dev-amd64 [i386], libc6-dev-ppc64 [powerpc], lib64gcc1 [i386 powerpc sparc s390],
libgpmg1-dev (>= 1.19.6-20) [!hurd-i386 !kfreebsd-i386], quilt (>= 0.40-1)となっています。依存しているパッケージに依存しているパッケージはもともと依存しているので、書く必要がないということです。
パッケージ間の依存の詳細に関しては セクション 7 で説明されています。

3.4 アップストリームのソース変更について
Debian では Debian social contract に書かれているように、Debian で発生した不具合やパッチをアップストリームに還元するようにしています。アップストリームとは上流開発者のことで、パッケージの開発元を指します。Debian 特有の問題やビルド時における最適化等で修正を入れるときがあります。ビルド前のテストで Debian として追加したい項目があるときは autoconf を使って適切に処理したり、Makefile を修正するときは、Makefile を直接修正せずに、Makefile.inを修正するようにとも書かれています。これは configure を行ったときに Makefile が上書きされてしまうからです。

3.5 Debian changelog について
Debian changelog とは Debian パッケージに関する変更点について書かれたものです。アップストリームの変更とは別書く必要があり、debian/changelog ファイルに記述します。
ポリシーとして、debian/changelog に Debian パッケージによる変更点を簡潔に記述すべきであると書かれています。debian/changelog を修正するときは dch*7 を使うと便利です。
Debian changelog の役目はこれだけではなく、debian/changelog からパッケージのバージョン
情報を取得し、パッケージ構築の際に使用します。形式は以下のようになります。

package (version) distribution(s); urgency=urgency[optional blank line(s), stripped]* change details
more change details[blank line(s), included in output of dpkg-parsechangelog]* even more change details[optional blank line(s), stripped]-- maintainer name <email address>[two spaces] date
• package , version
ソースパッケージ名とソースパッケージのバージョンを指します。

• distribution
version で指定されたパッケージがインストールされるディストリビューションを指します。
Distribution に関しては Section 5.6.14. で説明されています。
*6 ソースパッケージは ncurses*7 http://packages.debian.org/unstable/devel/devscripts17• urgency
パッケージをアップロードする際の緊急度を指定します。low, medium, high ,emergency を指定することができます。

• コメント部
コメントに関しては先頭は 2 つのスペースが必要です。習慣で各変更内容の先頭はアスタリ
スクになっています。長い文章は改行するのですが、改行したときは字下げを行います。字下げは上のテキストに沿って行います。空改行は変更内容をわけるために使用したりします。
変更内容に不具合の修正内容を書くときがあります。このとき、BTS*8 に登録されている場
合があります。バグの番号をフォーマット通りに changelog に書くことによって、changes
ファイルに書き込まれ、パッケージがアップロードされたときに、自動的にバグが close されます。フォーマットは #nnnnnn です。

• maintainer name , email address changelog を書く際にメンテナ名とメールアドレスを記述します。この項目はパッケージがアップロードされた時の承認結果を送る際に使用されます。また、パッケージのキーサインにもこの項目が使われます。

• date 修正した日時を書きます。RFC822 フォーマットに基づいて書く必要があります。
• タイトルタイトル部は左から始まります。メンテナーの前はスペースを入れ、トレーサー（–）を入れる必要があります。また、メンテナと日付の間には２つスペースを入れ、分ける必要があります。

changelog がインストールされる場所はセクション 12.7 に説明されています。
また、代替の Changelog フォーマットを使うことができます。実験用ではないパッケージでは、
dpkg の最新バージョンでサポートされる debian/changelog のためのフォーマットを使用しなけ
ればなりません。自分が使用したいフォーマットがあるなら、パーサーを提供することによって変更することができます。パーサーは dpkg-genchanges および dpkg-gencontrol によって期待された API 互換性を持つ必要があります。

3.6 Error trapping in makefiles
Makefile からシェルスクリプトが呼ばれるときがあります。例えば、dpatch *9 によって呼ばれる patch ファイルです。Makefile 内でシェルスクリプトファイルがエラーが発生しても、エラーを捉えることができません。そのため、シェルスクリプトファイルは実行の際に -e オプション*10 を付けなければならないと説明されています。

3.7 タイムスタンプについて
可能な限りアップストリームのソースファイルのタイムスタンプをパッケージ中に変更せず、そのままにしておくことを推奨すると説明されています。

3.8 ソースパッケージの中のオブジェクトファイルにおける制限
ソースパッケージの中にはハードリンク、デバイスファイル、ソケット、setuid や getuid されたファイルを入れてはいけません。
*8 http://bugs.debian.org*9 http://packages.debian.org/unstable/devel/dpatch*10 ERR トラップが設定されていればそれを実行して終了します。

18

3.9 Main building script: debian/rules
debian/rules ファイ ル は ソ ー ス パッケ ー ジ か ら バ イ ナ リ パッケ ー ジ を 作 成 す る 方 法 が ス
ク リ プ ト で す。実 態 は 実 行 可 能 な (パ ー ミッション:755)makefile で す。ファイ ル の 先 頭 は#!/usr/bin/make -f になっています。
スクリプトは非対話式になっています。対話式だと、毎回同じバイナリが生成されるとは限らないので、自動的にバイナリパッケージが生成されるようになっています。スクリプトの内容は dpkg-buildpackage から呼ばれる必要なターゲットとして clean, binary, binary-arch,binary-indep, build があり、これらが最小の構成になっています。
• build
パッケージの設定、コンパイルを行います。もし、パッケージ構築前に設定作業がある場合
は、Debian 化されたソースの設定作業を行った後で行うべきであると書かれています。その理由として設定を再度行わず、パッケージの構築が行えるようにするためです。
いくつかのパッケージは同じソースパッケージからコンパイルのやり方を変更して異なったバイナリを生成する場合があります。build ターゲットではこのような処理には対応できないので、それぞれの構築方法に従って、それぞれのターゲット（例えば、binary-a とbinary-b）を作成して使用するといいと書かれています。この場合は実際は build ターゲッ
トではなにも行わず、binary ターゲットでそれぞれのパッケージをビルドしてそれぞれのバ
イナリパッケージを作成することになります。
ルート権限が必要な作業は行ってはいけません。

• build-arch (optional), build-indep (optional)
build-arch は、提供された場合、アーキテクチャーに依存しているバイナリパッケージ (debian/control ファイルの Architecture フィールドが”all” ではないとき）すべて生成するために必要になった設定やコンパイルをすべて行なうべきです。build-indep は アーキテ
クチャーから独立しているバイナリパッケージ ( debian/control ファイルの Architecture
フィールドが”all” のとき）すべて生成するために必要になった設定やコンパイルをすべて行なうべきです。build ターゲットは、rules ファイルの中で提供される build-arch およびbuild-indep に依存するべきです。
• binary, binary-arch, binary-indep
binary ターゲットはこれだけで、バイナリパッケージを構築できないといけません。binary
ターゲットは 2 種類に分けられ、binary-arch は特定のアーキテクチャ用のファイル、binaryindep はそれ以外のファイルを生成します。これらのターゲットは非対話的に動作するものでなければいけません。

• cleanbuild ターゲットと binary ターゲットによって生成されたファイルを削除し、元に戻します。例外として、binary ターゲットで出力されたファイルは消さず、残します。このター
ゲットは非対話的である必要があります。

• get-orig-source (optional)
このターゲットは主要なアーカイブサイト（例えば、リングサーバー？）から最新のオリジ
ナルソースを HTTP や FTP から取得します。取得したオリジナルソースを tar ファイルに再構成します。

19

build , binary および clean ターゲットはパッケージのトップディレクトリをカレントディレクト
リとして実行されなければなりません。
公開されている、またはいないインターフェイスのためやパッケージ内部で使用するために

debian/rules に他のターゲットを置くことは許されます。
パッケージを実際に構築するマシンやインストールの対象となるマシンのアーキテクチャは、

dpkg-architecture を使い、変数を指定することによって決定されます。これにより、ホストマシ
ンだけでなくパッケーの構築するマシンの Debian 形式のアーキテクチャーと GNU 形式のアー
キテクチャ指定文字列を取得するとができます。

• DEB BUILD ARCH
Debian 形式のパッケージ構築マシンアーキテクチャ
例：i386• DEB HOST ARCH
Debian 形式のインストール先アーキテクチャ
例：i386• DEB BUILD GNU TYPE
GNU 形式のパッケージ構築マシンアーキテクチャ指定文字列
例：i486-linux-gnu• DEB HOST GNU TYPE
GNU 形式のインストール先アーキテクチャ指定文字列
例：i486-linux-gnu• DEB BUILD GNU CPU
DEB BUILD GNU TYPE の CPU 部分
例：i486• DEB HOST GNU CPU
DEB HOST GNU TYPE の CPU 部分
例：i486• DEB BUILD GNU SYSTEM
DEB BUILD GNU TPE のシステム部分
例：linux-gnu• DEB HOST GNU SYSYTEM
DEB HOST GNU TYPE のシステム部
例：linux-gnu
DEB BUILD ARCH および DEB HOST ARCH は Debian アーキテクチャのみを決定することができます。実際の CPU やシステム情報を取得する際はこれらを使用してはいけません。この場合には GNU 形式の変数を使用しなくてはいけません。
3.10 Variable substitutions: debian/substvars
substvars ファイルはそのパッケージの実行ファイルに関する共有ライブラリの依存関係を計算
し、書き出されたものです。bash を例に取ると、内容は以下のようになっています。
shlibs:Pre-Depends=libc6 (>= 2.3.5-1), libncurses5 (>= 5.4-5)

20

このファイルは debian/rules によって生成され、動的に変更されます。clean ターゲットで削除されるようにしておく必要があります。実際には dpkg-gencontrol , dpkg-genchanges, dpkg-source
が control ファイルを生成するときに substvars を参照してファイルを生成します。substvars を使ったソースの変換方法については、dpkg-source の man に書かれています。

3.11 Generated files list: debian/files
このファイルはソースツリーの常に存在する部分ではありません。これはどのようなパッケージが生成されたのか記録するために用いられます。dpkg-genchanges は、.change ファイルを生成する際に使用します。bash を例に取ると、以下のような内容になっています。

bash-doc_3.1-4_all.deb doc optional
bash_3.1-4_i386.deb shells required
bash-builtins_3.1-4_i386.deb utils optional
bash-static_3.1-4_i386.deb shells optional
bash-minimal_3.1-4_i386.deb shells optional
また、このファイルはアップロードされるソースパッケージには含めてはならず、debian/rulesの clean ターゲットで削除すべきであると書かれています。

21

東京エリア Debian 勉強会 2006

4 Debian multimedia project
上川

Debian には Multimedia Project というサブプロジェクトがあります。そこでは、Multimedia
関連のツールについての議論や調整が行われています。そこで議論されている内容は大きく、ビデオとオーディオに分割できます。その内の、上川が担当している、オーディオ関連について現状
何がなされていて、何ができるようになっているのかを説明します。

4.1 AGNULA/DeMuDi
Debian Multimedia Distribution というプロジェクトがあります。これは Debian に、リアル
タイムカーネルを追加し、いくつかのパッケージをカスタマイズして作成したものです。Debian
用語でいう、「CDD:Custom Debian Distribution」の一つで、インストール直後からオーディオ
アプリケーションが使える便利なディストリビューションです。

Debian 本体とパッケージ自体はあまりかわりませんが、一部のパッケージが追加されております。

4.2 Debian multimedia policy
multimedia 関連のツールを利用する際には、複数のツールを相互に作用させる必要があり、相互作用のための規格は Debian 外部で活発に議論されていました。たとえば linux-audio-dev メー
リングリスト周辺では音楽関連のセッション管理や相互通信のための規格が議論されています。

Debian に関しては過去それぞれのアプリケーションが独立しており、まだポリシーを策定できるような状況ではありませんでした。ただ、最近はいろいろとツールも出そろって来た感がある
ため、そろそろ相互運用を考えたポリシーの策定が必要になって来ています。
ただ、多くのソフトウェアが準拠できないような高いハードルを設定しても、各パッケージが従わないだけなので、現状準拠することに議論が出なさそうな部分から標準ポリシーとして策定
していこうと画策しています。
一番策定したいのは、プラグイン機構、相互接続、デフォルトのオーディオと MIDI デバイスの指定の部分について Debian で統一した操作感を提供する部分です。

4.3 今 Debian でできること
Debian を Digital Audio Workstation (DAW) のプラットフォームとして音楽活動をしようとすると何ができるのか、何ができないのか、追求してみようと思います。
現在存在しているアプリケーションはおおまかに、下記に分類できます。

22

• フレームワーク系、相互運用のために必要な基本的なドライバなど。ALSA や jack、ladspaなど。

• MIDI(音譜) 編集系• マルチトラック/音声編集系
音声データを受け取り、録音し、編集し、音声データを出力するもの• ソフトウェアシンセサイザー
MIDI を入力として受け取り、音声を出力するもの• エフェクト
LADSPA プラグイン。

4.4 MIDI コネクション
音符情報を扱うための統一企画として、MIDI があります。MIDI は、音程と音量を指定して発声を指示するための通信プロトコルで、昔から使われているものです。現在の電子楽器などではほとんど利用できます。
また、ALSA の MIDI シーケンサ機能を利用すると、仮想的にアプリケーションとアプリケー
ションを接続して、情報の通信プロトコルとして MIDI を利用することができます。

GUI で操作する場合は、qjackctl などで制御します。
4.5 JACK で接続する
発声と録音の経路について、UNIX らしく、各アプリケーションがそれぞれの役割をもつ、という場面を考えてみると、MIDI のような通信プロトコルが必要になります。

jack はそのプロトコルを提供します。
オーディオアプリケーションは jackd というデーモンを介して相互に音声データを送受信します。また、リアルタイム (録音しながらそれを再生しながら処理) に処理をするために工夫がこらされています。

4.6 LADSPA:エフェクトをかける
音声を扱う各アプリケーションはそれぞれ音声に対してエフェクトをかけることができます。
一般的にはディレイや、ディストーション、コンプレッサーなどがあります。それらを、各アプリ
ケーション毎に再実装するのは無駄なため、共有化しようということで生まれたのが LADSPA という規格です。

LADSPA という規格にのったプラグインがそれぞれのエフェクト提供し、各アプリケーション
がそれを利用してエフェクトをかけます。
現状 LADSPA エフェクトを利用したり提供できるパッケージを確認するには、ladspa-plugin
を Provides: していたり、Recommends:しているパッケージを確認すればよいです。*11

swh-plugin などはよいエフェクトだと定評があります。

*11 今気づいたのですが、現状その依存関係をもっていないパッケージがあるため、現実より少ない数のパッケージしか出て来ません。

23

> apt-cache showpkg ladspa-plugin
Package: ladspa-plugin
Versions:
Reverse Depends:
sweep,ladspa-plugin
ecasound,ladspa-plugin
xmms-ladspa,ladspa-plugin
terminatorx,ladspa-plugin
sweep,ladspa-plugin
snd,ladspa-pluginrosegarden4,ladspa-plugin
glame,ladspa-plugin
galan,ladspa-plugin
ecasound,ladspa-plugin
audacity,ladspa-plugin
Dependencies:
Provides:
Reverse Provides:
tap-plugins 0.7.0-2
swh-plugins 0.4.14-1
ladspa-sdk 1.1-4
cmt 1.15-3
caps 0.3.0-1
blop 0.2.8-3

4.7 Linux オーディオ処理におけるリアルタイムの必要性
オーディオデータを入力したものを加工して再生すると、その間に処理遅延が生じます。処理
遅延のバッファとして 1024 フレーム利用するとしてみましょう。通常の 44.100kHz のオーディオ
データで 1024 フレームというと、23 ミリ秒程度です。これは、23 ミリ秒分のデータを取得して、

jackd に接続している全プロセスがそのバッファに関連した必要な処理をして、23 ミリ秒以内に出力用バッファに配置するということを意味します。23 ミリ秒以内に配置できなかった場合にはその回の音声は途切れ、ユーザはブチという音を効くことになります。この状態を ALSA 用語では「xrun」と呼びます。*12
実際問題として、Linux をそのまま利用していると、23 ミリ秒以内に絶対に全プロセスが処理を完了するということは難しいです。
最近の Linux カーネルは下記の追加で改善してきてはいますが、まだまだ進歩が求められています。特に、ライブやレコーディングでは、数時間にわたって jack の処理が時間内に終了しないということが一度でもあってはならないという条件になるため、それなりにチューニングの手腕が求められます。

• カーネルが持っている長時間の処理を分割• preempt 対応により、カーネル空間の処理でもタイムスライスにより CPU を明け渡すようになった• リアルタイム対応により、SCHED FIFO などのスケジューリングに対応、オーディオ関連のスレッドの優先度をあげることができるようになった*12 実際は period 数を増やすことでダブルバッファリングみたいなことをしているため、この限りではないようだが、簡単に原理だけは伝わっただろうか。

24

東京エリア Debian 勉強会 2006

5 Debian Multimedia Audio application 概観
上川

現在 Debian に存在しているアプリケーションにどのようなものがあるかみてみましょう。こ
こにあるリストは全てを網羅しているわけではなく、また、途中であきらかに力尽きてます。今後また続きをやります。

5.1 フレームワーク系
Debian では音楽関連のフレームワーク系も独自に管理しています。この関連について議論する
場所は debian-multimedia@lists.debian.org メーリングリストです。
5.1.1 ALSALinux のオーディオの次期標準といわれつづけて早何年目か。カーネルモジュール (最近は標準) とユーザランドのライブラリ (libasound2) といくつかのツールがあります。
$ aplay -l**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: IXP [ATI IXP], デバイス 0: ATI IXP AC97 [ATI IXP AC97]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 0: IXP [ATI IXP], デバイス 1: ATI IXP IEC958 [ATI IXP IEC958 (AC97)]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 2: Device [KC USB Audio Device], デバイス 0: USB Audio [USB Audio]
サブデバイス: 1/1
サブデバイス #0: subdevice #0

5.1.2 jack-audio-connection-kit

各音楽関連のアプリケーションが利用する音声経路ルーティングプロトコルです。jackd というデーモンが、利用しているユーザの権限で起動し、それを経由して通信します。
コマンドラインで起動する場合はjackd -d alsa -d デバイス名 -r サンプルレートのように指定します。
jackd -d alsa -d ixp -r 48000

ポートの接続はコマンドラインからでも操作できます。

jackd には複数の ALSA サウンドカードを同時に使えないという制限があります。そういう場
合は現状としては、ecasound などの jack と ALSA 対応のアプリケーションをかましてしのいでいます。ALSA 側の機能で対応することもできるようです。

25

$ jack_lsp
alsa_pcm:capture_1
alsa_pcm:capture_2
alsa_pcm:playback_1
alsa_pcm:playback_2$ ecasound -i alsaplugin,2,0,0 -o jack_generic,usbaudio &$ jack_lsp
alsa_pcm:capture_1
alsa_pcm:capture_2
alsa_pcm:playback_1
alsa_pcm:playback_2
alsa_pcm:playback_3
alsa_pcm:playback_4
alsa_pcm:playback_5
alsa_pcm:playback_6
ecasound:usbaudio_1
ecasound:usbaudio_2$ jack_connect ecasound:usbaudio_1 alsa_pcm:playback_1$ jack_connect ecasound:usbaudio_2 alsa_pcm:playback_2

類似したシステムとして esound*13 や arts*14 、NAS*15 がありますが、それらは音をできるだけ切らせないことを主眼としているため、余裕をもったバッファを利用しており、レイテンシの問題
でほとんどのオーディオアプリケーションでは利用できないです。
5.1.3 qjackctl

ポートの接続や、jackd の起動/停止は、qjackctl で GUI 経由で操作できます。
まず、起動したら、パネルが起動します。

詳細の設定を指定すると、jackd の起動オプションを細かく指定できます。

また、コネクションパネルを開くと、jack 接続の管理が出来ます。

*13 GNOME*14 KDE*15 ネットワーク経由を主目的としたオーディオプロトコル26

5.1.4 ladspa

オーディオのエフェクトを処理するための、プラグインインタフェースです。また、ladspa-dev
パッケージが存在しており、そのパッケージに含まれている/usr/include/ladspa.h を利用することが推奨されています。LADSPA 自体がポリシーを定義していますが、Debian の ladspa パッ
ケージは、追加で /usr/share/doc/ladspa-sdk/README.Debian にて定義されている下記のポリシーにしたがっています。

/usr/lib/ladspa/ に パッケ ー ジ が 提 供 す る LADSPA プ ラ グ イ ン を 提 供 す る こ と 。
LADSPA\_PATH 環 境 変 数 が 定 義 さ れ て い な い 場 合 に は 、/usr/local/lib/ladspa:/usr/
lib/ladspa をデフォルトの検索パスとして利用すること。
5.1.5 jack-rack

apt-get install jack-rack でインストールできます。
jack 接続経由で LADSPA エフェクトをかけることができ、エフェクトのパラメータを GUI で制御できます。

5.1.6 jaminapt-get install jamin でインストールできます。
jack 経由で細かいイコライザーやコンプレッサーの設定が出来るツールです。レコーディングの最終段階のファイナライズに便利そうです。

27

5.1.7 jackbeat

apt-get install jackbeat でインストールできます。wav ファイルをリズムループ用のサンプルとして利用して、単純なドラムシーケンサーとして利用できるようです。

5.1.8 kluppe

apt-get install kluppe でインストールできます。jack 経由で接続し、wav ファイルをループさせることができます。

5.1.9 ladcca

LADCCA というフレームワークが存在しているようです。気づいたら lash http://www.
nongnu.org/lash/ というプロジェクトにかわってしまっているようです。セッション管理のためのフレームワークです。jack の導入にともない、アプリケーションが接続できるのはよいのですが、毎回アプリケーションをユーザが接続する必要があります。その処理を簡便化するためのプロトコルのようです。

28

5.2 ソフトウェアシンセ
MIDI の接続は ALSA の MIDI 接続が事実上の標準プロトコルとして利用されています。
qjackctl の接続画面に MIDI 接続タブがあるので、それを利用して接続してあげればよいです。
また、aconnect というコマンドラインインタフェースがあり、それを利用することも可能です。
$ aconnect -i -l
クライアント 0: ’System’ [タイプ=カーネル]
0 ’Timer’
1 ’Announce’
接続先: 15:0, 128:0
クライアント 14: ’Midi Through’ [タイプ=カーネル]
0 ’Midi Through Port-0’
クライアント 130: ’Virtual Keyboard’ [タイプ=ユーザ]
0 ’Virtual Keyboard’
接続先: 129:0$ aconnect -o -l
クライアント 14: ’Midi Through’ [タイプ=カーネル]
0 ’Midi Through Port-0’
クライアント 129: ’FLUID Synth (7910)’ [タイプ=ユーザ]
0 ’Synth input port (7910:0)’
接続元: 130:0

5.2.1 TSE3

シーケンサエンジンのようです。KDE 関連のアプリはこれを利用しているような気がしています。どうなのよ。
5.2.2 timidity

ちょっとインタフェースに古めかしい感がありますが、事実上の標準の MIDI シーケンサエンジ
ンです。MIDI データから WAV を生成するためのインタフェースとして利用されています。
5.2.3 freepats

Debian にて、フリーのサウンドフォント集です。形式が pat 形式です。timidity から使える設定になっているようです。

sf2 形式じゃないとほとんどのアプリから利用できないので意味が無い。
5.2.4 zynaddsubfx

apt-get install zynaddsubfx でインストールできます。
オルガン系の音やパッド系の音が結構使えます。仮想キーボードの UI がお手軽です。MIDI 制
御可能なため、vkeybd を利用して制御することなども可能です。jack 対応です。

29

5.2.5 hydrogen

UI が優秀なのでドラムシーケンサとして活用しています。jack 対応です。MIDI 入力にも対応しているようです。

5.2.6 pd

UI がかなり前時代的ですが、シンセを GUI で編集するという系では元祖みたいな存在です。
使い方がわからんです。誰か教えてください。
5.2.7 beast

GTK シンセ。これも結構頑張っています。使い方がわからんです。誰か教えてください。
5.2.8 csound

学術系の人々の中で長い間つかわれてきたものらしく、過去の遺産が大量にあります。ちょっと学術的すぎて個人的には使っていません。誰か使い方教えてください。
コマンドラインで操作できる、というよりむしろプログラム言語です。
方程式で波形を設計したいあなたに。
5.2.9 vkeybd

キーボードで操作できる MIDI キーボードです。alsa の MIDI デバイスとして動作します。とりあえず試すのには便利です。こいつを起動して、qjackctl で接続してあげれば他のアプリケー
ションが MIDI 入力にどういう反応をするのかを確認できます。

5.2.10 fluidsynth

ソフトウェアシンセのようです。sf2 形式のファイルをサポートしているようです。http://www.hammersound.net/ などに多数のサウンドフォントが存在していて、そのうちの適当な30

ファイルを読み込んで利用することが出来ます。jack へ音声を出力することが可能です。

Debian 内で、sf2 のファイルが見付かりません。ウェブを探すとたくさんあるようです。
5.2.11 qsynth

fluidsynth を制御する GUI です。

5.2.12 swami

サウンドフォント (sf2 ファイル) を編集するツールです。fluidsynth を内部では利用しています。

5.3 楽譜編集
5.3.1 lilypond

TEX で楽譜を作成しよう、というパッケージ。まともなクラシックの楽譜を作成するような作業をする際にはこれでやってました。TEX をがんがん使いたいあなたに。
5.3.2 denemo

今までは上川はこれで一小節程度の楽譜ならこちょこちょっと作成して用を足して来ました。
キーバインドも数字で音符の長さが決まっていたり、キーの上下で操作できます。久しぶりに見てみるとインタフェースが大幅に改善されているようです。

31

5.3.3 noteedit

MIDI のインポートもできるらしい。とりあえず楽譜を表示することはできるっぽい。

5.3.4 rosegarden4

apt-get install rosegarden4 でインストール。
一応楽譜が編集できます。ステップ録音などもできます。デバッグメッセージが大量に出て来るのとなんだか反応が鈍い感じはします。

rosegarden という古くから何度も書き直されつづけているプログラムの最新版です。いまのところまともに開発されているようです。

32

5.3.5 kguitar

apt-get install kguitar でインストール。
ギターのタブ譜を編集できるソフトウェアのようです。使い方が分からないので、困りました。
楽譜が出るはずのようですが、出てません。ギターの絵が素敵です。MIDI 入出力ができることになっているようです。

5.4 音声編集系
5.4.1 ecasoundapt-get install ecasound でインストール。
コマンドラインベースで音声加工をするためのツールです。
よく使うコマンドは音量をノーマライズする。(可能な最大の音量まであげる)$ ecanormalize in.wav

in.wav にコンプレッサーエフェクトをかけて、out.wav を生成する。
$ ecasound -i in.wav -o out.wav -eca

とりあえず録音する

33

$ ecasound -i alsahw,0,0,0 -o /tmp/a.wav*********************************************************************************
ecasound v2.4.3 (C) 1997-2005 Kai Vehmanen and others********************************************************************************- [ Session created ] ---------------------------------------------------------- [ Chainsetup created (cmdline) ] --------------------------------------------- [ Connecting chainsetup ] ---------------------------------------------------(eca-chainsetup) ’rt’ buffering mode selected.
(eca-chainsetup) Audio object "alsahw", mode "read".
(audio-io) Format: s16_le, channels 2, srate 44100, interleaved.
(eca-chainsetup) Audio object "/tmp/a.wav", mode "read/write".
(audio-io) Format: s16_le, channels 2, srate 44100, interleaved.
- [ Chainsetup connected ] ----------------------------------------------------(eca-control-objects) Connected chainsetup: "command-line-setup".
- [ Controller/Starting batch processing ] ------------------------------------- [ Engine init - Driver start ] ----------------------------------------------ここで ctrl-C で停止- [ Controller/Processing stopped (cond) ] ------------------------------------- [ Engine exiting ] ----------------------------------------------------------(eca-control-objects) Disconnecting chainsetup: "command-line-setup".
- [ Chainsetup disconnected ] -------------------------------------------------- [ Controller/Batch processing finished ] -------------------------------------

5.4.2 sweep

apt-get install sweep でインストール。
メモリ上に wav ファイルを展開するので、大きい wav ファイルは編集できないです。プリビューが優秀。ダブルクリックしたらそこから再生したりしてくれる。こまかい波形の切りだしなどに上川愛用。しかし、jack に対応していないなどの欠点があります。

5.4.3 rezound

apt-get install rezound でインストール。
サウンドの編集用のツールです。jack 出力をサポートしています。
$ rezound --audio-method jack

録音を開始する場合にはデバイスを確認されます。

録音する際にはレベルの表示もしてくれます。

34

入出力は jack で設定してあげます。

5.4.4 audacity

apt-get install audacity でインストール。
audacity で起動。マルチトラックのオーディオ編集に最適。巨大な波形データもメモリ上に全てをロードしようとはしないので編集できる。巨大なデータの一次処理用には上川愛用。しかし、jack をサポートしていません。

35

以前は日本語インタフェースを利用しようとすると悲惨でしたが、直っているようです。まだ
一部問題が残っているようですが、全く使えないほどではないです。
5.4.5 ardour

apt-get install ardour-gtk でインストール。
マルチトラックの音声ファイルは編集できるけど、音符が編集できそうな雰囲気は無いです。

Paul Davis という人が中心に開発していて、彼はこのために jack と LADSPA を実装し、Hammerfall のサウンドカードのドライバを ALSA 用に実装したというよくわからないけど凄い代物です。

5.4.6 muse

apt-get install muse でインストール。
MIDI トラックと音声トラックが同時に扱えるようです。jack と ALSA MIDI に対応しているようです。使い方がわからず。

36

5.4.7 snd

音声業界での emacs と呼ばれています。使い方がわからないです。誰か教えて下さい。

37東京エリア Debian 勉強会 2006

6 Debian TEX のファイル構造上川

TEXpolicy について簡単に解説します。
6.1 文書
この文書は tex-common パッケージに入っている Debian-TEX-Policy ファイル ( file:///usr/

share/doc/tex-common/Debian-TeX-Policy.pdf.gz) を概訳したものです。
6.2 用語用語が定義してあります。

6.3 ファイル配置
TEX の入力ファイルのみを TEXMF ツリーに配置します。そうでないものは、/usr/share/PACKAGEに配置します。例外として、説明のためのテキストファイルは TEXMF ツリーに配置することができます。
6.3.1 パス検索と libkpathsea/libkpse

ファイルフォーマットなどに基づいて、TEXMF ツリーの検索をするためのライブラリです。

libkpathsea はあまり考えていませんでしたが、libkpse は、API/ABI を考慮したライブラリです。
スクリプトからは kpsewhich, kpsepath, kpsexpand, kpsestat を利用できます。
6.3.2 ディレクトリツリー

配置は、TEX ディレクトリ構造標準 (TDS) に準拠する。TDS の古いバージョンに準拠するのはバグ。TDS の新しいバージョンに依存しながらこの tex-common パッケージや TEX の基本パッ
ケージの十分新しいバージョンに依存していないのもバグです。

• /usr/share/texmf-tetex/: TEXMFDIST• /usr/share/texmf-texlive/: TEXMFDIST• /usr/share/texmf/: TEXMFMAIN• /var/lib/texmf/: TEXMFSYSVAR• /etc/texmf/: TEXMFSYSCONFIG• /usr/share/texmf-site/: TEXMFSITE• /usr/local/share/texmf/: TEXMFLOCAL
38

• texmf.cnf に指定してある TEXMFHOME の値、もしくは環境変数としての値。
• 必須ではない： 各ユーザ用の設定ファイルディレクトリ TEXMFCONFIG, 生成されたファ
イルのディレクトリ TEXMFVAR
検索は下から優先します。

TEXMFMAIN と TEXMFDIST の Debian での使い方は upstream と違います。TEXMFMAIN がバイナリと一致する必要のあるものを配置していあり、 TEXMFDIST はあたらしいTEXMF が配布されて上書きされるものを配置していますが、そのような配置はパッケージマ
ネージメントシステムがきちんと動いている環境では必要ありません。

Debian では、TEXMFDIST を basic TEXpackages 用にしており*16 、TEXMFMAIN は新しいバージョンを提供したりするアドオンパッケージ用にしています。
パッケージはメンテナスクリプトの中で TEXMFHOME を無視するように考慮すべきです。
6.3.3 生成されるファイル

フォントは /var/cache/fonts におきます。その他は /var/lib/texmf 以下、もしくはユーザの指定したディレクトリの下に TDS に準拠したパスに配置します。

/etc/texmf/texmf.cnf は例外です。管理者が編集することは意図していませんが、編集されていた場合には自動生成ツールはその変更を尊重してください。Debian パッケージはそのファイルは変更してはいけません。
6.3.4 ファイル名とファイルの別バージョンのインストール

TEXMF ツリーにすでにあるファイル名と同じ名前ではファイルはインストールしてはいけません。ただし別のアプリケーションからしか見えないサブディレクトリにしかない場合には同じ
名前でもかまいません。そういうディレクトリは kpsewhich の –progname や –format にて得られます。

• Basic TEXpackages はそれぞれ同じようなファイルを自分の TEXMFDIST にインストール
します。

• より新しいバージョンのファイルが必要な場合、TEXMFDIST にすでにあるファイルを自分のバージョンでおきかえることができ、TEXMFMAIN に配置します。
ただ、この場合、basic tex packages のメンテナに連絡*17 してください。
新しいファイルが後方互換であるように注意してください。
混乱をまねくため、二種類を越える種類のバージョンが共存することや、dpkg-divert の利用は推奨しません。

6.3.5 ドキュメント

パッケージはドキュメントを texdoc に提供するべきです。/usr/share/doc/texmf 以下のサブディレクトリにファイルをインストールするか、適切なシンボリックリンクを提供することで実現できます。

/usr/share/texmf/doc にはファイルをインストールしないでください。ここは/usr/share/doc/texmf
へのシンボリックリンクです。
*16 一部例外あり*17 wishlist バグ

39

ドキュメントの代表的なドキュメントはパッケージ名に関連した名前にして、manual.pdf やindex.html という名前にしないでください。*18
6.4 設定6.4.1 設定ファイル

TEX において、あらゆる TEX の入力ファイルは設定ファイルになりえますが、設定ファイルが多くなりすぎるのを防ぐため、 conﬃle や configuration file としてファイルをインストールしな
いでください。/etc/texmf/tex には空のディレクトリを作成し、ユーザにどういうファイルを作成するべきかを指定してください。

/etc/texmf/ は TDS のツリーであり、任意の設定ができます。Debian の tex-common が提供
する /etc/texmf/texmf.d/ などは検索対象ではないため、TEX の入力ファイルではないものの置場として利用できます。
6.4.2 設定更新プログラム/etc/texmf/texmf.cnf が中心の設定です。/var/lib/texmf/web2c/updmap.cfg がフォントの設定ファイルです。/var/lib/texmf/tex/generic/config/language.dat がハイフネーションと言語の設定で、 /var/lib/texmf/web2c/fmtutil.cnf にてフォーマットの生成が管理されています。
/etc/texmf 以下のツリーからこの四つのファイルは生成されています。
updmap.cfg language.dat fmtutil.cnf についてはこれが唯一の設定方法です。
texmf.cnf は管理者によって編集可能で、変更は ucf で管理されます。
パッケージのメンテナスクリプトは直接編集せず update-texmf を利用します。管理者もupdate-texmf を利用することを推奨します。
パッケージは設定項目を追加してよいですが、他のパッケージの設定を上書きしようとはしな
いでください。共有する設定項目は basic TEXpackages でどのパッケージでも利用できるような値を提供させてください。もしデフォルトが不可能であれば、そのことを関係パッケージのメンテナの間で合意をとってください。
メンテナスクリプトは、 update-updmap を –quiet オプションをつけて呼び出して下さい。それ以外については、設定アップデートプログラムには特にオプションをつけずに呼び出して下さい。ディレクトリ構造の内部的な変更ができるようにするためです。

updmap.cfg を変更するパッケージは updmap-sys を呼び出す必要があります。language.dat か
fmtutil.cnf を変更するプログラムは fmtutil-sys を呼び出す必要があります。その前に mktexlsrを呼び出すのを忘れないで下さい。
6.4.3 フォント設定

PS type1 フォントを提供するパッケージはどんな Basic TEXpackage でも利用できるようにしてください。tex-common で提供されている dh installtex を利用してください。詳細はマニュア
ルページ dh installtex(1) 参照。
• tex-common に depend して、Basic TEXpackage には依存しない• .map ファイルは TEXMFMAIN/fonts/map にインストールする。
*18 texdoc packagename と指定できるようにするため、これができないとユーザは texdoc packagename/user.dvi のようなコマンドライ

ンを texdoc -s keyword で検索する必要がでてきます。

40

• その他の必要そうなものもインストールする .pfb, .tfm, .enc, .fd, .sty, 文書等• /etc/texmf/updmap.d/ に 10name.cfg と い う 名 前 法 則 で ファイ ル を 配 置 す る 。
update-updmap が /var/lib/texmf/web2c/updmap.cfg を 生 成 す る の に 利 用 さ れ る 。
# -_- DebPkgProvidedMaps -_-を含むファイル形式で詳細は update-updmap(1) 参照。
• /var/lib/tex-common/fontmap-cfg/package.list に一行一つさきほどの.cfg を記述。パッ
ケージのファイルとしてインストールすること。

• package.postinst と 、postrm(remove/disappear を 指 定 さ れ た ば あ い) に て 、 updateupdmap –quiet, mktexlsr, updmap-sys をその順番に実行すること。
(以下 dh installtex を利用すればよいので詳細な項目略)

6.4.4 言語/ハイフネーション設定

dh installtex を利用すればよいです。
必要なファイルを TEXMFMAIN に配置し、.cnf ファイルを /etc/texmf/language.d にインス
トール、 update-language を呼び出すと /var/lib/texmf/tex/generic/config/language.dat が生成されます。
ここまでいくと、あとは fmtutil-sys --byhyphen ‘kpsewhich --progname=latex language.dat‘
を呼び出すと再生成処理が行われ、利用できるようになります。削除するときもこのコマンドです。
現状、update-language は LATEX 以外の hyphenation 設定ファイルを利用しているものには提供されていません。
6.4.5 フォーマット設定

dh installtex を利用すればよいです。
fmtutil.cnf(5) に説明してある形式のファイルを/etc/texmf/fmt.d/に配置し、update-fmtutil を実行し、fmtutil-sys –byfmt format を実行します。cnf ファイルの最後の行に記述する format.ini
が見付かった場合だけフォーマットが生成されるので、format.ini は conﬃle であってはいけません。
6.4.6 TeX に Build-Depend する場合のベストプラクティス

Build-Depend するパッケージが変更した設定を必要とする場合、その設定を静的にもつべきではありません。もしパッケージがビルドするのに適切でない設定があるのであれば、それは通常その設定を提供しているパッケージのバグですので、そちらを修正してください。回避策は後々
大きな問題となってかえってくる事がおおいです。
もしどうしても必要なら、設定更新プログラムの –outputdir と–add-file を利用して生成してください。
6.4.7 コマンドの実行とフォーマットファイル

TEX のフォーマットが必要な場合は、postinst スクリプトで実施してください。依存するパッ
ケージは Depends: をするだけで十分です。フォーマットファイルの存在を確認などをすると内部構造がかわると壊れやすいのでやめてください。

Debian パッケ ー ジ は fmtutil か fmtutil-sys を 常 に 利 用 す る べ き で 、/etc/texmf/fmt.d/(fmtutil-sys) にファイルを追加するか、fmtutil (–cnﬃle オプションを指定) で、ローカルの cnf
41

ファイルを更新するようにしてください。
管理者は環境変数を texmf.cnf でオーバライドできます。これが postinst のエラーにつながっている例があります。環境変数はフォーマット生成前などに postinst で unset してください。
6.4.8 Dpkg の Post-Invoke の仕組み

この案は没になりました。

6.5 サンプルコード
(省略)

42

東京エリア Debian 勉強会 2006

7 Debian latex の現状調査
上川

まず、Debian の latex で日本語のドキュメントを処理するための手順について確認します。ここでは、例としてドキュメントを準備し、そのドキュメントソースを PDF ファイルにするまでの手順を確認します。

7.1 platex で PDF を作成する方法
platex は ptex-bin パッケージに含まれています。日本語でかかれた tex ファイルから dvi ファ
イルを生成することができます。
$ platex debianmeetingresume200604.tex

Debian での platex のデフォルトは、EUC モードです。ソースファイルのエンコーディングは
iso-2022-jp か euc-jp にしておくとよいでしょう。SJIS モードでの処理については、Debian パッ
ケージとしてはサポートしていません*19
文字コード

可否

EUC-JP
SJIS
ISO-2022-JP
UTF-8

○
×
○
×

dvi ファイルから PDF を作成する方法は、いくつかあります。
• dvipdfmx を利用する
毎月の Debian 勉強会用の資料を処理するのに利用している方法です。
$ dvipdfmx debianmeetingresume200604.dvi• dvips で PS を生成し ps2pdf を利用する$ ps2pdf debianmeetingresume200604.ps
mktexpk: don’t know how to create bitmap font for rml.
dvips: Font rml not found, characters will be left blank.
$ ps2pdf debianmeetingresume200604.ps(結果の PDF ファイルには日本語の文字がまったく表示されない)• dvi2ps で PS を生成し、ps2pdf を利用する$ dvi2ps debianmeetingresume200604.dvi > debianmeetingresume200604.ps$ GS_LIB=/usr/share/fonts ps2pdf debianmeetingresume200604.ps(Ryumin-Light が見付からない、という gs のエラーが出力され途中で停止する)

現状 GS_LIB 環境変数の指定が必要になっているのと、Kochi フォントを利用しているとエラーを吐いて停止するという問題があります。dfontmgr を利用して、ps2pdf(gs) が利用す*19 http://bugs.debian.org/234547

43

るフォントとして kochi フォント以外を指定する必要があります。*20

それぞれの方法にハイパーリンクや pstricks の扱いに癖があります。たとえば、dvipdfmx の場
合は hyperref パッケージを読み込む際に、dvipdfm オプションを指定してあげる必要があります。
\usepackage[dvipdfmx]{hyperref}

7.2 jlatex
jlatex は、jtex-bin パッケージに入っています。tex ファイルから dvi ファイルを生成することができます。
ただ、platex 向けの既存のドキュメントをコンパイルしようとしてもエラーになります。

Debian 勉強会資料で利用している jsarticle.cls や ascmac.sty などが platex 専用だからのようです。 j-article などを利用する必要があるようです*21 。また、このドキュメントに関してはそれ以外にも問題があり、簡単な変更では処理できませんでした。
$ jlatex debianmeetingresume200604.tex! LaTeX Error: File ‘jsarticle.cls’ not found.
(エラーがでてコンパイルできない)

7.3 cjk-latex
babel の CJK パッケージとして実装されており、通常の latex を利用して日本語を処理できるそうです。
そのままでは /usr/share/doc/cjk-latex/examples にあるサンプルファイルすらコンパイ
ルできないので、困りものです。
参考：http://lists.debian.or.jp/debian-devel/200007/msg00150.html*20 参考：http://lists.debian.or.jp/debian-users/200501/msg00008.html,
gs-esp-8151.htm*21 jarticle は利用できるようになっている。

44

http://kmuto.jp/d/index.cgi/debian/7.4 pdfelatex
Debian には部品が現状足りないようです。
参考：http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/17780.html
7.5 multex
パッケージをインストールしただけでは、サンプルファイルを処理してもフォントが一部足りないようで、表示されない文字があります。
参考：http://lists.debian.or.jp/debian-users/200106/msg00081.htm

7.6 lambda (omega)
http://www.fsci.fuk.kindai.ac.jp/kakuto/soft.html、http://cise.edu.mie-u.ac.
jp/~okumura/texfaq/japanese/ などを参考にしてみてください。現状、実用的に既存のドキュメントをそのまま処理できるような形式ではないことがうかがえます。

45

東京エリア Debian 勉強会 2006

8 一年間 Debian 勉強会をやってみて上川

この記事の目的は、終ってからだと忘れてしまいそうだし、最中だといそがしくていっぱいいっ
ぱいなのでどこにも記録されずに忘れ去られてしまいそうな事項についてメモをしています。
希望としては、ここに書いてある内容をみて、今後のミーティングの運営の手伝いを人に頼めるようになればよいなと思っています。

8.1 月例の Debian 勉強会のワークフロー
2005 年、Debian 勉強会を毎回実施する際に利用したワークフローを紹介します。今後の勉強会などの参考にできるかと思い、記録します。
参加者規模、10 名から 20 名程度でした。予算規模は、宴会を含むと一回 5 万円から 10 万円程
度です。宴会を含まないのであれば、多くて１万円くらいでした。(表 1)
表1

予算概算

項目

予算

部屋代

1500

コピー代

300 × 人数

宴会代

5000 × 人数

8.1.1 1 年前

開催者側のスケジュールの確保。上川は一年前にだいたいその年のスケジュールを決めています。
8.1.2 2ヵ月前

会場の予約確保、開催を決断。
8.1.3 1ヵ月前

この時期にすくなくともテーマの設定をします。講師の確保をしておきます。資料の作成開始
をしておかないと間に合わないでしょう。目処がつきそうだったら、開催のスケジュールを対外的に公表します。参加者にスケジュールの調整をお願いします。

46

8.1.4 1 週間前

宴会の会場選定などを実施します。大体、資料作成のデッドラインです。リマインダーの送付をします。
8.1.5 2 日前

事前課題の文書を事前資料に転記したり、最終的な文書の校正。この時点で資料の印刷用の最終版が作成。
宴会の人数確定。宴会予約。
ただ、二日前に選定するとなると場所が限られる場合が多いので、本当はもっと早い時期がよいです。一般には、確定が早ければ早いほど予約は安くすみます。二日前になっても参加できるかどうかわからないという人がいますが、そういう人の対応は難しいです。店の柔軟な対応に期待
するか、コストをかけるしかないです。しかし、12 月 10 日の宴会も前日で予約できたのであれ
ば、実は当日に急に開催決定するとかいうのでさえなければ何とかなる物なのかもしれないです。
8.1.6 1 日前

資料の印刷をします。Kinko’s にすべてを依頼する場合は場合にもよりますが、半日くらいは見込む必要があります。自分で全部するとしても量によりますが、一時間は見込む必要があります。

Kinko’s にすべてを依頼する場合、部数が少ないとかなり割高になります。*22
8.1.7 当日

資料をもっていきます。司会をします。適当にもりあがります。
宴会も実施します。2005 年は、講師は無料で宴会、ということで運営しました。ただ、ときどきそれでは予算が苦しい場合も多々ありました。なぜか宴会に来ているのに現金をもっていない
人とかの扱いには苦慮します。
予算は、ほぼ確実になんらかの理由でのキャンセルが発生するため、余裕を 20 ％くらい確保できていないと赤字になります。*23

8.2 JDMC のような大きなイベントのワークフロー
Japan Debian Miniconf はまだまだこれから育って行くようなイベントです。今回蓄積できたノウハウだけで今後もうまく開催できるとは思っていません。ただ、今回イベントを開催する上で重要でたりなかった点を列記していきます。

• 連絡先を明確にする。
• 緊急時に判断をできる人を明確にする。
• 連絡網を整備する。
• ディスカッションができて、そこで決定した事項が合意したとみなせる環境をきめてしまう。
たとえば IRC。

*22 A3 の紙に A4 を面付けしてもらい、なかとじホッチキス製本にするとホッチキスだけで 150 円/冊になります。コピーが一面 14 円程度になります。結果として、一冊 450 円程度になる。会費を 500 円しか徴収しないことを考えると、会場費用を考えると確実に赤字になってしまうので注意。
*23 回避策としては、来ない人から徴収するとかいう案も可能性としてはありますが、来ない人から徴収するということは暗黙に開催者が次回その来ない人から徴収する分について肩代りする、ということを意味するため、オーバヘッドが発生することを忘れてはならない。

47

一人ではかぶりきれない責任もあるため、大きなイベントでは、本気で責任をもって開催した
い、と思っている人が複数いる必要があります。
会議の内容をログに残して全員に周知させる係の人が必要です。理想としては、実働部隊と分けられればわけたほうがよいです。JDMC では、ほとんど矢吹さんだけに情報が集中していたはずで、メーリングリスト上ではながれていない情報が多数ありました。もしかすると検討する余裕がなかった項目も多数あったかもしれません。
また、メーリングリストで流れる情報は時系列なので、現在のステータスを一覧で把握できないです。タスクトラッキングが重要になります。
また、全員がどういう方法で情報交換をするのかという点について同意が必要です。メールで主要な情報交換はなされたのだが、一部の主要メンバーの人達がメールをほぼ全く読んでいなかったという問題がありました。
8.2.1 2 年前

参加者が稼動できるように日程を確保します。スポンサーにあたりをつけはじめる。マネージメント層に交渉します。それとなく開催できそうな雰囲気がただよっていることを確認します。
8.2.2 1 年前

一年前か、半年前くらいの時期にスポンサーの予算が大体確定するはずです。講師に関しての予定、参加者の人数、プログラムの大体のイメージが決まっている必要があります。
初の企画でないのなら、前年度のイベントに参加して運営側で何がおきるかを明確にして、会場のサイジングなどをする必要があります。
スポンサーに関しては、通常スポンサーから資金が提供されるのはイベントが終了した後です。
そのため、事前に当面必要な運転資金をどう確保するのかというのも検討しておく必要があります。
また、赤字になることが見込まれるのであれば、計画を中止するという選択も必要です。
8.2.3 6 月前

会場を確保します。宴会場を確保します。
予約システムを整備し、広報します。広報は下記を想定しています。

• マスメディアへの広報• IRC などのくちこみ。#debian-devel@opn など• Blog• DWN への投稿
• メ ー リ ン グ リ ス ト, debian-devel@debian.or.jp, debian-users@debian.or.jp, debiandevel@lists.debian.org• Mixi などのソーシャルネットワーク• Slashdot へ たれこむ
また、GPG サイン会などを実施するのなら事前に充分に準備、広報する必要があります。
8.2.4 1 月前

宴会場の確保、決定が必要です。
参加者の登録が確定しているくらいが本当は好ましいです。人数が足りないのであればがんばっ48

てかきあつめるなどのアクションをとります。
ロジスティックの計画があるので、この時点での人数の把握は重要。
8.2.5 7 日前

宴会場に連絡して、大体の人数を調整。
8.2.6 2 日前

宴会場との調整、当日の人数のより確度の高い情報を提供。
8.2.7 当日

参加者の出欠確認
参加費用の集金を実施します。
スポンサー企業からの提供物を提供します。スポンサーのグッズとかです。
8.2.8 事後

スポンサー企業への報告を作成します。結果報告書を書き上げます。
参加者の報告をまとめてもらいます。来年のイベントに繋げるために重要です。
次回への検討をはじめます。
8.2.9 参考文献

いろいろと他のイベントの報告などもあります。参考になりそうなものを列挙します。

• Joey の LinuxTag レポート http://www.infodrom.org/~joey/Vortraege/2005-06-24/
index.html• Joey の LinuxTag 感謝状 http://www.infodrom.org/~joey/log/?200512020951• Debconf5 Final Report http://lists.debian.org/debian-devel-announce/2005/12/
msg00001.html

8.3 やった内容
やった内容はけっこういろいろありました。最初は一般的なうけをねらったものもありましたが、全体的には技術的な内容を主としています。

• 毎月のクイズ• 最初の数回はグループワーク• バックアップリストアについて• ネットワーク監視• reportbug の使い方
• debhelper• Social Contract• po-debconf• lintian/linda• dpkg-cross• dsys/update-alternatives49• debian-installer• dpatch• toolchain• ITP からアップロードまでの流れ• debconf 2005 参加報告
• Debian JP web の改革• debconf の使い方
• apt-listbugs• debbugs• dpkg-statoverride• Debian Weekly News 日本語翻訳のフロー来た人数は表 2 にあるような数字です。正確な記録は実は残っていないような気がしています。
議事録をあさればわかるのかもしれません。
表2

参加人数 (概算)人数2005 年 1 月

212005 年 2 月

102005 年 3 月 (早朝)82005 年 4 月

62005 年 5 月

82005 年 6 月

122005 年 7 月

122005 年 8 月

72005 年 9 月

142005 年 10 月

92005 年 11 月

82005 年 12 月

8

8.4 おきたトラブル
勉強会を毎月開催する上で発生したトラブルを紹介します。表 3 です。数字はどれくらいの確率でおきたような気がしているかというのをなんとなく気分的に定量的に書いてみました。

8.5 できた内容
事前課題により事前に awareness を向上しました。いろいろと知らないことを積極的に調べる
ことにより講師がその分野に詳しくなるという副作用があります。調査して文章を書いている過程でバグが気に入らないので、バグが直る、ということを若干期待しています。
勉強会をクイズではじめてみんなで発言することにより場を和ませることができたか？と思っています。クイズは、全員に紙で配布して解いてもらわないと、順番にあてる形でやると、一部の回答している人だけが集中して、その他の人が当事者意識をもたないという問題があります

50

表3

発生トラブル

イベント

発生率

パソコンが盗まれる10%

家が水没する

10%

病気で倒れる20%〆切におくれる

20%

なぜか講師のひとと前日まで音信不通

10%

20 分くらいまえに連絡してきて、来れないという参加予定者がいる。 100%
何も連絡なく来ない人がいる

100%

なぜか赤字

40%

(JDMC での失敗)。紙を毎回印刷するコストは大きいですが、それなりに効果もあります。
終ってからの blog へのリンク、議事録の掲載についてはあまり反響が無いです。事前資料のPDF についてはいろいろと blog とかをみているとコメントがあったこともありますが、そちらも反応はあまりないようです。見られているのかどうか不明です。PDF ファイルだからでしょうか？
勉強会の資料を半年分まとめて書籍のような形式にして、Debian 勉強会資料ということで、コミックマーケットにて販売してもらう、という試みをしています。これは、以前 Debian 関係の話題が豊富にはいっていた「Debuan BNU/Linux 不徹底入門」という同人誌があったのですが、それが廃刊になったため、その代替となれることをめざしているためです。

8.6 今後やりたいこと今後は事前の打合せをもっと密にしたいと考えています。

IRC の debianjp チャンネルで偶然いたメンバーで、なんとなく打合せをする、ということはできていました。しかし、最初のころは事実上打合せは上川が電話で呼び出してどっかの飲み屋でする、という手法をとっていました。後半は時間の都合で、ほとんど打合せができていなくて、
前回の勉強会の後の飲み会で決定した内容そのままで次の勉強会にのりこむ感じでした。
事後の処理をなんとかしたい、と考えています。開催した結果をもっと参加していない人にもわかるように効率よくアウトプットできないだろうか、と思っています。
他の人が参加したいと思えるようなアウトプットが出せないだろうか、と考えています。勉強会自体に Debian 関係者が参加したい、と思えるようになることと、Debian にこれから入る人達が参加したい、と思えるようになることが必要だと思います。
来年の提案としてシステムの構築報告、動作検証、というのはどうだろうか。「この組合せはできるだろう」、という組合せに関して、連係はこうやってできる、ということを報告していけば、多くの人がその動作を確認できるようになり、問題も解決していけるでしょう。Debian ユーザの勉強会というのはそういう形になるのではないでしょうか。

Debian 勉強会以外では、おそらく開発に必要な情報についてまとめて情報収集できる場というのが存在しないため、開発に必要な情報については継続してやりたいと考えています。ただ、2 回に一回くらいはそういうユーザよりの情報の検証にあててもよいだろうと考えています。
また、勉強会でいいっぱなしではなく、勉強会の結果何かが起きる、というようにしたい。メン
テナがバグトラッキングシステムにバグをファイルします、というように宣言して、毎月その進捗を報告する、という内容にしてみてもよいかな、と思っています。
51

東京エリア Debian 勉強会 2006

9 Debian 勉強会の事前資料の作成はどうやっ
てやったか
上川

9.1 作成ツール
作成のデータ共有には alioth の cvs を利用しました。
データの編集は上川は emacs+yatex+whizzytex で実施しました。LATEX 処理系として platexを利用しました。PDF の作成は、dvipdfmx を利用しました。
プリビューは dvi ファイルは advi、PDF ファイルに関しては、xpdf を利用しました。
上川の編集環境は Debian sid で、常に開発中の環境だったので、その時期において動かないツー
ルというのもたまにあり、それなりに大変でした。原稿の編集中には apt-get dist-upgrade しないように自制していました。

9.2 LATEX ソース
事前資料は LATEX で作成しました。作業は大きく３種類ありました。

• クイズの作成• 参加事前課題の作成• 勉強会のネタの作成
9.2.1 クイズ

クイズについては、 LATEX のマクロでクイズを作成できるようにして、それを利用して本文を作成しました。

LATEX のソースに下記のように記述すると、\santaku{問題文}{回答 A}{回答 B}{回答 C}{回答}

下記のような出力がでるようになりました。
問題 1. 問題文
□ A 回答 A□ B 回答 B□ C 回答 C

52

また、その出力を latex-beamer*24 で処理をして、プレゼンテーション形式になるようにしました。2005 年 10 月以降、勉強会当日は、それを利用して回答を提示するようにしました。
9.2.2 参加事前課題

メールにて参加者から plain text できたものを気合いで LATEX になおしました。LATEX で使えない文字というのがあるので、それをエスケープすることと、構造文書については、構造を LATEX
用に書き直すという手順が必要です。
例えば、下記のような文章は□ これについて
こんなことをしてみた□ あれについて
あんなことをしてみた□ それについていっぱいしてみた

itemize 環境を利用して下記のような文書になります。
\begin{itemize}\item{これについて} こんなことをしてみた\item{あれについて} あんなことをしてみた\item{それについて} いっぱいしてみた\end{itemize}• これについて こんなことをしてみた• あれについて あんなことをしてみた• それについて いっぱいしてみた
9.2.3 勉強会のネタ

講師の方に直接 LATEX で文書を書いてもらいました。CVS レポジトリは alioth.debian.org でホスティングしてもらったので、そこに共同開発者という形で参加してもらいました。

LATEX のスタイルはほぼそのまま jsarticle を採用しています。ただ、セクションのはじめの部
分だけはみかけを派手にしようとして dancersection というマクロを作って独自に定義しています。各筆者は dancersection 以下に適当に subsection を作って文書を作成する、というルールになっています。
\dancersection{一年間 Debian 勉強会をやってみて}{上川}\label{sec:uekawa}%% 上川の記事はここから\subsection{セクションの名前 }文章がだらだらと続く\subsubsection{セクションの名前 }.
.
.
\subsection{セクションの名前 }.
.
.

9.2.4 URL やメールアドレスの処理\url{http://url...} というように表記しています。また、メールアドレスも環境を定義するのが面倒なので、そのまま\url{メール@アドレス}という形式にしています。
*24 L
AT X でプレゼンテーションを作成するためのスタイル

E53

9.2.5 特殊文字の処理

LATEX でエスケープが必要な文字については表 4 のように対処しています。
表4

特殊文字

文字

名称

表記

˜

チルダ

\~{ }

アンダーライン\underline{ }

#

ハッシュ

\#

%

パーセント

\%

54

東京エリア Debian 勉強会 2006

10 Debconf で開催された会議概要
岩松、矢吹、上川

2006 年の Debian Conference はメキシコで開催されました。日本からは、武藤さん、上川さ
ん、g 新部さん、矢吹さん、岩松が参加しました。
10.1 Debian Conference の過去の経緯
Debian Conferencea は Debian の開発者たちが一同に介するイベントです。通常顔をあわせることのないメンバーたちが一同に介し友好を深め、技術的な議論を戦わせます。過去の開催履歴を見てみると右のようになります。

年

名前

場所

参加人数

2000
2001
2002
2003
2004
2005
2006

debconf 0
debconf 1
debconf 2
debconf 3
debconf 4
debconf 5
debconf 6

フランス ボルドー
フランス ボルドー
カナダ トロント
ノルウェー オスロ
ブラジル ポルトアレグレ
フィンランド ヘルシンキ
メキシコ オアスタペック

90 名
140 名
150 名
200 名
300 名

a http://debconf6.debconf.org/

10.2 会場

今回の Debian Conference の会場は Mexico Cityから車で 2 時間ほど走ったところにある Oaxte-

pec というリゾート地です。オリンピックに使われた会場をそのままリゾートホテルにしているような雰囲気です。Centro Vacacional IMSS

Oaxtepec という会場でした。プールと 10m のとびこみ台などが完備されており、ハック以外にもいろいろとできる感じがしていました。

10.3 会の規模
会議室は 150 人程度入れる会議室が準備されていました。 Hacklab として、二つの部屋があり、それぞれには 50 人づつくらいが入れるようになっていたようです。
今回の参加者は登録記録によると 300 人だそうです。国別の表を次にまとめました*25 。
今回のネットワークは 192.168.x.x で、23 ビットでした。大体 500 台位接続できる計算になりますが、全員接続していた時間帯において DHCP サーバから IP がとれなくなっていました。これは DHCP のプールを使い切っていたのではないでしょうか？ネットワーク自体は近くのネット*25 http://lists.debconf.org/lurker/message/20060518.203936.b6df5950.en.html

55

カフェから無線 LAN で引っ張っていました。さらにこの無線 LAN をハックラボとセッションをするための会議室（通称：タワー）を LAN でつなぐために屋根づたいで有線を引っ張っていました。
セッションも多数ありました。全体として、参加した人数の概要も表にまとめました。

56

国

人数

日

時間

タイトル

MEXICOUNITED STATESVENEZUELAGERMANY
UNITED KINGDOM
ITALY
SPAIN
EL SALVADOR
BRAZILFINLANDFRANCE
COLOMBIA
ARGENTINANORWAYJAPANCANADABELGIUMPERU
BELIZE
SWITZERLAND
SWEDENNETHERLANDSINDIAGREECECAMEROON
AUSTRIA
AUSTRALIA
RUSSIAN FEDERATIONROMANIA
NIGERIABOSNIA AND HERZEGOVINABOLIVIAUKRAINENEW ZEALAND
LATVIAKENYAISRAELIRELAND
INDONESIAGUINEA
GUATEMALAGAMBIAEGYPTCZECH REPUBLIC
CUBA
CROATIA
CHINA
CHILE
CAMBODIABANGLADESH

144
48
31
29
17
17
16
16
16
15
9
8
8
6
5
5
5
4
4
3
3
3
3
3
3
3
3
2
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

2006-05-14 Sunday
2006-05-14 Sunday
2006-05-14 Sunday

11:00-11:45
12:50-13:35
12:50-13:35

2006-05-14 Sunday

15:20-16:05

2006-05-14 Sunday

18:00-19:00

2006-05-15 Monday
2006-05-15 Monday
2006-05-15 Monday

10:05-11:45
10:05-10:50
11:00-11:45

2006-05-15 Monday
2006-05-15 Monday

11:55-12:40
12:50-13:35

2006-05-15 Monday

15:20-16:05

2006-05-15 Monday

16:15-17:55

2006-05-15 Monday

18:00-19:00

2006-05-15 Monday

19:00-20:00

2006-05-15 Monday
2006-05-16 Tuesday
2006-05-16 Tuesday

21:30-22:30
10:05-10:50
10:05-10:50

2006-05-16 Tuesday

11:00-11:45

2006-05-16 Tuesday
2006-05-16 Tuesday
2006-05-16 Tuesday
2006-05-16 Tuesday

11:00-11:45
11:55-13:35
15:20-16:05
16:15-17:55

2006-05-16 Tuesday

18:00-19:00

2006-05-16 Tuesday

19:00-20:00

2006-05-16 Tuesday

21:30-22:30

2006-05-18 Thursday
2006-05-18 Thursday

10:05-10:50
10:05-10:50

2006-05-18 Thursday
2006-05-18 Thursday

11:00-11:45
11:55-13:35

2006-05-18 Thursday
2006-05-18 Thursday

15:20-17:00
17:10-18:50

2006-05-19 Friday

10:05-10:50

2006-05-19 Friday
2006-05-19 Friday

10:05-10:50
11:00-11:45

2006-05-19 Friday

11:55-12:40

2006-05-19 Friday

12:50-13:35

2006-05-19 Friday

12:50-13:35

2006-05-19 Friday
2006-05-19 Friday

15:20-16:05
16:15-17:55

2006-05-19 Friday

21:30-22:30

2006-05-20 Saturday

10:05-10:50

2006-05-20 Saturday

10:05-10:50

2006-05-20 Saturday

11:00-11:45

2006-05-20 Saturday
2006-05-20 Saturday

11:55-12:40
12:50-13:35

2006-05-20 Saturday

12:50-13:35

2006-05-20 Saturday
2006-05-20 Saturday

15:20-16:05
16:15-17:55

2006-05-20 Saturday

19:00-20:00

2006-05-20 Saturday

21:30-22:30

Welcome by DebConf Organizers
wiki.debian.org BoF by Joey HessOpenSolaris, Java dn Debian: can we befriends? Simon Phipps, Alvaro Lopez Ortega
Advanced tools for wasting time by Enrico
Zini
Multithreading: Why and how we should use
it by Ben Huthcings
Python BoF by Andreas Barth et al
Embedding Debian by Wookey
Topper: An Open Source Driver Frameworkby Maxim Alt and Dario Rapisardi
Ubuntu annual report by Mark Shuttleworth
i18n Infrastructure AdHoc Session I by Christian Perrier
Representing Debian - Doing the best for the
best? by Alexander Schmehl
Security Enhanced Linux UML instances - an
Introcution and recipe by Manoj Srivastava
Resurecting Computers with Free Software by
Vagrant Cascadian and Hector Colina
debian-installer and SELinux by Manoj Srivastava
debian-installer BoF by Joey Hessstable release BoF by Andreas Barthideas for repository of meta-information(watchfiles et al) by Filippo Giunchedi
Common Lisp development in Debian by Petervan Eynde
Optimizing boot time by Margarita Manterola
GPLv3 by Don Armstrong
Debian Community Guidelines by Enrico Zini
Let’s port together. Debian fun for everyone
by Peter de Schrijver and Steve Langasek
BoF Debian en Latinoamerica by Anibal Monsalve Salazar and David Moreno Garza
Scratchbox 2, bringing crosscompiling to Debian by Riku Voipio
Webapps Common: Tthe central point in developing a next-generation web server and web
application policy by Neil McGovern
Debian and the $ 100 Laptop by Jim Gettys
Governance of the Debian Project by Bdale
GarbeeX.org status and plans by Keith packard
releasing in time - etch in December 06 by Andreas Barth and Steve Langasek
Debian installer internals by Frans Pop
Weeding out security bugs by Javier
Fernandez-Sanguino
i18n Infrastructure AdHoc Session II by Christian Perrier
AM BoFThe X Community - History and Directions
by Keith Packard
Experiences with large CDD-installations by
Knut Yrvin
LTSP Muekow Next Generation by VagrantCascadian and Octavio H. Ruiz Cervera
the future of the NM process by Christoph
Berg
Packaging shared libraries by Josselin Mouette
Cheap Thrills - Instant inspiration for themasses by Meike Reichle
What’s new and cool with MySQL by Jorge
del Conde
Ubuntu Question and Answer Bof by Mark
Shuttleworth
Alternative developer’s interface to APT:
libapt-front by Petr Rockai
Codes of Value: An Anthropological Analysis
of Hacker Values by Gabriella Coleman
Lightning Talks by Joey Hess et alwww.debian.org redesign by Agnieszka Czajkowska
Debian’s Debugging Debacle: the Debrief byErinn Clark and Anthony Towns
debconf[67] by Andreas Schuldei
state of the art for Debian i18n/l10n by Christian Perrier and Javier Fernandez-Sanguino
Devotee and the temple of Doom by Manoj
Srivastava
zeroconf BoF by Joey Hess

57

参加人数

50
29
92
90
30
28
31
59
122
35
35
100
30
25
38
21
35
8
100
120
120
110
37
12
21

28
57
95
98
60??
47
30
30
70
100
?
75
50
55
?
?
?
?
?
?
?
80
50
?
?

10.4 セッション
Debconf においてのセッションは二種類ありました。 ’Talk’ セッションは 90 分あり、 ’BOF’
セッションは 45 分でした。会場は Tower と Hacklab にわかれていました。今回の会場は不便で、
Hacklab から Tower まで歩いて 20 分くらいかかりました。
10.4.1 Topper - The Expert System ; Device Readiness Framework in Tower

この企画は、ユーザが条件 (機器データ、カーネル、ソフトウェア) データを wikipedia のように持ちよって共有するというものです。ハードウェア互換性情報 (HCL:Hardware CompatbilityList) などからアイディアをもらうというか、利用していくのがよさそうです。
10.4.2 Ubuntu Annual Report

Mark Shuttleworth が Ubuntu, Kubuntu, Edu-ubuntu のこと、これからの計画のことなどをDebian コミュニティ向けに説明していました。
10.4.3 Governance of the Debian Project BOF by Bdale Garbee

Debian Project の歴史を振り返りつつ、DFSG や BTS, Policy Manual について言及し、Debian
Project の構成について説明しました。その後、問題点についてディスカッションしました。
10.4.4 X.org status and plans BOF by Keith Packard

Keith Packard による、X.org の現状と予定についての説明です。Keith Packard は X にすご
く入れ込んでいる人で、彼のページをみると、X に対してすごく貢献していることがわかります。
内容は X の開発方法でした。 コミュニケーションには email と IRC も活用をしているようです。
鍵となるプロジェクトは X Server、AIGLX、 Xgl、 Xlib/XCB など Desktop 関係で X に興味があるなら気になるキーワードがいっぱいありました。

X は、モノリシックな構造からモジュール化の構造へ移行するべく作業中であるとのことです。
Debian は、X.org 7.x 系に移行しました。 Keith Packard が、X.org の i810 driver をハックしたときの事を話してくれました。

X.org のソース管理リポジトリーは、これまで cvs だったけど、 Keith Packard が git に変えたとのことです。
10.4.5 The X Community - History and Directions by Keith Packard

Keith Packard による X のセッション。彼曰く、X Consortium はひどかった。The Open Group
に移管された後、XFree86 が実質的な権限をもっていたそうです。XFree86 は X Consortium に参加するため企業として登録されていたのですが、登録を簡単にするために必要最低限の会則だ
けを最初につくったそうです。この時点では実際は一人で運営されており、最終的に開発者が追放されたり、ライセンスが変更になったりしました。

Xorg になってよかったね、という結論でした。
このプロジェクトの教訓としては• ガバナンス重要• いそいでつくりあげてしまったものは長い間残ってしまう• いろいろと参加して、オープンで居続けるべき58

ということだそうです。
10.4.6 releasing in time - etch in December 06 by Andi Barth and Steve Langasek

Etch のリリースについて、testing へパッケージが入る方法を説明して、Etch に残っている問題を列挙しました。 toolchain、 X.org、 docs-in-main、firmware-in-main、mirror-split AMD64、
secure apt などの問題があるも大体メドはついたとのことです。gcc 4.1, python2.4 も問題です。
QA は自動的にパッケージをインストールする方法について話しがあった模様です。また brintey
へのヒント, 疑似パッケージをリリースノートへ, リリースをするときには、コードネームを使う, ベースのフリーズを短く、細かく, binNMU をもっと活用する、などの提案がありました。
Andreas Barth(aba) の英語は聞きづらくて、よくわかりませんでした。
各アーキテクチャの状態は architecture re-qualification status for etch *26 , 自分のメンテナン
スしているパッケージ状態は Package status *27 で確認することができます。
10.4.7 Debian Installer internals by Frans Pop

GUI ベースの新しいインストーラをみせて、参加者から拍手があがりました。VMware をつかって D-I の説明。D-I の Debug 方法。CDD(Custom Debian Distributions) の話題が出ました。
udeb のことと、D-I(Debian Installer) のことについて説明していました。Debian installer に足りない機能とはなにか？という話しで、ライセンスキーの入力!というジョークを飛ばして会
場の笑いを取っていました。実際にライセンスキー入力モジュールを作成し、udeb の作成方法、
Debian Installer の CD image 作成について例をみせながらやってくれました。
10.4.8 AM(Application Manager) Meeting

AM は、担当者によって対応が異なるという点などをディスカッションしました。議論が白熱して別のセッションが行われる事になりました。矢吹はこのセッションには、自分の AM に会いにいくためだけに参加しました。
10.4.9 The Future of the NM Process

新しい Debian Developer になるための要件やプロセスについてディスカッションしました。

Proposal, Credit: Anthony Towns, Mike Brockschmidt, Get input feedback ということで、まず現在の状況をまとめていました。そして現在の問題点の整理をしました。新しいプロセスは、

ITP、Package 作成、スポンサードアップロードをしたことがあるかどうかということを確認することになるようです。Debian への貢献 (バグ修正や new upstream パッケージ作成など) をどれく
らいしているのか、も尺度になるようです。
10.4.10 Debian’s Debugging Debacle by Erinn Clark and Anthony Towns

一般的なデバッグ手法についてから、Debian 固有のデバッグ方法についてのトークでした。
まず、printf デバッグの良い点は簡単、まずいところはプログラムの実行が遅くなるということを説明していました。その後、 strace デバッグの良い点として OS とプログラムのやりとりがよ
くわかるという点をあげていました。また、ソースコードなどにアクセスしなくてもよいということをあげました。Symbolic デバッグについての Debian でのアプローチは、デバッグを簡単にするよりもバイナリーのサイズを小さくするためにデバッグシンボルをつける付けないは環境変*26 http://release.debian.org/etch_arch_qualify.html*27 http://people.debian.org/~igloo/status.php

59

数を設定して再ビルドするという現状を紹介しました。ELF の DWARF 構造をなんとかして処理したいという話しで、elfutils の debugedit が便利なのだが、フリーではない、どうしたらよいんだ！という話しの展開でした。デバッグにはバイナリパッケージとソースパッケージが両方必要
で、デバッグ情報からソースコードへのリンクをどうするべきなのか、ということを検討していました。
会場から elfutils がフリーになってリリースされたとの情報がでて、場内から拍手が起きていました。
10.4.11 Embedded Debian BOF by wookey

PowerPC/ARM/SuperH について語っていました。 dpkg-cross / cross compile について、どのようにしているのかを話しました。SH も対象ターゲットに入っているということ。SH4 はやってないようですが、SH3 を使って行っているようです10.4.12 100 dollar PC by Jim Gettys

ハードウェアを開発しており、もうすこしで、サンプルボードが出荷されるそうです。ただ、消費電力を少なくするために、白黒の液晶を反射型ではなく透過型を利用するらしく、まだ生産できていないようです。子どもは 5W-10W 程度の電力を発電できるそうで、それで駆動させるために、1W 程度の消費電力におさえているそうです。
ソフトウェアの革命的な変更が必要だ、と主張していました。

CPU は Geode だそうです。
本来はキーを押すたびにスリープから復活するような設計にするつもりだったのですが、そうすると 100ms 程度かかってしまうので、反応が悪すぎてあきらめたそうです。
10.4.13 GPL v3

GPL v3 についての議論をしました。
Debian として GPL v3 の策定に参加しているので、意見があるのなら、コーディネータにメールするようにという事です。
次のドラフトがもうすぐでるので、それに対してまたコメントしましょう、ということでした。
10.4.14 Debian Community Guidelines

Enrico Zini による Debian Community Guidlines。Debian 内のコミュニティに関するガイド
ラインのお話。完璧なものや、ポリシーではなく、効率よく活動できるためにはどうしたらいいのか、というガイドライン。コードを読みながら、話し合おうとか、バグを正確に取って、Upstreamに還元しましょうなどなどの話題でした。
10.4.15 Let’s port together. Debian fun for everyone

Debian を新しいアーキテクチャにポーティングする際の注意点などについて議論しました。エンディアン、C 言語の注意点、アライメントについてや、CPU , 周辺機器についての話題がありました。いっしょにポーティングしましょう、ということが言いたかったようです。
10.4.16 Packaging shared libraries by Josselin Mouette

Josselin Mouette(joss) が shared library のパッケージングについて話しました。みんなは本当に、ちゃんと shared library のパッケージ方法、メンテナンス方法知っているのか？こうやってや60

るんですよ、と話してくれました。
例えば、ライブラリで ABI の変更があった場合、そのパッケージに依存するパッケージは再ビルドが必要で、shlibs ファイルを適正に生成するために dh_makeshlibs -V’hogehoge (>=0.0.1)’
等を行う必要があります。また、リリースするタイミングはライブラリのメンテナ次第なので、手助けしましょうと言ってました。
彼はアニメ好きのようで、壁紙が舞-乙 HiME でした。Joss と話すと、舞-乙 HiME がお気に入りということがわかりました。
10.4.17 Codes of Value: An Anthropological Analysis of Hacker Values by Gabriella Coleman

Biella Coleman が自分の社会学の研究成果について説明していました。Debian を研究してドクターをとったそうです。
10.4.18 translation/i18n BOF

3 回に及ぶ BOF でした。翻訳についての現状とこれからについて議論していました。
初回は、ロゼッタのことで盛り上がりました。Rosetta などの既存の新しいツールでは解決できない問題、これからどうしていきたいのか、と言う事について話し合われました。
10.4.19 Lightning Talk

• Actively Discovering bugs/issues with packages• Walkthrough : Make your Country love Debian• Debian in the greater Linux ecosystem• WNPP: Automatizing the unautomatizable• How far can we go with a collaborative maintenance infrastructure• How to get debian-admin to help you• Learning from Gentoo• Datamining on Debian packages metadata• Tracking MIA developers• How to pronounce Jeroen van Wolﬀelaar, and other names
ライトニングトーク。Gentoo を見習って、ドキュメントとか整備しろ！とか、上川 純一という名前は言いにくいなどの話題が出ました。
10.4.20 debconf67 BOF

結論が出ませんでした。
各サイトの担当者が発表し、情報を比較しました。イギリスとボズニアが候補のようです。

10.5 キーサインパーティ
Debconf の醍醐味のひとつである、Key Sign party を行いました。今回は 140 人ほど集まり、
2 時間かけてせっせと Key Sign しました。
矢吹さんがチェックサムを間違えて*28 、半分ぐらいの人しか Key Sign できなかったのはここだけの秘密です。
*28 最新のキー一覧を取得して計算してなかったのが敗因です。コーディネータが数字を読み上げた時に、かなり焦りましたが、もう一度取得

しなおして再計算したら合ったので入れてもらいました by yabuki

61

10.6 参考文献参考になる過去の文献を列挙します。

• 後藤さん、2005 年の報告: http://gotom.jp/~gotom/pub/Debconf5/• 後藤さん、2004 年の報告: http://www.gotom.jp/~gotom/linux/Debconf4/• 鵜飼さん、2003 年の報告: http://ukai.jp/Slides/2003/0725-fsij/• 上川等、2006 年に検討している Debconf 日本開催 Wiki ページ http://wiki.debian.org/
DebConfInJapan• 武藤さん等、2005 年に検討した Debconf 日本開催 Wiki ページ http://kmuto.jp/open.
cgi?debconf-in-japan

62

東京エリア Debian 勉強会 2006

11 pbuilder cowdancer cowbuilder上川

cowbuilder は Debian の QA のためのツールです。今回 Debconf の会場で開発しました。基
本となるメカニズムである cowdancer 自体は Finland での Debconf (2005 年) で開発を開始しましたが、当時から構想をねっていた cowbuilder に着手し完了したのは、 Mexico での Debconf(2006 年) でした。
本論文では Debian の QA 用のツールである pbuilder とファイルシステムを copy-on-write
的に利用するためのツールである cowdancer の説明をして、その後その二つを組み合わせたアプ
リケーションである cowbuilder の説明をします。
11.1 pbuilder とは
まず、cowbuilder のベースになっている pbuilder について紹介します。

pbuilder*29 は Debian パッケージのビルドテストをクリーンルーム環境 (chroot) で実施する
ことが簡単になるようにつくられたツールです。chroot 環境を利用すると、いろいろな試験を実施することができますが、実はバージョンを最新にする手間とか、最小のパッケージをインストールするための手間などが結構かかります。特に、いつでも最新版の Debian をインストールできる必要があるため、ときおりトラブルが起き、その問題を解決する必要があります。そこで、

chroot 管理に関連した QA 作業を集中してスクリプト化しておき、このスクリプトさえ使えばいつでも動くようにしてしまおう、という目論見ではじめたのが pbuilder です。
ここで解説している対象はバージョン 0.155 です。
pbuilder build パッケージ.dsc ファイル コマンドを利用すると、tar.gz から chroot を展開して、その中で Debian パッケージをビルドしてくれます。ビルドに必要な依存関係はdebian/control ファイルの Build-Depends フィールドと Build-Depends-Indep フィールドを参考に apt-get install でインストールしてくれます。
pbuilder create は Debian の初期インストールイメージを作成し、tar.gz として管理します。--basetgz オプションを利用すれば、tar.gz ファイルを指定できます*30 。--distribution
オプションでディストリビューション (etch/sarge/sid) を指定することができるので、各バージョン用の chroot 環境を作成することができます。通常は unstable 対象に開発作業を実施するので、 sid がデフォルトです。
pbuilder update は Debian の初期インストールイメージを最新版の状態に更新します。
Debian unstable は一日一回新しいバージョンがリリースされてしまうので、一日に一回実行する*29 http://pbuilder.alioth.debian.org/, http://www.netfort.gr.jp/~dancer/software/pbuilder.html.ja*30 デフォルトは/var/cache/pbuilder/base.tgz

63必要があります。

pdebuild は、一般ユーザ権限で、カレントディレクトリが Debian パッケージのソースディ
レクトリの中*31 の場合に、 sudo コマンドを利用して root 権限に昇格し、Debian のソースパッ
ケージの作成から chroot 環境でのパッケージビルドまでの一連の動作を自動化してくれます。
ここから、pbuilder create, pbuilder update, pbuilder build, pdebuild のそれぞれの実行時のログの例を紹介します。
# pbuilder update --mirror http://ftp.jp.debian.org/debian --override-config --distribution sid
W: /home/dancer/.pbuilderrc does not exist
Upgrading for distribution sid
Building the build Environment-> extracting base tarball [/var/cache/pbuilder/base.tgz]-> creating local configuration-> copying local configuration-> mounting /proc filesystem-> mounting /dev/pts filesystem-> policy-rc.d already exists-> Installing apt-lines
Refreshing the base.tgz-> upgrading packages
Get:1 http://ftp.jp.debian.org sid Release.gpg [189B]
Get:2 http://ftp.jp.debian.org sid Release [38.3kB]
Ign http://ftp.jp.debian.org sid Release
Get:3 http://ftp.jp.debian.org sid/main Packages [4030kB]
Fetched 4069kB in 4s (904kB/s)
Reading package lists... Done
W: GPG error: http://ftp.jp.debian.org sid Release: Could not execute ’/usr/bin/gpgv’ to verify signature(is gnupg installed?)
W: You may want to run apt-get update to correct these problems
dpkg - warning: ignoring request to remove lilo which isn’t installed.
Obtaining the cached apt archive contents
Reading package lists... Done
Building dependency tree... Done
Calculating upgrade... Done
The following NEW packages will be installed:
cpp-4.1 g++-4.1 gcc-4.1 libstdc++6-4.1-dev tasksel-data
The following packages will be upgraded:
apt apt-utils aptitude bsdutils coreutils cpio cpp cpp-4.0 debconf
[中略]
wget
77 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 25.4MB/49.3MB of archives.
After unpacking 25.4MB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
bsdutils dpkg coreutils debianutils diff libc6-dev tzdata libc6 e2fslibs[中略]
libgnutls12 telnet dhcp3-client dhcp3-common
Get:1 http://ftp.jp.debian.org sid/main dpkg 1.13.21 [1569kB][中略]
Get:41 http://ftp.jp.debian.org sid/main telnet 0.17-32 [72.1kB]
Fetched 25.4MB in 17s (1423kB/s)
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 12009 files and directories currently installed.)
Preparing to replace bsdutils 1:2.12r-9 (using .../bsdutils_1%3a2.12r-10_amd64.deb) ...
Unpacking replacement bsdutils ...
Setting up bsdutils (2.12r-10) ...
[中略]
Preparing to replace libgpg-error0 1.2-1 (using .../libgpg-error0_1.2-1_amd64.deb) ...
Unpacking replacement libgpg-error0 ...
[中略]
Setting up libc6-dev (2.3.6-15) ...
[中略]
Setting up dpkg-dev (1.13.21) ...
Reading package lists... Done
Building dependency tree... Donebuild-essential is already the newest version.
dpkg-dev is already the newest version.
apt is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Copying back the cached apt archive contents[中略]-> new cache content libgnutls12_1.2.11-1_amd64.deb added-> unmounting dev/pts filesystem-> unmounting proc filesystem-> creating base tarball [/var/cache/pbuilder/base.tgz]-> cleaning the build env-> removing directory /var/cache/pbuilder/build//2252 and its subdirectories*31 debian/ ディレクトリがある場所

64

$ sudo pbuilder build ~/pending/20060531/pbuilder_0.154.dsc
W: /home/dancer/.pbuilderrc does not exist
I: using fakeroot in build.
pbuilder-buildpackage/amd64 Id: xxxx
Id: xxxx
Current time: Sat Jun 10 23:42:44 JST 2006
pbuilder-time-stamp: 1149950564
Building the build Environment-> extracting base tarball [/var/cache/pbuilder/base.tgz]-> creating local configuration-> copying local configuration-> mounting /proc filesystem-> mounting /dev/pts filesystem-> policy-rc.d already exists-> created buildresult dir :/var/cache/pbuilder/result/
Obtaining the cached apt archive contents
Installing the build-deps-> Attempting to parse the build-deps : pbuilder-satisfydepends,v 1.28 2006/05/30 23:45:45 dancer Exp $-> Considering debhelper (>= 4.1.0)-> Trying debhelper[中略]-> Installing debhelper docbook-xsl ldp-docbook-xsl xsltproc
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:[中略]
0 upgraded, 14 newly installed, 0 to remove and 1 not upgraded.
Need to get 2643kB/5118kB of archives.
After unpacking 23.1MB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
libmagic1 file html2text gettext intltool-debian po-debconf debhelpersgml-base xml-core docbook-xsl ldp-docbook-xsl libxml2 libxslt1.1 xsltproc
Get:1 http://ftp.jp.debian.org sid/main libmagic1 4.17-1 [277kB][中略]
Get:10 http://ftp.jp.debian.org sid/main xsltproc 1.1.17-1 [100kB]
Fetched 2643kB in 2s (953kB/s)
Selecting previously deselected package libmagic1.
(Reading database ... 12605 files and directories currently installed.)
Unpacking libmagic1 (from .../libmagic1_4.17-1_amd64.deb) ...
Selecting previously deselected package file.
[中略]Setting up xsltproc (1.1.17-1) ...
-> Finished parsing the build-deps
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:fakeroot[中略]
Copying source file-> copying [/home/dancer/pending/20060531/pbuilder_0.154.dsc]-> copying [/home/dancer/pending/20060531/pbuilder_0.154.tar.gz]
Extracting source
su: Authentication service cannot retrieve authentication info.
(Ignored)dpkg-source: warning: no utmp entry available and LOGNAME not defined; using uid of process (1234)
dpkg-source: warning: could not verify signature on ./pbuilder_0.154.dsc since gpg isn’t installed
dpkg-source: extracting pbuilder in pbuilder-0.154
dpkg-source: unpacking pbuilder_0.154.tar.gz-> Building the package
su: Authentication service cannot retrieve authentication info.
(Ignored)dpkg-parsechangelog: warning: no utmp entry available and LOGNAME not defined; using uid of process (1234)
debian: warning: no utmp entry available and LOGNAME not defined; using uid of process (1234)[中略]fakeroot debian/rules clean[中略]debian/rules build[中略]-> unmounting dev/pts filesystem-> unmounting proc filesystem
Current time: Sat Jun 10 23:43:47 JST 2006
pbuilder-time-stamp: 1149950627-> cleaning the build env-> removing directory /var/cache/pbuilder/build//10498 and its subdirectories

65

$ pdebuild
W: /home/dancer/.pbuilderrc does not exist
dpkg-buildpackage: source package is pbuilder
dpkg-buildpackage: source version is 0.155
dpkg-buildpackage: source changed by Junichi Uekawa <dancer@debian.org>
dpkg-buildpackage: source version without epoch 0.155
fakeroot debian/rules clean
dh_testdir
dh_testrootrm -f build-stamp configure-stamp# Add here commands to clean up after the build process.
/usr/bin/make clean
make[1]: Entering directory ‘/home/dancer/cvscheckout/external/pbuilder/pbuilder’
rm -f *.bak *~ TAGS
rm -f testsuite/testimage
rm -rf testsuite/testbuild testsuite/testbuild2
make[1]: Leaving directory ‘/home/dancer/cvscheckout/external/pbuilder/pbuilder’
rm -rf debian/pbuilder-uml/
dh_cleandpkg-source -b pbuilder
dpkg-source: warning: source directory ‘./pbuilder’ is not <sourcepackage>-<upstreamversion> ‘pbuilder-0.155’
dpkg-source: building pbuilder in pbuilder_0.155.tar.gz
dpkg-source: building pbuilder in pbuilder_0.155.dsc
dpkg-genchanges -S
dpkg-genchanges: including full source code in upload
dpkg-buildpackage: source only upload: Debian-native package
W: /home/dancer/.pbuilderrc does not exist
I: using fakeroot in build.
pbuilder-buildpackage/amd64 Id: xxxx
Id: xxxx
Current time: Sat Jun 10 23:49:35 JST 2006
pbuilder-time-stamp: 1149950975
Building the build Environment-> extracting base tarball [/var/cache/pbuilder/base.tgz]-> creating local configuration-> copying local configuration-> mounting /proc filesystem-> mounting /dev/pts filesystem-> policy-rc.d already exists-> created buildresult dir :/var/cache/pbuilder/result
Obtaining the cached apt archive contents
Installing the build-deps[中略]dpkg-buildpackage: full upload; Debian-native package (full source is included)
Copying back the cached apt archive contents-> unmounting dev/pts filesystem-> unmounting proc filesystem
Current time: Sat Jun 10 23:50:38 JST 2006
pbuilder-time-stamp: 1149951038-> cleaning the build env-> removing directory /var/cache/pbuilder/build//13247 and its subdirectories

11.2 cowdancer とは
cowdancer*32 はディレクトリをハードリンクでコピーしておけば、ファイルに書き込みが発生する段階でハードリンクの関係を破壊してくれる、というツールです。大きなディレクトリツリー
を作業用にコピーして、作業したあとは捨てる、と言うような利用方法の場合、実際にコピーす
ると書き込み量が大きく、待たされます。また全てのファイルを変更するわけではなく、一部のファイルしか書き換えないので、書き換える段階になってから実物をコピーしたほうが効率良い
場合があります。そのような用途に利用します。

GNU の cp コマンドであれば、 cp -al でコピーをすると、ファイルを全部コピーするかわりに全てのファイルをハードリンクでコピーしてくれます。cp -al でコピーしたツリーに対して、
cow-shell コマンドで起動したシェルの中で作業すればよいです。
例えば、下記のような作業をしても、linux-2.6 ディレクトリの中身には影響を与えません。
また、cp -a コマンドでコピーするのに比べると格段に速いです。

*32 http://www.netfort.gr.jp/~dancer/software/cowdancer.html.ja

66

$ cp -al linux-2.6 linux-2.6-work$ cd linux-2.6-work$ cow-shell
Invoking /bin/bash$ vi .config[作業]$ exitexit$ cd ../$ rm -rf linux-2.6-work

11.3 cowbuilder とは
cowbuilder は cowdancer を利用して pbuilder を高速化したツールです。pbuilder は便利ですが、Debian のインストールイメージの .tar.gz を毎回展開しているため、遅いという重大な欠点がありました。.tar.gz のかわりに作業用のツリーを展開した状態で保持しておき、cowdancer
を利用して、ハードリンクを毎回利用するようにしたところ、. .tar.gz の展開の部分が省略されたため、高速になりました。

11.4 cowbuilder の使い方
ここで解説している対象はバージョン 0.17 です。

cowbuilder --build パッケ ー ジ.dsc ファイ ル コ マ ン ド を 利 用 す る と 、Debian パッケ ー
ジ を cowbuilder 環 境 の chroot 内 部 で ビ ル ド し て く れ ま す。ビ ル ド に 必 要 な 依 存 関 係 は
debian/control ファイルの Build-Depends フィールドと Build-Depends-Indep フィールドを参考に apt-get install でインストールしてくれます。
cowbuilder --create は Debian の初期インストールディレクトリを作成します。今後はそのディレクトリを chroot で活用することになります。--basepath オプションを利用すれば、ディレクトリを配置する場所を指定できます。*33 。--distribution オプションでディストリビュー
ション (etch/sarge/sid) を指定することができ、各バージョン用の chroot 環境を作成することができます。通常は unstable 対象に開発作業を実施するので、 sid がデフォルトです。
cowbuilder --update は Debian の初期インストールイメージを最新版の状態に更新します。
Debian unstable は一日一回新しいバージョンがリリースされてしまうので、一日に一回実行する必要があります。

pdebuild --pbuilder cowbuilder は、一般ユーザ権限で、カレントディレクトリが Debian
パッケージのソースディレクトリの中*34 の場合に、 sudo コマンドを利用して root 権限に昇格
し、Debian のソースパッケージの作成から chroot 環境でのパッケージビルドまでの一連の動作を自動化してくれます。

11.5 cowbuilder 実行時間計測結果
計測してみた例 (秒) を表にしてみました。計測に利用したマシンは 2006 年 5 月時点ころのDebian GNU/Linux sid Apple iBook G4 ppc 1GHz です。

*33 デフォルトは/var/cache/pbuilder/base.cow*34 debian/ ディレクトリがある場所

67

pbuilder cowbuilder speed
update150
16
10xbuild (N/W down)
80
18
5x
build (pbuilder)
177
86
2x
login
80
4
20x
オペレーション

update は pbuilder update と cowbuilder --update の比較です。あきらかに tar.gz を展開して再度作成するコストがなくなるので高速になります。一日一回は実施するコマンドなので、高速化するメリットはあるでしょう。

build (N/W down) は pbuilder build と cowbuilder --build をネットワーク接続がない状態で実行した場合です。これは依存関係を満たすためのパッケージの取得ができなかった場合の時間を計測しています。ビルド環境を作成して削除するまでの純粋な時間を計測しています。

build (pbuilder) は pbuilder パッケージを pbuilder build と cowbuilder --build でそれぞれビルドした場合の例です。パッケージのインストール処理自体が動くとその処理に時間がかかるので、差が縮まっているのがわかります。でも二倍高速化しています。

login は pbuilder login と cowbuilder --login でそれぞれログインしてすぐに exit するまでの時間を計測しました。ちょっとしたコマンドを試したりテスト環境を構築するのに login をすることが多いのですが、その状況で一分待たせるのか、4 秒しか待たないのか、というのでは大きな差が出て来ます。

11.6 cowbuilder の今後の課題
debuild を利用してパッケージをビルドする時間と比較してみると、実はまだまだ高速化できる余地はあります。apt-get でベースインストールイメージから Build-Depends をそろえる部分
にて、時間を取られていることもあり、また、ext3 ファイルシステムを利用している場合、ハードリンクしたツリーの rm -rf が結構遅いこともあります。今後の方策としてはいろいろありま
すが、たとえば下記が考えられます:• 各パッケージ向けのインストールイメージのキャッシュ。Build-Depends の解析は一パッ
ケージ一日一回ですむようにして、ビルドツリーのキャッシュを保持しておく。

• apt-get install を高速化する, dpkg -i を高速化する, dpkg をデーモン化させ、apt-get
からはデーモンを呼ばせる• ext3 ファイルシステムの削除ルーチンの高速化、もしくは高速な削除ができるファイルシ
ステムへの移行。

apt-get install の高速化は日常的な管理のオペレーションにとっても利点があるので、そちらを注目して作業してみるとよいでしょう。

68東京エリア Debian 勉強会 2006

12 Debian Weekly News trivia quiz
上川 純一

ところで、Debian Weekly News (DWN) は読んでいますか？Debian 界隈でおきていることについて書いている Debian Weekly News. 毎回読んでいるといろいろと分かって来ますが、一人で読んでいても、解説が少ないので、意味がわからないところもあるかも知れません。みんなでDWN を読んでみましょう。
漫然と読むだけではおもしろくないので、DWN の記事から出題した以下の質問にこたえてみてください。後で内容は解説します。

12.1 2005 年 46 号
http://www.debian.org/News/weekly/2005/46/ にある 11 月 15 日版です。
問題 2. Debian armeb の進捗はどうか□ A やっと gcc/glibc/binutils が移植された□ B ほとんどのパッケージが移植されている□ C まだ起動もしていない問題 3. DevJam で Java の現状について議論があった。その際の認識はどうだったか□ A まだフリーな java で全てを実装できていないので、動かないものがある□ B フリーな Java は充分利用できる状況で、それだけで全てが充足できる。
□ C フリーな Java は全く利用出来ない状態
問題 4. Clam Antivirus について Marc Haber が発表したのは□ A 15 分毎に更新を確認して、あたらしくなっていたら自動で volatile.debian.net にアップロー
ドする□ B 更新は手動で確認して、メンテナが暇なときにアップデートする。新しいデータを常に欲し
い人は、頑張って自分でアップデートすること。
□ C データ量が多いため、更新はしないので、各自がんばって更新してください。

69

問題 5. debian-installer etch beta が出ました。Joey Hess がこんなに時間がかかったことについて言明したのは□ A めんどくさかったので放置していたので、こんなに時間がかかりました□ B １０位の項目についてそれぞれで３日づつ遅延要因になるため、一月くらいは遅れるはめになる□ C ちゃんとハックできる人が参加していないので、コードの品質が下がったため、こんなに時間がかかりました。
問題 6. SugarCRM は MPL1.1 をベースとしたライセンスで配布されている。そのライセンスはフリーだろうか□ A MPL は Mozilla のライセンスなので、その時点でフリーだ□ B ウェブページにフリーソフトだ、と書いてあるので、フリーだ。
□ C 改変した場合に名前を利用できないことになっているので、名前を変更すればよいだろう
問題 7. Debconf の発表資料を DFSG フリーにしようという提案について Anthony Towns がした反論は□ A ML でのスレッドなど DFSG フリーでないコンテンツは多数ある。全てがそうである必要はない。
□ B ライセンスなんてつけるだけ無駄なので、つけないほうがよいでしょう。
□ C あらゆるものは DFSG フリーどころか、全部 GPL であるべきなので、GPL 以外のライセンスは考えるのもおこがましい。
問題 8. Gabor Gombas さんが、複数の-dev パッケージが conflict することについて苦情を出した。その対応は□ A -dev パッケージがインストールできないのは問題なので、上流のやっている内容を改変して共存できるようにするのがよい□ B openssl と gnutls をまぜるほうがライセンス的に適切なので、両方がリンクされたパッケー
ジを作る□ C include ファイルのパスなどは開発用の API の一部であり、同じパスを利用する複数の-dev
パッケージは conflict して当然だ。
問題 9. ping が Linux 専用である点についての議論で、FreeBSD や Hurd でも動作させるためにパッチを適用することに対してはどういう意見が出たか□ A 今後の Debian の一貫性を維持するためにはするべきだ□ B ping なんて BSD 上でははやらないのでなくしてもよい□ C あきらかに fork しているため、メンテナンスが大変になる

12.2 2005 年 47 号
http://www.debian.org/News/weekly/2005/47/ にある 11 月 22 日版です。

70

問題 10. Matthias Klose が g++ について発表したのは何か□ A g++ は今後 D 言語用のコンパイラによって置き換えられるので、C++ なんて古い言語をつかうのはもうやめろ□ B g++ のメモリアロケータが変わるため、また g++ で生成されたライブラリの ABI が変更になる□ C g++ は最適化するために今後はマクロの展開処理を省略する。そのために文法が若干変更になる
問題 11. Anthony Towns が -private メーリングリストについて提案したのは□ A 3 年たったら一般公開する□ B 存在自体を抹消する□ C 即時公開メーリングリストにする問題 12. Branden Robinson が DPL について何ができるかという説明文を発表した。その条文はいくつあるか□A3□ B 10□ C 120
問題 13. Enrico Zini が発表した新しい検索エンジンでは何をもってパッケージを検索できるか□ A 2ch の過去ログ情報を用いて検索□ B debtags 情報を使って検索□ C popcon の利用頻度情報を使って検索問題 14. Ian Jackson が提案したのは何か□ A パッケージの自動テストのためのスクリプトインタフェース□ B パッケージを受け入れるときのための基準□ C パッケージの品質をあげるための魔法
問題 15. Christopher Berg が発表した、メンテナ向けのパッケージ一覧ページの新機能でないのは□ A パッケージがどれくらい人気あるのかということを確認できる□ B パッケージがどれくらいよい品質なのかが確認できる□ C 一覧で確認できるパッケージを任意に追加できる
問題 16. PHP ライセンスについて Steve Langasek の考えは□ A PHP を使うこと自体がまず問題だ□ B PHP 自体については問題ないが、PHP 以外にそのライセンスを適用するのには問題がある□ C PHP ライセンスは本当に DFSG フリーなのかどうかはグレーだ

12.3 2005 年 48 号
http://www.debian.org/News/weekly/2005/48/ にある 11 月 29 日版です。
71

問題 17. Freetype に関して何が起きる、と Steve Langasek は宣言したか□ A 誰も使っていないので、パッケージを削除する□ B ABI に変更があったので、5 のパッケージが移行する必要がある□ C ABI に変更があったので、600 のパッケージが移行する必要がある。
問題 18. sbuild の最新版はバージョンが 1.0-1 のパッケージに対しての binary NMU 番号をどうつけてくれるようになったか□ A 1.0-1+b1□ B 1.0-1.1□ C 1.0-1.0.1
問題 19. Frank Küster は、パッケージの conﬃle への変更の反映を管理者が拒否し、その結果 postinst が失敗になることについて、問題ないだろう、と質問した。それに対しての Petter

Reinholdtsen の対応は
□ A そういうエラーは管理者が拒否するのが問題なので、管理者を日勤教育するべきだ□ B そのような問題は存在しない□ C そういう場合には、設定ファイルを動作に必須なものとローカルで管理者がオーバライドする部分とに分離することを提案する
問題 20. vserver は何をするものか□ A chroot などの技術を応用し、複数の仮想サーバコンテキストを作成してくれて、Linux 上で複数のサーバを仮想的に提供できる□ B サインは□ C サーバの統合管理のためのツール

12.4 2005 年 49 号
http://www.debian.org/News/weekly/2005/49/ にある 12 月 6 日版です。
問題 21. Manoj Srivastava が GR の議論期間を宣言した。今回の議論は何についてか□ A -private メーリングリストの一般公開について□ B -devel メーリングリストの秘密化について□ C -mentors メーリングリストの会員制化について問題 22. テンポラリディレクトリについての議論があり、ユーザ毎にテンポラリディレクトリを持つことがよいのではないかという結論が出た。ユーザ毎にテンポラリディレクトリを持つ際にその機能を実装してくれるのは□ A /etc/profile でテンポラリディレクトリの作成□ B init スクリプトでのディレクトリの作成□ C pam-tmpdir という PAM モジュール72

問題 23. C++ のメモリアロケータの移行でまだ移行できていない、ということでさらしあげになった日本の開発者は□ A mhatta さんと土屋さん□ B gniibe さんと鵜飼さん□ C えとーさんと岩松さん
問題 24. パッケージがどのバージョン (unstable, stable, testing) 用に作成されたのかを確認する
簡単な方法がないか、という質問に対しての Marc Brockschmidt の回答は何だったか□ A パッケージのバージョン番号を見ればわかる□ B パッケージの changelog を見ると、どのバージョン用にビルドしたのか、ということは確認できる。
□ C Debian のパッケージはほとんど全てが一旦は unstable にあったことがあり、testing とstable に入るため、パッケージがどれ用につくられるというものではない。

12.5 2005 年 50 号
http://www.debian.org/News/weekly/2005/50/ にある 2005 年 12 月 13 日版です。
問題 25. www.skolelinux.org について提案されていないことはどれか□ A バグトラッキングシステムを共有する□ B 関係者の blog を planet でアグリゲートしたりする□ C こっそりと人を誘拐してメンバーを増やす
問題 26. Branden Robinson が Tuxjournal でのインタビューで、Debian の成功に貢献したものとしてあげたのは□ A 自由なライセンスを強調する人達とソフトウェアの品質を強調する人達がそれぞれ貢献できてきたこと□ B Ruby をがんがんつかってコードを書いた事□ C お互いに仲のわるい開発者たちが足をひっぱりあいながらお互いを潰しあっていたこと問題 27. GPL でリリースされているゲームボーイ用のエミュレータは main にいれてもよいのか□ A フリーのゲームを開発しているグループがあるため、main にいれてもよい□ B ゲームは商用のゲームしか存在しないため contrib にいれる必要がある□ C エミュレーションという不純な動作は non-free にあるべきだ
問題 28. パッケージを実行用のパッケージ pkg と データ用のパッケージ pkg-data に分割する場
合の確認項目について Bill Allombert は投稿した。そこで説明していなかったのは□ A パッケージ名は pkg と pkg-data にしてほしい□ B pkg-data は architecture: all にしてほしい□ C pkg-data のサイズは 5MB を越えていることが望ましい

73

問題 29. tetex の設定ファイルについて Frank の提案したのは？
□ A /usr/share/texmf にデフォルトがあり、/etc/texmf にアドミニストレータの設定があり、HOME/texmf に各ユーザの設定がある構成□ B Debian メンテナが一番偉いのでユーザの設定を無視して、世界統一の設定にすること□ C Debian menu システムの設定システムが優秀なので、それをそのまま採用すること

12.6 2005 年 51 号
http://www.debian.org/News/weekly/2005/50/ にある 2005 年 12 月 20 日版です。
問題 30. debianforum.de は開始何年たったか□ A 3年□ B 4年□ C 5年
問題 31. Jaldhar H. Vyas はインドでは通信コストが高いため、雑誌に付録 DVD として Debianを付けたいと提案しました。ただ、複数枚はコストがかかるので、DVD １ 枚におさめたいと説明しました。Joerg Jaspert の回答は
□ A Cebit などの展示会で利用するためにすでに作成したことがあるので結構簡単だよ、と回答した□ B そんなものつくることがおこがましい□ C ソースだけだったら１枚でもいけるかも問題 32. lsb 向けの起動スクリプトの利用方法について検討していた際に、エラーが発生した場合にコマンド自体のエラーが画面に出力されて表示がみだれた。この問題に対して提案された解決
策は□ A エラーは/dev/null へ□ B エラーなんておきないようにする□ C エラーなどを syslog に送信してみる
問題 33. dpkg-sig を利用して Debian パッケージに電子署名を追加することができる。最近

dpkg-sig の署名を含む Debian パッケージが Debian archive にアップロードできなくなっていた。
その理由は□ A dpkg にそんな機能拡張はしてはいけないという主義主張の問題□ B 予期しない原因で jenniﬀer のチェックが厳しすぎたため□ C 実は dpkg-sig なんてものはなかった
問題 34. TexLive パッケージのライセンスで Joerg Jaspert がおかしいと指摘したのは□ A Live という名前がダメだ□ B tex は時代遅れです□ C DFSG という謎のライセンスを利用している部分が存在した

74

12.7 2005 年 52 号
http://www.debian.org/News/weekly/2005/52/ にある 12 月 27 日版です。
問題 35. Norbert Tretkovski は、backports.org で何がおきたと発表したのか。
□ A backports.org が etch に対応した□ B backports.org のメンテナンスをあきらめた□ C backports.org が sarge に対応した問題 36. http://wiki.debian.org/StatusOfUnstable は何を説明してくれるページか□ A 現状の unstable で何がおきているのかをまとめている wiki ページ□ B unstable であるということはどういうのかといういことを熱く語るスレッド□ C 今どういうことが unstable になりえるのかということを解説しているページ
問題 37. Kevin Locke が発表した powermgmt プロジェクトは何をするものか□ A Debian の中での共通の電源管理用のインフラを提供することを目標とする□ B ハックに必要な栄養の補給方法について検討することを目標とする□ C 権力をいかに分配するのかということについて検討することを目標とする

12.8 2006 年 1 号
http://www.debian.org/News/weekly/2006/01/ にある 1 月 3 日版です。
問題 38. Debian パッケージを圧縮しなおすことで一番小さくできたのはどの圧縮ソフトウェアか□ A gzip□ B bzip2□ C 7-zip
問題 39. apt-torrent は何をするものか□ A apt 風のインタフェースで bittorrent を利用できるツール□ B apt のパッケージダウンロードを bit-torrent 経由で実行するためのツール□ C 海流予測用ツール
問題 40. vim-tiny は何をするものか□ A nvi のかわりにデフォルトにするためにつくられた□ B ただ vim を小さくしてみました□ C vim の機能はむだなものが多いので、普通いらないだろうというものだけにしてみた問題 41. Lars Wirzenius の提案したのは何か□ A Debian の品質改善のための提案□ B Debian のパッケージ削減のための提案□ C Debian の利用方法の改善のための提案

75

12.9 2006 年 2 号
http://www.debian.org/News/weekly/2006/02/ にある 1 月 10 日版です。
問題 42. Technical Committee に参加した新メンバーは誰か□ A Steve Langasek, Anthony Towns, と Andreas Barth□ B Wichert Akkerman, Jason Gunthorpe, と Guy Maor
□ C Branden Robinson, Kenshi Muto, と Goto Masanori
問題 43. カーネルに存在していた non-free firmware blob については現状どうなっているか□ A 進展がない□ B ライセンスを変更することで全て対処した□ C request firmware というフレームワークによりユーザ空間に移動した
問題 44. apt-get update で gpg エラーが発生した、これは何か□ A Debian のアーカイブに侵入されたため□ B Debian アーカイブ署名キーが毎年かわるため、2006 年用のものに変更する必要があった□ C gpg はもうサポートされていない

12.10 2006 年 3 号
http://www.debian.org/News/weekly/2006/03/ にある 1 月 18 日版です。
問題 45. coldfire とはどういう CPU か□ A ヒートシンクに液体冷却を採用した CPU の総称□ B 実は CPU ではない
□ C 組み込み用の CPU で、最近は MMU のあるバージョンもある、m68k と一部バイナリ互換問題 46. Anthony Towns が宣言したアーカイブの分割とはどういうものか□ A Debian Project は今後 i386 のみを配布することに決定した。
□ B メインアーカイブは i386, x86 64, ppc のみにして、その他は scc.debian.org で提供する□ C メインアーカイブは i386 のみにして、それ以外は別のミラーサーバ名で提供するようなイ
ンフラを準備する問題 47. 協調メンテナンスをするためのフレームワークとして重要だと Raphael Hertzog が提案したのは何か□ A SVN で管理している協調管理のソースの進捗状況をトラッキングするためのツール□ B 仲よくするための定期的な宴会□ C 説明書をしっかり書く事

12.11 2006 年 4 号
http://www.debian.org/News/weekly/2006/04/ にある 1 月 24 日版です。

76

問題 48. Debian のフォーラムをつくろうという提案に関して却下した理由は□ A フォーラムにはフォーラムの主がいついてしまうからダメだ□ B フォーラムは 2ch 化してしまうから不適切□ C メーリングリストの参加者とフォーラムの参加者は質的に違う
問題 49. １月１日に Anthony Towns が発表した Debian のリリース対象のアーキテクチャは□ A alpha、amd64、hppa、i386、ia64、mips、mipsel、powerpc□ B i386, powerpc, amd64□ C i386, m68k
問題 50. 今後の標準で kaﬀe で利用する java コンパイラはどれか□ A jikes□ B gcj□ C ecj

12.12 2006 年 5 号
http://www.debian.org/News/weekly/2006/05/ にある 1 月 31 日版です。
問題 51. 2006 年の Debian Day が開催されるのはいつか□ A ５月１３日□ B ６月１３日□ C ７月１３日
問題 52. /var/run/ 以下のサブディレクトリをつかう場合はどうするべきか□ A パッケージに含める□ B サブディレクトリは使わない□ C 起動時に毎回作成する
問題 53. launchpad を Debian の開発に使おうという提案に対して出た反論は□ A ubuntu の成果なんてつかえない□ B non-free であるため、それに依存するのはよくない□ C ウェブインタフェースなんて使いたくない

12.13 2006 年 6 号
http://www.debian.org/News/weekly/2006/06/ にある 2 月 7 日版です。
問題 54. Extremadura のハッキングセッションで何ができたか。
□ A 政治的な思想の熟成□ B D-I の GUI 版□ C 日焼け77

問題 55. 2006 年の Debian Project Leader 選挙に最初に立候補したのは誰か□ A Branden Robinson□ B Junichi Uekawa□ C Lars Wirzenius
問題 56. FLUG は何か□ A Finland の Linux Users Group□ B Finland の Lost Users Group□ C Finland の Legal Users Group

12.14 2006 年 7 号
http://www.debian.org/News/weekly/2006/07/ にある 2 月 14 日版です。
問題 57. iBook G4 の無線がどうなったか□ A 仕様が公開された□ B あいかわらず動かない□ C 動くようになった問題 58. 商標について Debian はどういう立場をとっているか□ A 変更と配布の邪魔にならないようであれば問題ない□ B 商標は自由の思想に反するので許せない□ C なにそれ、おいしい？
問題 59. http://lists.debian.org/msgid-search/はどうやって使うのか□ A http://lists.debian.org/msgid-search/メールのメッセージ ID□ B http://lists.debian.org/msgid-search/送信者の名前□ C http://lists.debian.org/msgid-search/メールのサブジェクト

12.15 2006 年 8 号
http://www.debian.org/News/weekly/2006/08/ にある 2 月 22 日版です。
問題 60. Debian etch beta1 インストール用メディアにどういう問題があったか□ A 最新じゃないのでつかってられない□ B メディアが水に濡れて使えなくなった□ C Debian アーカイブの変更の影響で動かなくなった問題 61. Debian Live Initiative は何をしようとするものか□ A 新しい開発をがんがんする□ B Debian の Live CD を統合する□ C リアルタイムハック実況中継のための環境を提供する

78

12.16 2006 年 9 号
http://www.debian.org/News/weekly/2006/09/ にある 2 月 28 日版です。
問題 62. ミラーシステムについて Anthony Towns が発表したのは何か□ A i386 と amd64 だけに限定して今後は運用する□ B 全アーキテクチャを含めた巨大なミラーを継続□ C アーキテクチャ毎にミラーを分割する問題 63. NMU を実施する際に、注意するべきことは何か□ A BTS を通してメンテナに通知すること□ B NMU なんてしてる暇があったら自分のバグを直す□ C できるだけメンテナにばれないように実施する

12.17 2006 年 10 号
http://www.debian.org/News/weekly/2006/10/ にある 3 月 7 日版です。
問題 64. AMD64/kFreeBSD について何がおきたか□ A はじめてパッケージが動いた□ B glibc/gcc/binutils がポーティングできた□ C chroot 内部で動作するようになり、buildd が動いている問題 65. バックポートのサポートが公式になるのか、という質問についての回答は□ A Utunubu 広報担当によると Debian はもう時代遅れだ□ B Joseph Smidt によると、Debian はバックポートを主体として今後は活動を続ける□ C Norbert Tretkowski によると、公式なサポートつきのバックポートを提供することは考えにくい

12.18 2006 年 11 号
http://www.debian.org/News/weekly/2006/11/ にある 3 月 14 日版です。
問題 66. Bastian Blank が発表した、Debian カーネルチームの作業内容は□ A kernel-image-という名前から linux-image-という名前に変更しました□ B カーネルは FreeBSD のものに入れ換えました□ C 今後は SMP 版と Uniprocessor 版というだけでなく、何 CPU の SMP かということで flavorを分けます
問題 67. Martin の後の安定版リリースマネージャは誰にならなかったか□ A Martin Zobel-Helas□ B Andreas Barth□ C Nobuhiro Iwamatsu

7912.19 2006 年 12 号
http://www.debian.org/News/weekly/2006/12/ にある 3 月 21 日版です。
問題 68. JBoss4 の Debian パッケージは存在するか□ A Guido Guenther が作成したものが存在する□ B non-free なのでそんなものは存在しない□ C ボスって何？
問題 69. パッケージに含めるドキュメントの形式は PDF だけにしたい、というメールに対しての反応は□ A HTML のほうが grep しやすいので、HTML をいれてほしい□ B DVI のほうがファイル構造が安定しているので DVI にしてほしい□ C プレインテキスト形式のほうが小さいのでプレインテキスト形式にしてほしい

12.20 2006 年 13 号
http://www.debian.org/News/weekly/2006/13/ にある 3 月 28 日版です。
問題 70. David Moreno Garza が作成したのは□ A DWN の mixi 風インタフェース□ B DWN の RSS フィード□ C DWN の 2ch 風インタフェース
問題 71. google groups を利用して Debian バグを検索するにはどのニュースグループをみればよいか□ A there.is.no.bugs ニュースグループ□ B bugs.debian.org ニュースグループ□ C linux.debian.bugs.dist ニュースグループ

12.21 2006 年 14 号
http://www.debian.org/News/weekly/2006/14/ にある 4 月 4 日版です。
問題 72. ndiswrapper が main に入っているのがただしいのかという議論の原因は何か□ A ndiswrapper のソースコードは実は全部暗号文で構成されているから□ B ndiswrapper は思想的におかしいから□ C ndiswrapper はエミュレーションする対象のドライバが無いと実用できないから問題 73. Debian Project Leader の投票について Clytie が苦情をいったのは何故か□ A Debian Developer でないと投票権がないことに気づかずに投票した□ B 立候補者がどれもえらびようがないような人達ばっかりだった□ C Branden Robinson が立候補していなかった80

12.22 2006 年 15 号
http://www.debian.org/News/weekly/2006/15/ にある 4 月 11 日版です。
問題 74. Xen の Debian パッケージはもともと Julien Danjou たちと Blastian Blank が別個に作業していた。それが統合されたのはいつか□ A 4/5□ B 3/1□ C 1/1
問題 75. sudo のセキュリティーフィックスでどういう変更がなされたか□ A アプリケーションを実際に実行するのではなく、実行しているっぽくみせかけるだけになった□ B ルート権限でプログラムを実行しなくなる□ C 実行プログラムに引き渡される環境変数を制限

12.23 2006 年 16 号
http://www.debian.org/News/weekly/2006/16/ にある 4 月 18 日版です。
問題 76. DPL 選挙の結果リーダーとして選出されたのは□ A Branden Robinson□ B Ted Walther□ C Anthony Towns
問題 77. X11R7 のリリースで何がおきたか□ A パッケージはまだアップロードされていないのでわからない□ B 今までうごいていたビデオカードは原則として全部動かないように改変された□ C X 独自のディレクトリツリー構造を廃棄し、/usr/bin 以下などに直接バイナリがインストー
ルされるようになった

12.24 2006 年 17 号
http://www.debian.org/News/weekly/2006/17/ にある 4 月 25 日版です。
問題 78. 単独のパッケージをあたらしく共同でメンテナンスするためには Alioth のどの機能を使うのが有効か？
□ A 新規プロジェクトの申請□ B collab-maint パッケージ□ C IRC チャンネル問題 79. mozilla はどうなるか□ A サポートされなくなるので削除され、xulrunner に移行が必要□ B mozilla は永遠です□ C 使いにくいので IE に置き換える

81

12.25 2006 年 18 号
http://www.debian.org/News/weekly/2006/18/ にある 5 月 2 日版です。
問題 80. debian-www で www.debian.org のライセンスが議論された理由は□ A 現状のライセンスが DFSG フリーではないのだが、DFSG フリーであるライセンスに合意がとれなかった□ B www.debian.org のライセンスは non-free でそんなものは Debian のウェブページとして存在して良い分けが無いから□ C www.debian.org をホスティングしているサーバが障害で停止したから問題 81. buildd.net で何がおきたか□ A 創始者が引退した□ B Debian 以外に拡張された□ C ソースが公開された

12.26 2006 年 19 号
http://www.debian.org/News/weekly/2006/19/ にある 5 月 9 日版です。
問題 82. Christian Perrier によると stable/unstable/testing は何か□ A suite/branch□ B distribution□ C release問題 83. bts-link は何をしてくれるものか？
□ A リンクに失敗したら BTS に報告してくれるリンカー□ B BTS を自分の現在作業している内容とリンク□ C Debian BTS と upstream の BTS の連係

12.27 2006 年 20 号
http://www.debian.org/News/weekly/2006/20/ にある 5 月 16 日版です。
問題 84. Canonical が HP のためにまとめた multi-arch についての調査報告書が提案したのは□ A 必要なあらゆる機能を dpkg で実現するため、dpkg 2.0 を実装□ B 対象アーキテクチャのために chroot を複数メンテナンスする□ C biarch を実装する

82

問題 85. apt 0.6.44 で実装された機能は何か□ A コマンドラインで実行するとコンソール画面に AA で牛があらわれて去って行くだけのapt-moo 機能□ B 最近の用途パターンから今後必要なパッケージを分析して勝手にインストールしてくれるプ
ロビジョニング機能□ C apt-get update の際に差分ファイルを利用してダウンロード量節約する機能

12.28 2006 年 21 号
http://www.debian.org/News/weekly/2006/21/ にある 5 月 23 日版です。
問題 86. debian-installer のグラフィカル版が最初に追加されたアーキテクチャは□ A i386□ B amd64□ C hppa
問題 87. Debconf6 は何回目の Debconf か。
□A4
□B6
□C7

12.29 2006 年 22 号
http://www.debian.org/News/weekly/2006/22/ にある 5 月 30 日版です。
問題 88. irc.debian.org に接続すると今後どこの IRC ネットワークに接続するようになるのか□ A freenode□ B OFTC□ C WIDE
問題 89. solaris/i386 への 移植版について問題になったのは□ A 思想的に十分フリーでない OS への嫌悪
□ B あまりにも Linux と互換性がなさすぎること□ C GPL 互換ではないライブラリとリンクする必要があること

12.30 2006 年 23 号
http://www.debian.org/News/weekly/2006/23/ にある 6 月 6 日版です。
問題 90. Martin Kraﬀt が Debconf で実施した実験とは何か□ A 実は同時にアメリカで Benjamin Mako Hill の結婚式にも出席していた□ B 別人のふりをして Keysigning party に参加した□ C 偽の身分証明書をもって keysigning party に参加した

83

問題 91. Debian の広報を改善するために創られたメーリングリストは何か？
□ A debian-propaganda□ B debian-publicity□ C debian-daihonneihappyou

12.31 2006 年 24 号
http://www.debian.org/News/weekly/2006/24/ にある 6 月 13 日版です。
問題 92. HP のスポンサーで Debian は何の試験に通過したか□ A CGL□ B あれげ検定□ C BSD問題 93. Joey Hess は Debian のインテグレーションができていないパッケージをなんと読んだか□ A Superman□ B Supermarket□ C Warmart

84

東京エリア Debian 勉強会 2006

13 Debian Weekly News 問題回答
上川85

41. A
42. A
43. C
44. B
45. C
46. C
47. A
48. C
49. A
50. C
51. A
52. C
53. B
54. B
55. C
56. A
57. C
58. A
59. A
60. C
61. B
62. C
63. A
64. C
65. C
66. A
67. C
68. A
69. A
70. B
71. C
72. C
73. A
74. A
75. C
76. C
77. C
78. B
79. A
80. A
81. C
82. A

Debian Weekly News の問題回答です。あな
たは何問わかりましたか？

1. 回答例
2. B
3. A
4. A
5. B
6. C
7. A
8. C
9. C
10. B
11. A
12. B
13. B
14. A
15. B
16. B
17. C
18. A
19. C
20. A
21. A
22. C
23. A
24. C
25. C
26. A
27. A
28. C
29. A
30. B
31. A
32. C
33. B
34. C
35. C
36. A
37. A
38. C
39. B
40. A

86

83. C
84. A
85. C
86. A
87. C
88. B
89. C
90. C
91. B
92. A
93. B

87

あんどきゅめんてっど でびあん 2006 年夏号

2006 年 8 月 14 日
初版第 1 刷発行
東京エリア Debian 勉強会 （編集・印刷・発行）

88