«前の日(07-05) 最新 次の日(07-07)» 追記

ポケットを空にして。

1985|10|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2100|01|

「人の心に残るというのが大事」と言う話。

何か連絡がある場合はメールでどうぞ(過去の日記へのツッコミは基本的にみていません)
プレゼントは随時受け付けております :-) ここ最近のツッコミ/トラックバックリスト。


2004-07-06 この日を編集


2008-07-06 この日を編集

security update in installation

d-i をハックしてインストール時に最新パッケージが入るようにしたらしい。いいことだ。

インストーラ妄想

debian-installer Beta2 を試してみた。最初の画面以外はあんまり変わった所が見受けられないんですが…。d-i

  • いちいちパッケージを展開するのではなく、デフォルトインストールイメージを単にハードディスクにコピーして、変更が必要な所だけを後からひたすら reconfigure するような形にしたら、インストール早く終わるんじゃね?
  • ユーザに対してもっと情報をうまく隠蔽するようにしないと。あと、質問の仕方が難しい聞き方になってるような。デフォルトで大抵問題ないんだから、それを選んだ状態にしてほしいもんです。
  • root/ユーザともに簡単なパスワード入れても怒られません。うーん。opensuse11 はきちんと警告してくれました。
  • rootと自分のパスワード入れるの順番逆の方が良くない?あるいはopensuse のように同一にできるオプションを最初から提供するとか
  • あれ??ネットワークミラーを選択するようになっています。勝手に選択してくれないのかな。
  • あとボタンが「戻る」「続ける」の文字列だけなのは勘弁してほしい。日本語を選ぶまでの初期状態だと英語なので直感的でない。
  • んが、tasksel でのパッケージインストールでこけるな。全部外しても進まない。aptitude あたりの問題だっけ? daily インストーラならいけるかな?→Yes. daily installer ならまったく問題無し。

2010-07-06 この日を編集

FTBFS 潰し


2013-07-06 この日を編集

Debian での buildbot 作法…を探索中。

まず、apt-get install buildbot としてインストールすると

Setting up buildbot (0.8.7p1-1) ...
[warn] buildmaster #1: disabled ... (warning).

と出てくる。

これはbuildbot(master/slaveともに)/etc/init.d/以下のinit scriptで制御するようになっているのだが、インストール段階では起動しないようにされているということ。
では、どこで有効にするかというと /etc/default/buildmaster (/etc/default/buildslave) ファイルでの設定。

MASTER_RUNNER=/usr/bin/buildbot
 
# NOTE: MASTER_ENABLED has changed its behaviour in version 0.8.4. Use
# 'true|yes|1' to enable instance and 'false|no|0' to disable. Other
# values will be considered as syntax error.
 
MASTER_ENABLED[1]=0                    # 1-enabled, 0-disabled
MASTER_NAME[1]="buildmaster #1"        # short name printed on start/stop
MASTER_USER[1]="buildbot"              # user to run master as
MASTER_BASEDIR[1]=""                   # basedir to master (absolute path)
MASTER_OPTIONS[1]=""                   # buildbot options
MASTER_PREFIXCMD[1]=""                 # prefix command, i.e. nice, linux32, dchroot

MASTER_ENABLED[1]=0 となっているので disabled になっている。これを 1 に変更すれば走る。
で、実際にbuildbotを実行するユーザーは「buildbot」ユーザーがシステムによって作られている…がどんなのかというと

$ grep buildbot /etc/passwd
buildbot:x:110:111:Buildbot system user,,,:/var/lib/buildbot:/bin/false

/var/lib/buildbot がホームディレクトリになっている。これを見ると /var/lib/buildbot/masters と /var/lib/buildbot/slaves というディレクトリが存在する。おそらくは、ここに master と slave の設定を置く、という形になるのだろう。

/var/lib/buildbot/masters$ sudo buildbot create-master master-jd
/var/lib/buildbot/masters$ sudo mv master-jd/master.cfg.sample master-jd/master.cfg
/var/lib/buildbot/masters$ sudo chown buildbot.buildbot -R master-jd
/var/lib/buildbot/masters$ cd /var/lib/buildbot/slaves
/var/lib/buildbot/slaves$ sudo buildslave create-slave slave-jd localhost:9989 slave-node01 tekitounapass
 # buildslave create-slave directory 動作するホスト名とポート slaveの名前 slaveに接続するためのパスワード
 
