Couchappのdebパッケージ化。¶
とりあえず、手っ取り早くcouchappのdebパッケージが欲しかったので。
$ git clone git://github.com/couchapp/couchapp.git
$ cd couchapp
$ git tag
(snip)
0.7
0.7.0
$ cd ..
$ ln -s couchapp couchapp-0.7.0
$ cd couchapp-0.7.0
$ debuild -us -uc
This package has a Debian revision number but there does not seem to be
an appropriate original tar file or .orig directory in the parent directory;
(expected one of couchapp_0.7.0.orig.tar.gz, couchapp_0.7.0.orig.tar.bz2,
couchapp_0.7.0.orig.tar.lzma, couchapp_0.7.0.orig.tar.xz or couchapp.orig)
continue anyway? (y/n) y
(snip)
Now running lintian...
W: couchapp source: debian-watch-file-in-native-package
W: couchapp source: out-of-date-standards-version 3.9.0.0 (current is 3.9.1)
W: couchapp source: native-package-with-dash-version
W: couchapp: new-package-should-close-itp-bug
W: couchapp: binary-without-manpage usr/bin/couchapp
Finished running lintian.
$ cd ..
$ sudo apt-get install python-restkit
$ sudo dpkg -i couchapp_0.7.0-1_all.deb
ダメ人間。
RAMディスクブートのOpenMicroServerでもsshdを使う。¶
OpenMicroServerでsshdを使用するには、ファイルサイズの関係から、普通はCFなどにHDDイメージを展開し、CF/HDDブートしないと出来ない。が、ルータ兼ファイアウォールとして使う場合、それはちょっと無駄が多いので、今まではCFを/mntにマウントして、netfilterのスクリプトを/etc/rc.localから実行する形にしていた。ファームウェアのアップデートには、/etc/inetd.confでコメントアウトしているftpの行を有効にして、/mntのCF領域にアップロードする、という具合。操作はその度に、RS-232でつないで作業する、という感じ。ファームウェアのアップデート程度ならそれでも良いのだけれど、ファイアウォールのポリシーの変更となると、もうちょい頻度が高いので不便。これはやってられん。
ということで、HDDイメージから、sshdのファイルを持ってきて/mntに置いておき、SSD/Linux起動時に展開してsshdを実行させるようにした。
HDDイメージのダウンロード¶
ぷらっとホームのFTPサイトから、ファームウェア一緒に配布されているHDDイメージをダウンロードする。例えば、 現在使用しているファームウェア は2010年4月9日リリースの最新のもの 1 なので、それと一緒にリリースされているHDDイメージ 2 から、base.tgz 3 , etc.tgz 4 をダウンロードする。
ファイルの抽出¶
次のようなスクリプトで抽出。
#!/bin/bash
tar zxvpf base.tgz `tar ztf base.tgz | egrep 'sshd|sftp-server|libpam.so|libcrypto.so|ssh-keygen'`
tar zxvpf etc.tgz `tar ztf etc.tgz | grep ssh`
tar zcvpf oms-ssh.tgz ./usr ./etc
oms-ssh.tgzを/mntの任意のディレクトリ 5 にFTPで転送しておく。
OMSでのファイル展開用スクリプトの用意¶
次のようなスクリプトを/mnt/sshdに用意する。 6
#!/bin/sh
tar zxpf oms-ssh.tgz
chown -R root:wheel usr etc
tar zcvpf distro-ssh.tgz usr etc
このスクリプトは、本来不要なのだが、Debianではwheelグループが無いので 7 chownがコケる。なので、OMS上で実行する必要がある。
ここまでの手順で作ったスクリプトは、ファームウェアがアップデートされる度に行うためのものだ。次のホストキーの作成のため、このスクリプトを実行しておく。
# cd /
# tar zxpf /mnt/sshd/distro-ssh.tgz
ホストキーの作成¶
先ほどの手順で、必要なライブラリとssh-keygenコマンドが展開されているので、ホストキーを作成する。
# ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N ''
# ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ''
ユーザの公開鍵の登録¶
OMSではデフォルトでは、/home/user1になっているので、リネームして、.sshディレクトリを作成し、FTPで転送しておいた公開鍵を登録しておく。
# mv /home/{user1,mkouhei}
# usermod -d /home/mkouhei mkouhei
# mkdir /home/mkouhei/.ssh
# chmod 700 /home/mkouhei/.ssh
(mkouhei)# cd ~/.ssh
(mkouhei)# mv id_rsa.pub authorized_keys
/etc/ssh/sshd_configの設定は適宜実施するべし。
sshd起動スクリプトの作成¶
これで準備は整ったので、/mnt以下に、/mnt/sshd.shとして次のスクリプトを用意する。
#!/bin/sh
cd /
tar zpxf /mnt/sshd/distro-ssh.tgz
/usr/sbin/sshd
このスクリプト自体の実行は、/etc/rc.localの一番下にでも追記しておく。
(snip)
/mnt/sshd.sh
RAMディスクへの書き込み¶
今までの作業は、/mnt下以外の変更はリブートすると全てパァである。なので、リブートしてもちゃんと反映されるように変更しておく。/etc/flashcfgに下記を追記しておく。
/etc/ssh
/home/mkouhei
追記したら、RAMディスクに書き込んでおこう。
# flashcfg -s /etc/flashcfg
あとはリブートしてもちゃんと起動することを確認しておこう。
/usr/sbin/sshd等をRAMディスクに書き込めばよいのでは?¶
/usr/sbin/sshdだけならまぁ書き込めるのだが、sshdの起動に必要なlibpam.so, libcrypto.so, さらにsftp-serverなんかも入れると到底空き容量足りないのである。起動時に展開する方が無難。
Footnotes
- 1
- 2
ftp://ftp.plathome.co.jp/pub/OMS400/0.4-RELEASE-20100326/mipsel-oms400.ipv6/binary/
- 3
ftp://ftp.plathome.co.jp/pub/OMS400/0.4-RELEASE-20100326/mipsel-oms400.ipv6/binary/base.tgz
- 4
ftp://ftp.plathome.co.jp/pub/OMS400/0.4-RELEASE-20100326/mipsel-oms400.ipv6/binary/etc.tgz
- 5
ここでは/mnt/sshdとしておこう。
- 6
/mnt/sshd/extract.shとした。
- 7
代わりにadmグループを使う。
今年のワクチン接種。¶
昨日こまめのワクチン接種をした。昨年が三種混合だったので今年も同じ。昨年は生後三ヶ月だったのと、その日にヨメの姪っ子が遊びに来たのもあってかなりぐったりしていたが、今年はさすがに違うね。昨夜は少しダルそうだったが、今日は朝から元気なこまちゃんだった。
ヨメが歯周病じゃないかと心配していたが、奥歯が軽い歯肉炎になっている程度で、きれいな方だと。今のままケアしていれば問題無いそうだ。それより気になるのが、最近おしっこの量がかなり多いということ。昨日の聞き忘れたので、今度電話して聞いてみるか。
ワシと一緒にダイエット中のこまちゃんの昨日の体重は3.5kgで、直前に一緒に自宅で測ったのよりも0.3kg多かった。自宅で測る時は+0.3kgで考えておくか。とすると、最大時はkgも体重あったんかい、こまちゃんよ。
OpenBlockS600をSqueezeにしてみた。¶
ぷらっとホームの技術情報 を元に、まずlennyを8GBのCFにインストールした後、APTラインをsqueezeに変更し、apt-get update, upgrade, safe-upgrade, dist-upgradeを繰り返し、Squeezeにアップグレードしてみた。udevのアップグレードの時に、
$ sudo touch /etc/udev/kernel-upgrade
をしないとアップグレードできない、というのもあったが、基本は問題無し。アップグレード後に、sysvinitからupstartにしたみた際。cronが起動後、rc2.d以下のスクリプトの実行時に止まってしまう、という問題があった。
Running scripts in rc2.d/ took 1 seconds.
仕方ないのでupstartにはしないことにした。 1
追記¶
rc2.d以下のスクリプトじゃなく、gettyの方の問題かもなぁ。
- 1
別に必要ないし。
KVM & libvirtの環境にvirtualbox-oseをインストールしてみた。¶
ちょいとPalm web OSを試したくなったので、Palm webOS SDKをSidの64bit環境にインストールしてみた。もともとKVM & libvirt & virt-managerを使用している環境なのだが、ここにvirtualbox-oseをインストールするとちょいと色々変わる。
そもそもKVMと共存できない。¶
palm-emulatorコマンドで、virtualboxを起動した後、kvmのカーネルモジュールがロードされた状態のまま、KVMゲストを起動させると、以下のようにCall Traceを吐く。
kernel:[ 5126.608323] Call Trace:
Message from syslogd@host at Aug 26 23:26:47 ...
kernel:[ 5126.608367] Code: 00 0f 20 d8 4a 89 84 02 80 06 00 00 0f 20 e0 4a 89 84 02 88 06 00
00 48 83 e0 70 42 8b 8c 02 68 0a 00 00 23 4a 20 09 c8 0b 42 24 <0Domain sid-squeeze-couchdb
started3 e0 04 0d 3b 00 00 80 0f 22
まぁ、それでもKVMは動くんだが。その代わり、VirtualBoxを既に起動中だったらVirtualBoxのゲスト、つまりpalm emulutorは止まってしまう。これを吐かせないようにするには、kvmのカーネルモジュールをアンロードしておく。
$ sudo /etc/init.d/qemu-kvm stop
Succesfully unloaded kvm module kvm_intel.
virshの挙動が変わる。¶
今までのように
$ sudo virsh list --all
と実行するのではKVMの定義が表示されなくなる。sudoをつけずにvirsh list –allを実行すると、VirtualBoxで使うwebOS SDKの仮想マシンの定義が表示される。
$ virsh list --all
Id Name State
----------------------------------
1 SDK 1.4.5.465 (320x480) running
じゃあどうするかと言うと、対話モードでqemu:///systemに接続すれば使える。
$ sudo virsh
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh # connect qemu:///system
virsh # list --all
Id Name State
----------------------------------
- sid-squeeze-couchdb shut off
- vm-fedora12 shut off
- vm-squeez-sid_sysvinit_test shut off
- vm-squeeze_sid-sysvinit2 shut off
- vm-ubuntu9.10 shut off
ちなみに、virt-managerではqemu:///systemへの接続がデフォルトのままなので、普通に起動できる。
palm-novacomが動かない。¶
起動スクリプトがupstart用なので、sysvinitからupstartに切り替えよう。
palm-sdkはアンインストールできない。¶
64bit環境にSDKをインストールするには、 Dev Guide にあるとおり、palm-sdkとpalm-novacomを–force-architectureオプションをつけてdpkgコマンドでインストールする 1 のだが、palm-sdkはapt-get remove, dpkg -eでもアンインストールできない、という問題にハマる。この問題はワシは未解決。
- 1
palm-novacomはamd64用だからこのオプション要らんと想うのだが。