最近になって,apt-get update すると以下のエラーが発生して,
     パッケージデータベースの更新に失敗することが頻発するようになった.
     
# apt-get update <中略> Reading Package Lists... Error! E: Dynamic MMap ran out of room E: Error occured while processing gs-aladdin-vflib (NewVersion1) E: Problem with MergeList /var/lib/dpkg/status E: The package lists or status file could not be parsed or opened.
     この問題を解決するためには,/etc/apt/apt.conf
     に以下のように記述して,キャッシュの容量の最大値を増やせば良い.
     
APT::Cache-Limit 12582912;
     私の環境では,実際には
     /etc/apt/apt.conf.d/90cache-limit
     に設定を記述している.
     
プリンタの設定について研究. これまでは LPRng を使っていたのだが, とある事情で CUPS の設定を試みる.
# apt-get install cupsys cupsys-bsd cupsys-client foomatic-bin foomatic-db foomatic-db-gimp-print # foomatic-configure -n windows -s cups -c smb://windows/EPSON -p Epson-LP-2000 -d lp2000
      本当は LP-2400 なのだが,正式サポートはされていなかったので,
      LP-2000 で誤魔化している.
      TonarSavine の on/off を制御できるようにするには,どうすれば良いのだろうか?
      lpadmin を使うと,PPD ファイルを指定してプリンタを組み込むことができるようだ.
      
# lpadmin -v ipp://printer/AUTO -P ppd-file
いろいろ試してみたが,結局,慣れている LPRng の方が設定が楽だったので, 元に戻してしまった.このままでは,立派な oldtype になってしまう….
USB mouse に関わるデバイスドライバが,自動的に load/unload されるようにするために, murasaki をインストールした. すると,network interface のためのドライバが,murasaki と laptop-net の両方によって insmod しようとされるので, エラーが発生するようになった.
     この問題を回避するため,/etc/defaults/laptop-net を編集し,
     MODULE_NAME の設定をコメントアウトした.
     これで,laptop-net はネットワークドライバを load しなくなり,
     murasaki によって load されたネットワークドライバを使うようになる.
     murasaki は /etc/rc3.d/S01murasaki によって,
     laptop-net(/etc/rc3.d/S12laptop-net) よりも早い時期に起動されるので,
     これで問題ないはず.
     
     また,ネットワークの設定は全て
     laptop-net
     経由で行っているため,murasaki によって ifup などが呼び出されると都合が悪い.
     そのため,/etc/murasaki/murasaki.call に含まれている以下の設定を削除した.
     
[net]: net
laptop-net は,ネットワークケーブルの挿入と取り外しを検出し, 自動的に初期化スクリプトを起動する daemon である. 単純に導入して,初期設定のままで使っても, DHCP が完備されている環境を渡り歩くだけならば十分な効果があり, とても便利に使える.
Ghostscript のフォント設定に欠陥を発見. PDF から Acrobat Reader などによって変換した PostScript ファイルには,HeiseiKakuGo-W5 などのフォントが使われているのだが, これらを表示しようとすると,以下のようなエラーで失敗するのである.
Error: /invalidfont in -dict- Operand stack: HeiseiKakuGo-W5-Acro-Identity-H --dict:7/10(G)-- Font HeiseiKakuGo-W5-Acro-Identity-H --dict:7/10(G)-- HeiseiKakuGo-W5-Acro-Identity-H Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- 3 8 %oparray_pop 3 8 %oparray_pop --nostringval-- --nostringval-- --nostringval-- 7 9 %oparray_pop --nostringval-- 7 9 %oparray_pop --nostringval-- --nostringval-- Dictionary stack: --dict:1050/1123(ro)(G)-- --dict:0/20(G)-- --dict:97/200(L)-- --dict:35/89(L)-- --dict:76/160(ro)(L)-- --dict:63/78(ro)(L)-- --dict:8/25(L)-- --dict:27/35(ro)(L)-- --dict:17/17(ro)(G)--
gs-ja パッケージのメンテナを香田さんから引き継ぐ. しかし,パッケージの upload に失敗.前途多難だ….
      cjkps2pdf
      を使うと,GNU gs-7.0x を利用して,日本語フォントを埋め込まずに PDF を作成することができる.
      また,このページでは表示用と PDF 出力用に CIDFnmap
      を切り替える方法についても解説している.
      gs-ja パッケージの構成に参考になりそうだ.
     
