第6回Debian勉強会 日付:2005/7/2 時間:18:10-21:00 場所:あんさんぶる荻窪4F環境学習室 参加者:上川さん、岩松さん、みつかさん、加藤さん、中島さん、岩井さん、GOTOMさん、小林さん、えとーさん、やまねさん、立神さん、澤田 (6:07:14 PM):開始 (6:09:49 PM):iBookは起動するとき画面を閉じてるとプロジェクタに映る仕様なようだ (6:10:04 PM):サインはVGAを使うとよい (6:13:35 PM):Debian weekly news quiz開始 (6:26:13 PM):zlibのソースがコピーされてることが多いですがダイナミックリンクするようにしましょう。セキュリティアップデートでリンクし直さないといけないパッケージが多かった (6:30:08 PM):selinuxはまだDebianで使えない?ポリシーの設定が入ってないらしい (6:36:21 PM):debian/controlとdebian/changelogは自動生成しないように (6:40:50 PM):TeXliveはCTANの全パッケージを含んでいるらしい (6:41:12 PM):TeXliveはDFSG準拠 (6:41:22 PM):tetexはDebianでいろいろ消している (6:51:27 PM):dpatchについて by 上川さん (6:53:34 PM):オリジナルパッケージからDebianパッケージへの変更はdiff.gzに格納されている。何万行にもなることがある (6:53:55 PM):何故変えたのかとかの情報はない (6:55:11 PM):dpatchはdebianディレクトリ以下のpatchesディレクトリに個々のパッチを置くことができる。ビルドするときにパッチを当てる。クリーンするときにはパッチをはずす (6:56:05 PM):何故パッチを当てたか、パッチをはずすとどうなるかを書ける (6:58:31 PM):debian/rules patchでパッチを当てる、debian/rules unpatchではずす (6:59:00 PM):アップストリームが新しくなった場合当ててみてrejectされたものをがんばって直す (6:59:34 PM):アップストリームのパッチを先に当ててDebainのパッチは後で当てるようにするとよい (7:00:20 PM):00listに書いてある順にパッチを当ててくれる (7:19:54 PM):unpatchしてから00listを編集しないとパッチを当ててくれない (7:21:49 PM):dpatch-edit-patchは第二引数でパッチを指定しないとパッチを当ててくれない (7:35:40 PM):toolchainについて by GOTOMさん (7:40:23 PM):動かすときに実行ファイルが使うのがglibc(ライブラリ) (7:40:57 PM):prog.cからgcc(コンパイラ)でprog.Sを作る (7:41:21 PM):prog.Sをas(アセンブラ)が処理することでprog.oを作る (7:41:39 PM):*.oをld(リンカ)がまとめて実行ファイルを作る (7:41:56 PM):toolchainはこれらのコンパイラ、アセンブラ、リンカ、ライブラリとかを言う (7:43:14 PM):ソースをコンパイルすると一回ツリー状の共通コードにして最適化をかける (7:45:00 PM):ライブラリのシンボルは結構かぶっているものが多いので自動判別は難しい (7:49:49 PM):クロスコンパイルはperlやconfigureとかが難しい (7:50:31 PM):binutils、glibc、gccはテストユニットを持っている、けどたまに通らない (7:52:05 PM):新しいライブラリを入れても依存しているプログラムを一回落とさないと古いのを使い続ける (8:03:01 PM):Dependsにはlibc6ではなく本当はlibcと書かないといけない (8:06:08 PM):/etc/nsswitch.confに「passwd: compat」とか書いてあるとlibcがlibnss_compatを呼んでくれる (8:09:34 PM):ld.soがカーネルバージョンを見てtlsを使うかどうかを判別してくれる (8:10:08 PM):gconvはprintfとかで日本語を表示するときにも使われてる (8:12:38 PM):タイムゾーン情報は夏時間がある国で結構重要 (8:13:58 PM):ld.soはデフォルトで/libと/usr/libを読み込んでいる。それ以外は/etc/ld.so.confに書く。普通はdebhelperで設定される (8:16:46 PM):i686はスレッドがまともなのでlibc6-i686は入れておくとよい (8:18:36 PM):crt.oでmain関数を呼ぶ/exit後に終了処理をしている (8:20:11 PM):LD_LIBRARY_PATHに/usr/lib/debugを指定するとglibcのデバッグもできる (8:22:41 PM):/usr/share/i18n/charmapsにUnicodeと各エンコーディングの対応表がある (8:23:35 PM):/usr/share/i18n/localesにソートの順番が書かれている (8:26:54 PM):localesで午前、午後とかをどう表示するか決まっている (8:27:32 PM):日付を平成XX年とかって表示するというのも書かれてたりする (8:52:30 PM):カーネルヘッダはユーザランドからカーネル機能を使うためのヘッダ (8:52:48 PM):カーネルからヘッダだけを取り出して修正してパッケージ化している (8:58:17 PM):お開き