mkdir /var/lib/buildbot/slaves/slave-jd
chdir /var/lib/buildbot/slaves/slave-jd
mkdir /var/lib/buildbot/slaves/slave-jd/info
Creating info/admin, you need to edit it appropriately
Creating info/host, you need to edit it appropriately
Not creating info/access_uri - add it if you wish
Please edit the files in /var/lib/buildbot/slaves/slave-jd/info appropriately.
buildslave configured in /var/lib/buildbot/slaves/slave-jd
 
/var/lib/buildbot/slaves$ sudo chown buildbot.buildbot -R slave-jd

まずは slave のinfo/admin,hostを適当に修正する(見れば分かるので省略)。で、master-jd/master.cfg の中を書き換えてslaveと通信できるようにする。

####### BUILDSLAVES
 
# The 'slaves' list defines the set of recognized buildslaves. Each element is
# a BuildSlave object, specifying a unique slave name and password.  The same
# slave name and password must be configured on the slave.
from buildbot.buildslave import BuildSlave
c['slaves'] = [BuildSlave("example-slave", "pass")]

ここに先ほどのslaveの名前とパスワードを入れ替える

/etc/default/buildmaster,buildslaveを編集してみる

MASTER_ENABLED[1]=1
MASTER_NAME[1]="buildmaster #1"
MASTER_USER[1]="buildbot"
MASTER_BASEDIR[1]="/var/lib/buildbot/masters/master-jd"
SLAVE_ENABLED[1]=1
SLAVE_NAME[1]="slave #1"
SLAVE_USER[1]="buildbot"
SLAVE_BASEDIR[1]="/var/lib/buildbot/slaves/slave-jd"
$ sudo /etc/init.d/buildmaster start
[ ok ] Starting buildmaster "buildmaster #1".
henrich@hatchpotch:/var/lib/buildbot$ sudo /etc/init.d/buildslave start
[FAIL] SLAVE_* arrays must have an equal number of elements! ... failed!

init scritptを見たら、設定ファイルの項目数が一致しないとダメっぽい。

SLAVE_ENABLED[1]=1
SLAVE_NAME[1]="slave #1"
SLAVE_USER[1]="buildbot"
SLAVE_BASEDIR[1]="/var/lib/buildbot/slaves/slave-jd"
SLAVE_OPTIONS[1]=""                   
SLAVE_PREFIXCMD[1]=""  

最後の2行を追加。

$ sudo /etc/init.d/buildslave start
[ ok ] Starting buildslave "slave #1".

ということで、/etc/default/buildslaveのコメントアウトしてある行はすべて有効にしておく必要がある。

…あれ?masterノードが走ってない、と思ったらmasters/master-jd/twistd.logを見たら答えが書いてあった。変更漏れ。…なんでこけないんだよ…

$ w3m http://localhost:8010/

として、ようやくbuildbotの画面を伺った。次にmaster.cfgでのブラウザ接続を変更するため

c['buildbotURL'] = "http://localhost:8010/"

を適当に変更して接続…と思ったら ufw で接続を制限してたのでした。

$ sudo ufw allow 8010

で外部ブラウザから接続出来るように。認証についてはmaster.cfg内で

authz_cfg=authz.Authz(
    # change any of these to True to enable; see the manual for more
    # options
    auth=auth.BasicAuth([("pyflakes","pyflakes")]),
    gracefulShutdown = False,
    forceBuild = 'auth', # use this to test your slave once it is set up
    forceAllBuilds = False,
    pingBuilder = False,
    stopBuild = False,
    stopAllBuilds = False,
    cancelPendingBuild = False,
)

とあるので、ID: pyflakes、pass: pyflakes なのを適当に変更。

こちらの記述を参考にSVNで引っ張るようにした。。。のだが、これどうやって調べるのだろう。正直分からないのだが…

課題
chroot してクリーンルームビルドはどうするかね?