日本語 OCF フォントを CID-keyed フォントから再構成する方法があるらしい. この方法をきちんと研究すれば,gs-ja パッケージそのものを廃止できるだろう. と言うか,gs パッケージを用いた正式な日本語用の設定方法を広める方が建設的に決まっている.
オフィシャルに管理しているパッケージが増えてきたので, build & test 用に sid の環境が必要になってきた. この目的には,通常は debootstrap で構築した chroot 環境が利用されることが多い. libpam-chroot を利用すると,特定ユーザーでログインした場合には sid の環境を利用する, というような事もできる.
しかし,一般ユーザー権限で作業中に seamless に sid 環境を利用したいとなると, ちょっと難しい.そこで,User Mode Linux との併用でなんとかならないかと考えた. それで調べてみると,rootstrap が使えそうだと思ったのだが,何通りも設定を変えて試してみても, 内部で debootstrap を呼び出している個所のエラーで失敗して先に進めない.
I: Retrieving http://ftp.jp.debian.org/debian/dists/woody/Release E: Failed getting release file http://ftp.jp.debian.org/debian/dists/woody/Release
仕方がないので,debootstrap を使って手作業でディスクイメージを作成した.
dd if=/dev/zero of=/project/sid-root.img seek=4096 count=1 bs=1M mke2fs sid-root.img
mkdir /project/sid mount -t ext2 -o loop /project/sid-root.img /project/sid
debootstrap woody /project/sid http://ftp.jp.debian.org/debian/ chroot /project/sid shadowconfig on passwd root tzselect vi /etc/apt/sources.list apt-get update apt-get dist-upgrade
この設定が欠けていると,以下のエラーメッセージで悩むことになる.apt-get install devfsd vi /etc/default/devfsd # MOUNT=yes とする
fsck.ext2: No such file or directory while trying to open /dev/ubd/0
exit cp -pr /usr/lib/uml/modules/* /project/sid/lib/modules/
umount /project/sid linux ubd0=./sid-root.img
      後は,/home/ 以下を HostFS で見れるようにしたり,
      ネットワークの設定をしたり,という作業が必要なのだが.
      今日はもう疲れはてたので,やめ.
     
これまでずっと,ltmodem に頼ったダイヤルアップ環境を使い続けてきたのだが, 流石にちょっと悲しくなってきたので, P-in Free 1P を購入した.
とりあえず,何も設定せずに挿入してみると,TI16750 として認識される. まず,pppconfig と ppp を導入して,普通にプロバイダを設定する.
# apt-get install pppconfig ppp # adduser username dip # pppconfig
      これで試してみると,
      このページの記述通り,
      確かに速度が出ない.とりあえず,/etc/pcmcia/serial
      を以下のように変更してしのぐことにする.
     
diff -u -r1.1 /etc/pcmcia/serial
--- /etc/pcmcia/serial	2003/09/27 05:41:31	1.1
+++ /etc/pcmcia/serial	2003/09/27 05:45:49
@@ -33,6 +33,11 @@
 # Debian does not use the "cua" devices
     CALLOUT=$DEVICE
 
+config_phscard () {
+	log setserial /dev/$DEVICE uart 16950
+	log setserial /dev/$DEVICE uart 16550A
+}
+
 case "$ACTION" in
 
 'start')
@@ -55,6 +60,7 @@
     if [ -n "$SERIAL_OPTS" ] ; then
 	log setserial /dev/$DEVICE $SERIAL_OPTS
     fi
+    config_phscard
     fi
     if [ -n "$INITTAB" ] ; then
 	echo "S$NR:12345:respawn:$INITTAB $DEVICE" >> /etc/inittab
@@ -96,6 +102,7 @@
     if [ -n "$SERIAL_OPTS" ] ; then
 	setserial /dev/$DEVICE $SERIAL_OPTS
     fi
+    config_phscard
     do_fuser -k -CONT /dev/$DEVICE /dev/$CALLOUT $LINK > /dev/null
     ;;
 
     
      さらに,
      このページの記述を参考にして,
      モデム初期化文字列などを /etc/chatscripts/atfreed に以下のように設定した.
     
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED '' AT&F 'OK\r\n' ATE0\V2&C1&D2&K3&S0S0=0 OK-AT-OK "ATDTxxxx-yyy-zzzz#dddd" CONNECT \d\c
      折角,使い放題を契約したのだから,やっぱり pppd は persist mode で動かしたい.
      というわけで,/etc/ppp/peers/atfreed は以下のようにした.
     
hide-password noauth connect "/usr/sbin/chat -f /etc/chatscripts/atfreed" /dev/ttyS0 115200 defaultroute noipdefault user "username" remotename atfreed ipparam atfreed usepeerdns persist holdoff 5
そして,wmppxp2 に代えて wmppp.app を導入した.
# apt-get install wmppp.app % cat ~/.wmppprc start: pon atfreed stop: poff -a
これで,wmppp を dock に登録しておくと,従来通りの使い方ができるようになった.
      ついでに,resolvconf を導入.
      このパッケージを使うと,pump や ppp, laptop-net など /etc/resolv.conf
      を書き換えるパッケージを適切に調節してくれる.
      例えば,dnsmasq
      をインストールしている環境では,自動的に 127.0.0.1 が /etc/resolv.conf
      に含まれるようになるので,殆んど何も考えないで済む.
     
ところが.PHS カードを挿入したままでは suspend できない,ということが判明した. 前回とは異なり, VMware のドライバを外しても,症状は改善しない. このままでは,suspend しようとする度にカードの抜き挿しを行う必要があることになってしまうが, それは少し過酷すぎる使い方だろう.さて,どうしたものだろうか?
      大学のネットワークでは,DHCP によって通知される DNS サーバーと異なる,独自の
      DNS サーバーを使う必要がある.これまでは,
      laptop-net で
      /etc/resolv.conf を直接書き換えていたが,
      resolvconf を導入すると,
      そんな単純な方法ではうまく動かなくなってしまった(強行すると resolvconf と矛盾してしまう).
     
      そこで,laptop-net から resolvconf を呼び出すことにした.
      具体的には,/etc/laptop-net/profiles/scheme/rc.d/S00resolvconf
      に以下のようなスクリプトを設置した.
     
#!/bin/sh [ -x /sbin/resolvconf ] || exit 0 cat <<EOF | /sbin/resolvconf -a eth0 search private.example.net nameserver aaa.bbb.ccc.ddd EOF
これで無事に独自 DNS サーバーが参照されるようになった. さて,後はサスペンドだ.
      手元で proxy server を動かしているのだが,
      このキャッシュ類も locate database に記録されているという無駄に気がついた.
      そこで,以下のように /etc/updatedb.conf を変更した.
     
diff -u -r1.1 updatedb.conf --- updatedb.conf 2003/09/29 07:14:36 1.1 +++ updatedb.conf 2003/09/29 07:14:53 @@ -4,7 +4,7 @@ PRUNEFS="NFS nfs afs proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs" export PRUNEFS # paths which are pruned from updatedb database -PRUNEPATHS="/tmp /usr/tmp /var/tmp /afs /amd /alex /var/spool /sfs" +PRUNEPATHS="/tmp /usr/tmp /var/tmp /afs /amd /alex /var/spool /var/cache /sfs" export PRUNEPATHS # netpaths which are added NETPATHS=""
唐突に,手持ちの CD を,いつでも聞けるようにしたくなった.
	   @IT
	   の記事を参考にして,grip
	   を使うことにした.ここで,曲名などは日本語で入れたくなるのだが,
	   作成したデータのファイル名も日本語にすると後々面倒なので,
	   kakasi
	   を利用してローマ字に変換するパッチを書いた.
	   このパッチを適用して,~/.grip に以下のように指定すると,
	   曲名をローマ字に変換してからファイル名として使うようになる.
	  
ripfileformat ~/.ogg/%A/%d/%k.wav mp3fileformat ~/music/%A/%d/%k.ogg
なお,ファイル名に日本語をそのまま使う場合は, 「設定」→「その他」→「ファイル名に日本語(EUC-JP)を使う」というオプションを有効にしておかないと, (日本語の曲名については)ファイル名が空になってしまって ripping に失敗する.
[debian-users:36043] を参考にして,フォントセットを使うようにする. xfonts-naga10 をインストールしておいて,以下のように設定した.
-adobe-helvetica-medium-r-*-*-8-*,-misc-fixed-medium-r-*-*-10-*
      いつもは,xsetroot -sold black
      という味もそっけもない背景で暮しているのだが,
      突然に画像を張り付けてみたくなった.
      で,後輩の ~/.xsession を調べてみる.
      ふむ,qiv を使えば良いのか.
     
qiv --fullscreen -z image.jpeg
こんなのを後輩に見つかったら,気が狂ったかと思われるに違いない.
[Top] / [Debian Tips] / [ThinkPad X20] / [作業日誌 2001年, 2002年, 2003年, 2004年]