OpenBlockS / Packages


追加ソフトのインストール手順


OpenBlockS に追加でソフトを入れる手順をメモ書きしたもの

目次

  • Perl - とりあえず必要
  • httpd - Apache, mod_dav, php 等
  • Samba - 中からはやっぱりコレ
  • wget - Dynamic DNS の更新で必要
  • emacs - 家では X11 環境が無いから実力発揮できないが無いと不便
  • XFree86 - X11 toolkit を使ったプログラムが作れないと何かと不便
  • tcpdump - ssldump も含む
  • qmail - sendmail でもいいけど一度はやってみたい
  • WindowMaker? - cygwin みたいな環境になってきた

Perl

環境変数の設定は、これであっているのかどうか不明

# 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

Samba

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 を使うときは、引数にユーザー名を付けてはいけない、という何ともばかばかしい理由だった。

wget

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 21.3

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 を使って編集できるようにした。最初のコネクションを張るときに、ものすごく時間がかかる。

XFree86

ソースの入手方法や、コンパイルの方法に関しては、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。

rxvt

最近の 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 - すれば問題ないので、当面はこれでいく。

tcpdump

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

WindowMaker?

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

smartmontools

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