つれづれ日記 2008年8月

予定

毎日


2008年8月31日 (日曜日)

23:09:25 # Life qemubuilder 内部で distccを使う。 ホストOS上に emdebian などからとってきたクロスコンパイラをインストールしておきます。 エミュレーション環境から、 distcc でホストOSのクロスコンパイラを実行することが可能です。 エミュレーション環境の実行速度は非常に遅いので、 これで十分な速度が出るようにできるはずです。 比較してみると、この単純なケースでも二倍の差がありました。 まだいろいろとチューニングしないと実際にパッケージのビルドまで至らないとは思いますが 基本としては何をしないといけないのかが分かりました。

root@pbuilder-coreduo:/tmp# export DISTCC_HOSTS=10.0.2.2 
root@pbuilder-coreduo:/tmp# time distcc arm-linux-gnueabi-gcc -c a.c 

real    0m0.324s
user    0m0.160s
sys     0m0.150s
root@pbuilder-coreduo:/tmp# time cc -c a.c 

real	0m0.657s
user	0m0.410s
sys	0m0.240s
	

2008年8月30日 (土曜日)

10:22:56 # Life eeepc に distccをインストールしてみた。 MacBookでビルドする際になんらかのたしになるか?と思ったんだけど、どうでしょう。 avahi を活用して zeroconf として使えそうな雰囲気で書いてありちょっと期待しました。 これがちゃんと動くと、ネットワークで近所にあるマシンで distcc サービスを動かしているものがあったら 勝手に追加されるというのができてしまいます。 ただ、それはまだうまく動かせませんでした、2.18.3-8 時点では ipv6 対応がうまくいっていないようでした 481951。 ipv6 のアドレスに対応していないのが問題なので、 明示的にipv4 で使えるホスト名を指定してあげればうまく動きました。 ホスト名 akkeee と coreduo があったので、 DISTCC_HOSTS="akkeee.local coreduo.local"と指定したらいけましたよ。

akkeee:/home/dancer# netstat -lp | grep dist
tcp6       0      0 [::]:distcc             [::]:*                  LISTEN      3119/distccd    
	

10:51:31 # Life 手元のmacbookのファイルシステムの分割のしかた。 160GBのディスクで etch d-i の LVM でインストールしようとしたら動かないバグ(120GB 以上の場合?)にひっかかったので LVMではないインストールになりました。 とりあえず普通のパーティション構成にして、/home を消してLVM領域にしなおして構成。 デフォルトでは / は 7GB 程度しか割り当てられないためすぐに容量がいっぱいになるので /var とかを別パーティションに飛ばしたりしています。 とりあえず今の感じ。 /dev/mapper/xxxx となっているのは、LVM2 の領域です。 LVM2 の領域は df とかでは device mapper のパスで見えます。

$ df -h 
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/sda1             6.5G  3.3G  2.9G  53% /
tmpfs                 490M     0  490M   0% /lib/init/rw
udev                   10M  100K   10M   1% /dev
tmpfs                 490M     0  490M   0% /dev/shm
/dev/mapper/vgcoreduo-home
                       40G   19G   19G  51% /home
tmpfs                 490M   12K  490M   1% /tmp
/dev/mapper/vgcoreduo-var
                      9.9G  2.4G  7.1G  25% /var
/dev/mapper/vgcoreduo-pbuilder
                      3.0G  391M  2.5G  14% /var/cache/pbuilder
	

fstabはこんな感じ。

proc            /proc           proc    defaults        0       0
/dev/sda1       /               ext3    errors=remount-ro 0       1
/dev/vgcoreduo/home       /home           ext3    defaults        0       2
/dev/sda2       none            swap    sw              0       0
/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0
tmpfs		/tmp		tmpfs	rw
/dev/vgcoreduo/var	/var	ext3	defaults	0	1
/dev/vgcoreduo/pbuilder /var/cache/pbuilder ext3	defaults 0 2

	

21:55:52 # Life distcc を debuild で利用する。 distcc/ccache を debuild で利用する方法も確立されているようです。 Debianでも並列ビルドオプションも最近はサポートされているようです。 debuild に並列度数を指定するオプションで「-j5」などを指定して実行すればよいです。 distcc などの設定は簡単で、.devscript に設定を記述すればよいです。 これで、超高速にビルドができるようになります。

DEBUILD_SET_ENVVAR_CCACHE_PREFIX="distcc"
DEBUILD_SET_ENVVAR_DISTCC_HOSTS="coreduo.local akkeee.local" # ビルドに利用するマシン名
DEBUILD_PREPEND_PATH=/usr/lib/ccache
	

2008年8月26日 (火曜日)

23:34:20 # Life Debian関連の活動をうまく確認するよいほうほうはないかなぁとおもって調べていたら、 debian-devel-changes が Google Groups に登録されているのに気づきました。 debian-devel-changes は Debian パッケージがアップロードされるたびに そのchangelog の内容がメールになって飛ぶメーリングリストです。 Debian Projectのウェブでもアーカイブされて公開されていますが、このインタフェース、検索するのには結構不便です。 Google Groups にこの内容がミラーされているようで、 linux.debian.changes.develとしてアクセスできます。

2008年8月19日 (火曜日)

00:33:42 # Life MacBookの再インストール中。 ひさしぶりにスクラッチからインストールしています。 m-a a-i kvm でインストールできずにm-a a-i kvm-source でインストールできるというのにしばらく悩みました。 kvmパッケージが存在するからそれを使おうとしてしまうのね・・・。

2008年8月12日 (火曜日)

21:53:59 # Life Manojと朝食。 Debian Policy の今後について語る。 もともとdpkgの仕様書としてはじまった文書なので、Debian全体のポリシーとしては詳細すぎる部分やたりない部分がある。 もっとモジュラーにしたい。 必要な部分をとりだせるようにしたい。 ポリシー文書は聖句ではなく、人の考え出した設計であり、その都度変更する必要のある文書。 そのためには、RATIONALE が必要だろう。 RATIONALE が存在しないと、人はそれを絶対視してしまう。

2008年8月11日 (月曜日)

00:02:28 # Life qemubuilderパッケージアップデート。 Debconf会場にて、armelアーキテクチャをサポートしてみました。 distccを使ってホストOSでのクロスコンパイルに対応するとか、 いろいろやってみたいことはあるんですが、とりあえずこんな感じで。

03:08:13 # Life ひさしぶりにgpg keysignしてみる。 gpg --keyserver keyring.debian.org --recv-key XXXX. gnudoit '(compose-mail "gismo@debian.org" "your signed key") (end-of-buffer) (insert (shell-command-to-string "gpg --export --armor 9DDB992B | gpg --armor --encrypt -r 9DDB992B "))'

04:13:43 # Life cowbuilderをC++にしてみようとおもいたつ。 ずっと前からやろうと思っていたことの一つ。 char* と sprintf より、string と strstream が使いたいので、 C++ に切り替えてみようかとおもってみたが、 ファイル名を変更してコンパイルがとおるところまでして挫折してみる。

2008年8月10日 (日曜日)

04:03:31 # Life libgettext-ruby. 492907 を調査した結果、libgettext-rubyのlocale関連がきちんと文字コードを検出していないような気がします。 ソースをみているとWindowsの場合は対応表があるのですが、Linuxの場合はどういう挙動になっているのかがよくわかりません。 よくわからないというよりむしろそれっぽいコードが見つからない。 euc-jp以外はもしかして実装されていないのか?という嫌な予感がする今日この頃です。

06:29:04 # Life m68kのbuildd。 m68kのコード自体を aranym でエミュレーション実行しているが、gcc が distcc になっていて、コンパイルするときには host OS で クロスビルドしているらしい。 ただし、そういうことですげーとかいっていると、qemuのメンテナンスをするはめになるので危険。

2008年8月1日 (金曜日)

13:34:06 # Life dsh のリポジトリを Git に引越し。 CVS で管理していたソースですが、Gitに引っ越しました。 Alioth から取得できます。 2001年開発開始なので、もう7年前ですね。 細々と管理しているのですが、ユーザもそれなりにいて、 バグもそれなりに見つかっているようです。


Junichi Uekawa

$Id: 200808.html.ja,v 1.18 2008/09/01 06:12:54 dancer Exp $