OpenBlockS に追加でソフトを入れる手順をメモ書きしたもの
環境変数の設定は、これであっているのかどうか不明
# HOSTTYPE=powerpc # MACHTYPE=ssd-linux-gnu # OPENBLOCKS=obss266 # export HOSTTYPE MACHTYPE OPENBLOCKS # cd /usr/src/mkdist/perl # bmake # cd /usr/src/usr.bin/perl # bmake # bmake install
perl と同じ MACHTYPE=ssd-linux-gnu では、build に失敗するようなので、unset MACHTYPE とした。
# cd /usr/src/mkdist/samba # bmake # cd /usr/src/contrib/samba # bmake # bmake install
ここで swat を動かせばいいはずだが、とりあえず直接編集
# cp /usr/contrib/etc/defaults/smb.conf /usr/contrib/samba/lib # vi /usr/contrib/samba/lib
ワークグループ名をPCで変えているのなら、それに合わせる。
$ perl -ne 'print if !/^[#;]/ && !/^$/' /usr/contrib/samba/lib/smb.conf [global] workgroup = WORKGROUP server string = ssdlinux samba %v client code page = 932 coding system = EUC load printers = no guest account = nobody log file = /usr/contrib/samba/var/log.%m max log size = 50 security = user encrypt passwords = yes socket options = TCP_NODELAY interfaces = lo eth0 local master = no dns proxy = no [homes] comment = Home Directories browseable = no writable = yes [public] path = /home/ftp/pub public = yes only guest = yes writable = no printable = no
とりあえず、手動で daemon を起動。
# /usr/contrib/samba/sbin/nmbd -D # /usr/contrib/samba/sbin/smbd -D
ps で見ると daemon としては動いているようだ。Windows Xp から近くのコンピュータに出るようになった。(最初はここで、クリックするとエラーになった。deamon の起動時に -D オプションを忘れていたからかもしれない)。
起動時に自動的に立ち上がるようにする。/etc/rc.local に以下の内容を加える。
if [ -f /usr/contrib/samba/sbin/smbd ]; then /usr/contrib/samba/sbin/smbd -D echo -n ' smbd' fi if [ -f /usr/contrib/samba/sbin/nmbd ]; then /usr/contrib/samba/sbin/nmbd -D echo -n ' nmbd' fi
ユーザーアカウントを加える。Windows で使用しているユーザー名とパスワードを一致させる必要がある。/usr/contrib/samba/private/smbpasswd が生成される。
# /usr/contrib/samba/bin/smbpasswd -a otsuka
一般ユーザーで smbpasswd を使って自分のパスワードを変えられないことが判明。一般ユーザで smbpasswd コマンドが使えない 等調べてみたが、どうも違うようだ。/usr/contrib/samba/var/log.(自ホスト名) の内容は、
[2003/08/08 12:52:48, 0] /usr/src/dist/samba/source/passdb/passdb.c:pdb_free_sam(208) pdb_free_sam: SAM_ACCOUNT was NULL [2003/08/08 12:56:07, 0] /usr/src/dist/samba/source/smbd/chgpasswd.c:check_oem_password(830) check_oem_password: incorrect password length (-1121339689). [2003/08/08 12:56:07, 0] /usr/src/dist/samba/source/passdb/passdb.c:pdb_free_sam(208) pdb_free_sam: SAM_ACCOUNT was NULL
となっていた。smb.conf の interfaces に lo が無かったのを加えてみたが変わらなかった。 [samba-jp-03265] 一般ユーザからパスワード変更ができません にあるように、問題は一般ユーザーで smbpasswd を使うときは、引数にユーザー名を付けてはいけない、という何ともばかばかしい理由だった。
ddo.jp で Dynamic DNS を更新するために、wget と cron を組み合わせて使う。ddo.jp は https をサポートしているので、パスワードを含めても安全(なのかな?)。実行ファイルの属性ぐらいは go-rw にしておこう。
$ cd wget-1.8.2 $ ./configure $ make $ su # make install $ cd ~/bin $ cat >cron.update-ddo <<EOD #!/bin/sh cd $HOME/lib/ddo.jp /usr/local/bin/wget -O ddo.html -o ddo.log 'https://ddo/jp/dnsupdate.php?dn=foo&pw=bar' EOD
毎時 53 分に更新する。毎時 0 分に更新する人が多いので、分散に協力する。一般ユーザーで crontab を始めて使う場合、ssdlinux 0.2-20030417 ではエラーになった。root になって chmod u+s /usr/bin/crontab すれば使えるようになるが、セキュリティ上問題が発生するのかどうかは不明。
$ chmod 700 ~/bin/cron.update-ddo $ crontab -e 53 * * * * /home/otsuka/bin/cron.update-ddo
Dynamic DNS を使って外から ssh を行う場合に注意しないといけない。ddo.jp 側でオフラインだと判断した場合、ddo.jp 側のリダイレクト用のサーバーのアドレスを示すようだ。自宅サーバーからの更新が途絶えた場合、http のアクセスを予め設定しておいたレンタル・サーバーへリダイレクトしてくれる機能だ。ところが、このリダイレクト用のサーバーは ssh に反応してしまうようで、オフライン状態のときに外から接続しようとすると「鍵が間違っている」というようなエラーになってしまう。これには相当悩んだ。
emacs 20.7 のコンパイルは途中でとまるので、emacs 21.3 にしたらうまくいった。
$ cd ~/src/01distfiles $ wget ftp://ftp.iij.ad.jp/pub/GNU/emacs/emacs-21.3.tar.gz $ wget ftp://ftp.iij.ad.jp/pub/GNU/emacs/leim-21.3.tar.gz $ cd .. $ tar xzvf 01distfiles/emacs-21.3.tar.gz $ tar xzvf 01distfiles/leim-21.3.tar.gz $ mkdir -p build/emacs $ cd build/emacs $ ../../emacs-21.3/configure --with-gcc $ time make $ su # make install
コンパイルは20分程度かかる。X toolkit がないと日本語もカラーもマウスもなにも効かない。寂しすぎ。とりあえず、dired で /usr/src とか眺めて回れるようになっただけでもよしとする。
Back Space の扱いが変だ。とりあえず ~/.emacs に、
(if (fboundp 'normal-erase-is-backspace-mode) (normal-erase-is-backspace-mode 0) )
を加える。他にもカラーにしたければ、
(global-font-lock-mode t)
も加える。
[2003/5/26] XFree86 のインストールが出来たので、--with-x を付けてコンパイルしなおした。
$ cd src/build $ mv emacs emacs.noxlib $ mkdir emacs $ cd emacs $ ../../emacs-21.3/configure --with-gcc --with-x $ time make .. (途中略)... real 32m36.392s user 28m44.930s sys 3m33.340s $ sudo make install
Xserverが VNC だと、カーソルのブリンクで無駄なトラフィックが発生するので、以下のオプションを操作してブリンクしないようにした。
Options: Customize Emacs: Browse Customization Group: Environment: Frames: Cursor: Blinking Cursor
[2003/6/26] dired-x にしたら、相対 symbolic link とか表示するファイルの種類をカスタマイズできたりする。.emacs に、
(add-hook 'dired-load-hook (function (lambda () (load "dired-x"))))
を加えて C-x d で呼び出す。
[2003/6/27] dired/dired-x で /hostname:pathname を呼び出せば、ange-ftp を使って別のサーバーのファイルを編集したりできるのだが、今時 ftp ではつらいので、TRAMP と scp を使って編集できるようにした。最初のコネクションを張るときに、ものすごく時間がかかる。
ソースの入手方法や、コンパイルの方法に関しては、Building XFree86 from a Source Distribution にある。身近なミラーサイトから、もらってくれば良い。ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/ から必要なファイルをコピーした。署名(ascファイル)等を確認したほうが良いだろう。フォントやドキュメントをソースから作る必要が無ければ(XFree86/4.3.0/binaries/Common/ 等で入手できる)、X430src-{1,2,3}.tgz だけ展開すれば良い。
$ cd ~/src/01distfiles/XFree86/4.3.0/source $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/source/X430src-1.tgz $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/source/X430src-2.tgz $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/source/X430src-3.tgz $ cd ~/src $ mkdir XFree86-4.3.0 $ cd XFree86-4.3.0 $ tar xzvf ../01distfiles/XFree86/4.3.0/source/X430src-1.tgz $ tar xzvf ../01distfiles/XFree86/4.3.0/source/X430src-2.tgz $ tar xzvf ../01distfiles/XFree86/4.3.0/source/X430src-3.tgz $ cd xc/config/cf $ cp xf86site.def host.def $ vi host.def
ここで、コンパイル方法をカスタマイズする。Xサーバーを作る必要は無いので、コンパイル・オプションを大胆に切っていく(デフォルトはコメントになっているので、'*/' の位置をずらしてコメントになるのを外せば良い)。
#define XF86Server NO #define XnestServer NO #define XVirtualFramebufferServer NO #define XprtServer NO #define BuildFontServer NO #define BuildFonts NO
これで cd xc; make World すれば良いはずだが、xc/programs/xcursorgen/ ディレクトリで libpng が無いために途中で失敗する。/usr/local/lib に libpng を入れてみたが、うまく認識させることが出来ないので、とりあえず、xc/config/cf/host.cf に
#define BuildXcursorgen NO
を加えて make World した。xcursorgen が無いと困る場面があるかもしれない。script World.log とやってから make World したほうが良い。Buildにかなりの時間が必要。
make install; make install.man の後、フォントやドキュメントをバイナリからインストールする。Xfnts.tgz は必須と思われるが、後は必要ないかもしれない。
$ cd ~/src/src/01distfiles/XFree86/4.3.0/binaries $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/binaries/Common/Xdoc.tgz $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/binaries/Common/Xf100.tgz $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/binaries/Common/Xfcyr.tgz $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/binaries/Common/Xfenc.tgz $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/binaries/Common/Xfnts.tgz $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/binaries/Common/Xfscl.tgz $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/binaries/Common/Xhtml.tgz $ wget ftp://ftp.iij.ad.jp/pub/X/XFree86/4.3.0/binaries/Common/Xjdoc.tgz $ su # tar xzvf Xdoc.tgz -C /usr/X11R6 # tar xzvf Xf100.tgz -C /usr/X11R6 # tar xzvf Xfcyr.tgz -C /usr/X11R6 # tar xzvf Xenc.tgz -C /usr/X11R6 # tar xzvf Xfnts.tgz -C /usr/X11R6 # tar xzvf Xfscl.tgz -C /usr/X11R6 # tar xzvf Xhtml.tgz -C /usr/X11R6 # tar xzvf Xjdoc.tgz -C /usr/X11R6 # ldconfig # mkfontdir /usr/X11R6/lib/X11/fonts/misc
/etc/ssh/sshd_config を開いて、X11Forwarding yes として、sshd を再起動(-HUP 送っても終了するだけのようなので注意)後、適当なX端末から ssh で入って、echo $DISPLAY とすると、localhost:10 になっていることを確認。xterm とか xcalc 等が動けばOK。
最近の xterm は、漢字も表示できるはずだが、軽そうなので rxvt を入れる。
$ cd ~/src $ tar xzvf 01distfiles/rxvt-2.7.10.tar.gz.tar $ cd rxvt-2.7.10 $ ./configure --enable-everything $ make $ su # make install
なぜか、rxvt 端末から su できない。
su: Error in service module Sorry.
となってしまう。syslog には、以下のログが残されている。/etc/pam.conf にある pam_rootok の設定が関係している?
su[22677]: pam_authenticate: Error in service module su[22677]: - pts/0 otsuka-root
xterm から su - すれば問題ないので、当面はこれでいく。
stone がうまく動かないので、ssldump してみることにした。ついでに tcpdump も入れる。
# cd ~/src/01distfiles # wget http://www.tcpdump.org/release/libpcap-0.7.2.tar.gz # wget http://www.tcpdump.org/release/tcpdump-3.7.2.tar.gz # wget http://www.rtfm.com/ssldump/ssldump-0.9b3.tar.gz # cd .. # mkdir tcpdump # cd tcpdump # tar xzvf ../01distfiles/libcap-0.7.2.tar.gz # cd libpcap-0.7.2 # ./configure --enable-ipv6 # make # make install # cd .. # tar xzvf ../01distfiles/tcpdump-3.7.2.tar.gz # cd tcpdump-3.7.2 # ./configure --enable-ipv6 --disable-smb # make # make install # cd .. # tar xzvf ../01distfiles/ssldump-0.9b3.tar.gz # cd ssldump-0.9b3 # ./configure # make # make install
Window Manager が必要になるが、軽さと機能(見た目も)のトレードオフを考えると、WindowMaker? になってしまう。OpenBlockS に GNOME や KDE は重過ぎる。かといって、今更 twm とか fvwm (カスタマイズが大変そう)とか使えない。
〇 libjpeg のビルド
Red Hat 7.3 の srpm をばらして使う
$ mkdir -p ~/src/02localpkg/libjpeg/usr/local/include $ mkdir -p ~/src/02localpkg/libjpeg/usr/local/lib $ mkdir -p ~/src/02localpkg/libjpeg/usr/local/man/man1 $ mkdir -p ~/src/02localpkg/libjpeg/usr/local/bin $ make prefix=~/src/02localpkg/libjpeg/usr/local install $ cd ~/src/02localpkg/libjpeg/ $ tar czvf libjpeg-6b-ssdlinux-1.tgz --owner=root --group=wheel usr $ rm -rf usr
〇 libtiff のビルド
Red Hat 7.3 の srpm をばらして使う
〇 libpng のビルド
$ cd ~/src/01distfiles $ wget http://www.libpng.org/pub/png/src/libpng-1.2.5.tar.bz2 $ md5sum libpng-1.2.5.tar.bz2 3fc28af730f12ace49b14568de4ad934 libpng-1.2.5.tar.bz2 $ cd .. $ tar xjvf 01distfiles/libpng-1.2.5.tar.bz2 $ cd libpng-1.2.5 $ cp scripts/makefile.linux Makefile $ sed -i -e "s/^ZLIBLIB=..\/zlib/ZLIBLIB=\/usr\/lib/" \ -e "s/^ZLIBINC=..\/zlib/ZLIBINC=\/usr\/include/" Makefile $ make $ sudo make install $ mkdir -p ~/src/02localpkg/libpng/usr/local/lib $ mkdir -p ~/src/02localpkg/libpng/usr/local/include $ make DESTDIR=~/src/02localpkg/libpng install $ cd ~/src/02localpkg/libpng/ $ tar czvf libpng-1.2.5-ssdlinux-1.tgz --owner=root --group=wheel usr $ rm -rf usr
〇 WindowMaker? のビルド (md5の正当性は確認できなかった)
$ cd ~/src/01distfiles $ wget ftp://windowmaker.org/pub/source/release/WindowMaker-0.80.2.tar.bz2 $ md5sum WindowMaker-0.80.2.tar.bz2 9f4fabc8831af6c58edf8708ee90126f WindowMaker-0.80.2.tar.bz2 $ cd .. $ tar xjvf 01distfiles/WindowMaker-0.80.2.tar.bz2 $ cd WindowMaker-0.80.2 $ ./configure --with-incs-from="-I/usr/local/include" \ --with-libs-from="-L/usr/local/lib" --disable-gif $ make $ sudo make install $ mkdir ~/src/02localpkg/WindowMaker $ make DESTDIR=~/src/02localpkg/WindowMaker install $ cd ~/src/02localpkg/WindowMaker $ tar czvf WindowMaker-0.80.2-ppc-ssdlinux-1.tgz --owner=root --group=wheel usr $ rm -rf usr
HDDの故障予測ができるかも。Debian Packageを配布しているサイトからダウンロードしてくる。
$ cd ~/src/01distfiles $ md5sum smartmontools_5.26-2.agx0.tar.gz b49258343e90dc5a7894d8c9fd205369 smartmontools_5.26-2.agx0.tar.gz $ cd .. $ tar xzvf 01distfiles/smartmontools_5.26-2.agx0.tar.gz $ cd smartmontools-5.26 $ ./configure --prefix=/usr/local \ --sysconfdir=/usr/local/etc --with-initscriptdir=/usr/local/etc/rc.d $ make $ mkdir ~/src/02localpkg/smartmontools $ sudo make install $ make DESTDIR=~/src/02localpkg/smartmontools install $ cd ../02localpkg/smartmontools $ mv usr/local/etc/smartd.conf usr/local/etc/smartd.conf.default $ tar czvf smartmontools-5.26-minig-1.tgz --owner=root --group=wheel usr $ rm -rf usr
ここに記載されている内容を実際に運用した場合のトラブルに関しては一切責任を負えませんのでご了承ください。
Copyright 2000-2005 Koichi Otsuka