*追加ソフトのインストール手順
*追加ソフトのインストール手順 [#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(免責事項)


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS