- 追加された行はこの色です。
- 削除された行はこの色です。
*追加ソフトのインストール手順
*追加ソフトのインストール手順 [#s7f31d88]
#navi(OpenBlockS)
OpenBlockS に追加でソフトを入れる手順をメモ書きしたもの
**目次
**目次 [#m186e453]
#contents
#ls(title)
-Perl - とりあえず必要
-httpd - Apache, mod_dav, php 等
-Samba - 中からはやっぱりコレ
-wget - Dynamic DNS の更新で必要
-emacs - 家では X11 環境が無いから実力発揮できないが無いと不便
-XFree86 - X11 toolkit を使ったプログラムが作れないと何かと不便
-tcpdump - ssldump も含む
-qmail - sendmail でもいいけど一度はやってみたい
-VNC - 作業中でもPCを切り離せるのが魅力
-WindowMaker - cygwin みたいな環境になってきた
**Perl
**Perl [#da3ef926]
環境変数の設定は、これであっているのかどうか不明
# 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
最近のファームのHDDイメージでは、コンパイル済みのPerlが供給されるようになったので、自分でコンパイルする必要は無くなった。
**Samba [#ie983758]
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] [[一般ユーザからパスワード変更ができません:http://www.samba.gr.jp/project/kb/J0/0/16.html]] にあるように、問題は一般ユーザーで 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 21.3 [#j2ac134b]
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
**XFree86 [#z7210733]
ソースの入手方法や、コンパイルの方法に関しては、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
**rxvt [#j770024d]
最近の 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
**tcpdump [#j2675876]
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
**VNC server
vnc server が動けば、X Server (cygwin) が動かせないような非力な PC でも、複数のコンソールを使って操作できたり、コンパイルなどの時間のかかる処理中にPCを切ったりできる。当然ながら powerpc-ssdlinux のバイナリ・パッケージは用意されていないので、ソースからコンパイルを試みる。オリジナルのソースをそのままコンパイルすると、Xvnc の make World で、以下のようなエラーで止まった。
cd ./config/imake && make -f Makefile.proto all
make[2]: Entering directory `/home/otsuka/src/vnc-3.3.7-unixsrc/Xvnc/config/imake'
gcc -O -ansi -pedantic -I../../include -I../../exports/include/X11 (以後省略)
gcc: cannot specify -o with -c or -S and multiple compilations
make[2]: *** [imake.o] Error 1
make[2]: Leaving directory `/home/otsuka/src/vnc-3.3.7-unixsrc/Xvnc/config/imake'
make[1]: *** [imake.bootstrap] Error 2
make[1]: Leaving directory `/home/otsuka/src/vnc-3.3.7-unixsrc/Xvnc'
make: *** [World] Error 2
vnc-list の検索で、同様の問題があるようだが、簡単な解決方法は無いようだ。
簡単な修正ではコンパイルが通りそうもないので、Red Hat の SRPM を取り寄せて調べてみたら、vnc 3.3.3r2 をベースに18ものパッチを当てて組み立てられていた。パッチを眺めてみたら、オリジナルのコードは、Intel 以外の環境ではコンパイルしたことが無いような様子。
PowerPC版がある、Debian のパッケージから vncserver 3.3.7-1 の patch を取り寄せてコンパイルしてみることにする。
$ mkdir ~/src/01distfiles/vnc
$ cd ~/src/01distfiles/vnc
$ wget http://www.realvnc.com/dist/vnc-3.3.7-unixsrc.tar.gz
$ mkdir debian-package; cd debian-package
$ wget http://ftp.debian.org/debian/pool/main/v/vnc/vnc_3.3.7-1.diff.gz
$ cd ../../..
$ tar xzvf 01distfiles/vnc/vnc-3.3.7-unixsrc.tar.gz
$ cd vnc-3.3.7-unixsrc
$ zcat ../01distfiles/vnc/debian-package/vnc_3.3.7-1.diff.gz | patch -p1
$ ./configure --with-installed-zlib
$ make
$ cd Xvnc
$ make World
コンパイルは成功するようだ。
# cd ~/src/vnc-3.3.7-unixsrc
# ./vncinstall /usr/local/bin /usr/local/man
# mkdir -p /usr/local/vnc/classes
# cp classes/* /usr/local/vnc/classes
# cd /usr/lib
# ln -s ../X11R6/lib/X11 .
実行に先立って、パスワードを設定
$ vncpasswd
$ cat <<EOF >.vnc/xstartup
#!/bin/sh
exec /usr/X11R6/bin/xterm -ls
EOF
$ vncserver -depth 16 -geometry 1280x1024 :1
あとは、Windows 等の vncviewer から 'ホスト名:1' に接続すればよい。
**WindowMaker
**WindowMaker [#l9bce88b]
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
--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 [#jeb1ac7d]
HDDの故障予測ができるかも。Debian Packageを配布しているサイトからダウンロードしてくる。
-[[@IT:ハードディスクのS.M.A.R.T.情報を表示するには:http://www.atmarkit.co.jp/flinux/rensai/linuxtips/521smartinfo.html]]
-[[smartmontools Home Page:http://smartmontools.sourceforge.net/]]
-[[smartmontools_5.26-2.agx0.tar.gz:http://honk.physik.uni-konstanz.de/~agx/linux-i386/debian/smartmontools/smartmontools_5.26-2.agx0.tar.gz]]
-[[smartmontools_5.26-2.agx0.dsc:http://honk.physik.uni-konstanz.de/~agx/linux-i386/debian/smartmontools/smartmontools_5.26-2.agx0.dsc]]
$ 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
#include(免責事項)