Plamo Linux 2.1で寺子屋
LASER5 Linuxに致命的な不満はあまり無いんですが、重たいのが気になります。
Linux Japan2000年7月号にPlamo Linux 2.0が出たので、さっさと乗り換えることにしました。
KDEもちゃんと動いています。
基本的にPlamo 1.4.xとあまり変化がありませんが、contribが貧弱なので自分でコンパイルを基本にしたほうが良いでしょう。
バス修正されているので、Plamo 2.0は使わないほうが良いでしょう。
SoftwareDesign 2000年11月号に収録されています。
最近の情報はここ。
最近Plamo 2.1でインストールしたので、細かい部分を書き直しました(2001/5/1)
特に指示の無い場合はsuでrootの権限で作業を行ってください。
1 インストール
おまかせで十分です。
LANがある場合は一緒にどうぞ。
contribにあるKDEを入れるときは、memo.txtを良く読んでから作業しましょう。
ユーザのホームディレクトリにある .cshrcのqtとkdeのPATHは間違っています。localを外す必要があります。
hosts.allow hosts.denyは例によって外部からのコネクションを拒否する設定なので、全てコメントにしましょう。
ルータを使ってインターネットに接続している方はインストール時にLANが使えるように設定しておくと良いです。
LANカードを認識していてax.25ドライバを入れる前ならnetconfigコマンドでインストール後でも設定できます。
netconfigは/etc/hostsと/etc/rc.d/rc.inet1を破壊するので、特にax.25ドライバを使えるようにした後は気を付けて下さい。
後者は手で直せますが、前者は場合によってはショックが大きいですからバックアップを取っておいたほうが良いでしょう。
可能ならXF86Setupを起動してX-Windowsを使えるようにしておくと、たとえばNetscape CommunicatorでこのページをLinux上で見ることが出来るので作業が楽です。
設定ファイルをマウス左ボタンドラッグで範囲指定して、中央ボタンで貼り付け、修正という技も出来ますね。
Netscape ComminucatorはCDのcontrib/NetScapeにあります。
2 カーネルの再構築
cd /usr/src/linux
make menuconfig
make dep ; make clean ; make bzlilo ; make modules ; make modules_install
make bzliloにすればbzImageを/boot/にcpなんとかかんとかはしなくても 大丈夫なようです。
kernel2.2.18も出ているので、この際入れ替えるのも良いでしょう。
今回はモジュール化(Amateur Radio Supportの各欄をYではなく、Mにする)化してみました。
カーネル内蔵だと起動時にメッセージが出るので、それを回避するためです。
[*] Amateur Radio support
--- Packet Radio protocols
<M> Amateur Radio AX.25 Level 2 protocol
[ ] AX.25 DAMA Slave support
<M> Amateur Radio NET/ROM protocol
<M> Amateur Radio X.25 PLP (Rose)
--- AX.25 network device drivers
<M> Serial port KISS driver
3 ax.25 driverのコンパイル
これだけのファイルを用意して下さい。
サーチエンジンで探すと出て来ます。
libax25-0.0.7.tar.gz
ax25-apps-0.0.4.tar.gz
ax25-tools-0.0.6.tar.gz
node-0.3.0.tar.gz
上から順番にコンパイルします。
どれも手順は一緒です。
./configure --exec_prefix=/usr --sysconfdir=/etc --localstatedir=/var
make
make install
make installconf
4 ax.25の立ち上げ
要はrc.ax25を作ってどこからか起動させるだけです。
/etc/rc.d/rc.localはタイミング的に遅いので、/etc/rc.d/rc.inet1の最後が望ましいです。
今回はモジュール化したので、insmodで必要な機能を組み込みます。
/etc/ax25はPlamo1.4.xの方を見て適切に書き換えて下さい。
#!/bin/sh
insmod ax25
insmod netrom
insmod rose
insmod mkiss
echo 'KPC-4 2port'
/usr/sbin/mkiss -s 9600 /dev/ttyS1
/dev/ptyq0 /dev/ptyq1
echo 'port attach'
/usr/sbin/kissattach -m 512 /dev/ttyS0 ax0
133.93.32.4
/usr/sbin/kissattach -m 512 /dev/ttyq0 ax1 133.93.32.4
/usr/sbin/kissattach -m 512 /dev/ttyq1 ax2 133.93.32.4
/usr/sbin/kissparms -p ax0 -t 500 -r 10 -s 10
/usr/sbin/kissparms -p ax1 -t 500 -r 10 -s 10
/usr/sbin/kissparms -p ax2 -t 500 -r 10 -s 10
echo 'network configure'
/sbin/ifconfig ax0 133.93.32.4 netmask
255.255.255.255 up
/sbin/ifconfig ax0 broadcast 133.93.32.255 mtu 216
/sbin/ifconfig ax1 133.93.32.4 netmask 255.255.255.255 up
/sbin/ifconfig ax1 broadcast 133.93.32.255 mtu 216
/sbin/ifconfig ax2 133.93.32.4 netmask 255.255.255.255 up
/sbin/ifconfig ax2 broadcast 133.93.32.255 mtu 216
echo 'route set'
/sbin/route add -host dwa window 4096 ax2
/sbin/route add -host cwz window 4096 ax0
/sbin/route add -host jtp1 gw cwz
/sbin/route add -net 172.25.252.0 netmask 255.255.255.0 gw cwz
/sbin/route add -net 133.93.32.0 netmask 255.255.255.0 gw dwa
#arp lock(Digipeat)
#arp -H ax25 -s dwa jg4dwa-1
#digipeat route set
#axparms -route add ax1 ja5adw-2 jh5yne-2
echo 'NET/ROM start'
nrattach -i 133.93.32.4 netrom
/sbin/ifconfig nr0 133.93.32.4 netmask 255.255.255.255 up
/sbin/ifconfig nr0 broadcast 133.93.32.255 mtu 216
netromd -i -t 30
echo 'mheard log start'
/usr/sbin/mheardd -f -n20
echo 'ax25d start'
/usr/sbin/ax25d
echo 'console user add'
axparms -assoc je4smq maachan
#beacon
#beacon ax0 -t 15 -c JE4SMQ -d LINUX "Now running Linux at
kurashiki on TCP/IP over AX.25"
#beacon ax1 -t 15 -c JE4SMQ -d LINUX "Now running Linux at
kurashiki on TCP/IP over AX.25"
#beacon ax2 -t 15 -c JE4SMQ -d LINUX "Now running Linux at
kurashiki on TCP/IP over AX.25"
rc.ax25を動かして無事ifconfigの結果が良ければpingなりtelnetなりしてみて
ください。
/etc/hostsへ接続先を登録することを忘れずに。
ax0 Link encap:AMPR AX.25
HWaddr JE4SMQ-1
inet
addr:133.93.32.4 Mask:255.255.255.255
UP RUNNING
MTU:216 Metric:1
RX
packets:1 errors:0 dropped:0 overruns:0 frame:0
TX
packets:61 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
ax1 Link encap:AMPR AX.25
HWaddr JE4SMQ-2
inet
addr:133.93.32.4 Mask:255.255.255.255
UP RUNNING
MTU:216 Metric:1
RX
packets:0 errors:0 dropped:0 overruns:0 frame:0
TX
packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
ax2 Link encap:AMPR AX.25
HWaddr JE4SMQ-3
inet
addr:133.93.32.4 Mask:255.255.255.255
UP RUNNING
MTU:216 Metric:1
RX
packets:3 errors:0 dropped:0 overruns:0 frame:0
TX
packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
nr0 Link encap:AMPR NET/ROM
HWaddr JE4SMQ-8
inet
addr:133.93.32.4 Mask:255.255.255.255
UP RUNNING
MTU:216 Metric:1
RX
packets:0 errors:0 dropped:0 overruns:0 frame:0
TX
packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
5 inn 2.2.3
contribにはありません。自分でコンパイルしましょう。
何もオプションをつけずにコンパイルしました。
まずinn-2.2.3.tar.gzをgetします。
http://www.isc.org/あたりにあるようです。
とりあえずtarを展開しましょう。
su
cp inn-2.2.3.tar.gz /usr/local/src
cd /usr/local/src
tar zxvf inn-2.2.3.tar.gz
展開できたら早速コンパイルしましょう。
cd inn-2.2.3
./configure
首尾良くMakefile.globalが出来たら
make
コンパイルエラーがなければとりあえず一休みしてください。
いよいよインストール。
make install
ここからは設定ファイルの書き換えです。
ここからはinnの起動が成功するまでnewsの権限で作業です。
su
su news
/usr/local/news/etc/inn.conf(抜粋)
organization: Future Engineering
Laboratory of Internet conneXion
server: localhost
pathhost: je4smq
moderatormailer: news@je4smq.felix.or.jp
domain:
#fromhost:
...
artcutoff: 365
...
innflags:(このあとの空白を削る)
/usr/local/news/etc/newsfeeds(抜粋)
接続タイプに応じて選んでください。
MEとoverchanの行は必須です。
ME:!*::
overview!:*:Tc,WO:/usr/bin/overchan
#VIA Internet
#uucp
june/june:*,!magical-bbs.*,!fj.*,!jlug.*,!tnn.*,!junk,!japan.*,!local.*,!control.*,!prug.*,!zoj.*,!apg.local*,!tiki.*,!tameike.*:Tf,Wnb:
#suck
paku/news.paku.net:*,!magical-bbs.*,!fj.*,!tnn.*,!junk,!japan.*,!local.*,!control.*,!prug.*,!zoj.*,!apg.local*,!tiki.*,!tameike.*:Tf,Wnm:
#nntp
ja5cwz/ja5cwz:*,!magical-bbs.*,!junk,!jlug.*,!kansai.*,!local.*,!control.*,!prug.*,!zoj.*,!apg.local*,!tiki.*,!tameike.*:Tf,Wnm:
/usr/local/news/etc/incoming.conf(抜粋)
外部からこちらに接続を許可する相手の一覧です。
streaming: true # streaming allowed
by default
max-connections: 8 # per feed
peer ME {
hostname: "localhost, 127.0.0.1"
}
peer spd {
hostname: "ja5cwz.sman.prug.or.jp, jg4dwa.spd.prug.or.jp,
jr4snp.spd.prug.or.jp, jk4wdu.spd.prug.or.jp"
}
/usr/local/news/etc/nnrp.access(抜粋)
ニュースリーダからの接続を許可する相手の設定です。
規定値そのままで良いかもしれません。
stdin:Read Post:::*
localhost:Read Post:::*
127.0.0.1:Read Post:::*
*.spd.prug.or.jp:Read Post:::*
*.felix.or.jp:Read Post:::*
/usr/local/news/etc/nntpsend.ctl(抜粋)
ニュースを送る相手を登録します。
この設定で、ある程度以上無通信の場合は自動的にNNTPコネクションを切断します。
ja5cwz:ja5cwz.sman.prug.or.jp:1m:-T1800 -t300
/usr/local/news/db/active
ニュースグループ一覧です。
大きいので、こちらからどうぞ。
ここまで設定できたら
/usr/local/news/bin/innchech
で設定ファイルを確認します。
bash$ /usr/local/news/bin/inncheck
/etc/news/newsfeeds:0: warning you accept all incoming
article distributions
このエラーは無視できますが、他の内容の場合は必ずエラー内容を確認して指示に従って修正して下さい。
間違えていたら指示に従って修正して下さい。
かなり具体的にエラーが出ます。
次にhistoryファイルの再構築をします。
cd /usr/local/news/db
/usr/local/news/bin/makehistory -f history
最低限の設定が完成したので、いよいよ起動実験をします。
/usr/local/news/bin/rc.news
動作チェックはtelnet localhost nntpとしてnews serverと通信出来るか確認します。
200 je4smq InterNetNews server INN 2.2.3 18-Jul-2000 ready
と出たら成功。
quitで終了。
良さそうなら再起動して一般ユーザでmnews -Dlocalhostなりで投稿テストをしましょう。
以下の作業もrootでやっておきましょう。
/var/log/newsにログが集約されます。
cd /var/log/
ln -s /usr/local/news/log news
/etc/syslog.confにログを残す設定をすることもお忘れ無く。
トラブル時に役に立ちます。
news.crit
/var/log/news/news.crit
news.err
/var/log/news/news.err
news.notice
/var/log/news/news.notice
自動起動のために/etc/rc.d/rc.localからrc.newsを起動するようにします。
なるべく一番上が望ましいです。
/etc/rc.d/rc.local(抜粋)
#news server
su - news -C /usr/local/news/bin/rc.news
再起動してきちんとinndが動いているか確認します。
maachan@je4smq(104)% ps ax|grep inn
141 ? S 0:00 /usr/local/news/bin/innd -p4 -r
188 ? S 0:00 sh /usr/local/news/bin/innwatch
3927 ttyp7 R 0:00 grep inn
もし、起動時にホームディレクトリが無いとかエラーメッセージが出た場合は、ユーザnewsのホームディレクトリが存在しない場所に設定されています。
vipwで修正しましょう。
news:x:9:13:news:/usr/local/news:
ここまでで普段の動作は出来ますが、日時のバッチ処理と定期的に外部へ未送信ニュースを送るためにcrontabへ登録です。
/var/spool/cron/crontabs/newsを作成します。
1,6,11,16,21,26,31,36,41,46,51,56 * * *
* /usr/local/news/bin/nntpsend
39 * * * * /usr/local/news/bin/rnews -U
6 0 * * * /usr/local/news/bin/news.daily delayrm expireover
0 5 * * 1 /usr/local/news/bin/expireover -s
6 sendmail
残念ながら、nomx版がついてこなくなりました。
将来のことも考えて自分でコンパイルしましょう。
ここが大変参考になりました。
なぜか付属のdbはおかしいので、sleepycatのサイトからdb-2.7.7.tar.gzをコンパイル、インストールします。
今はVersion3も出ているようですが...まあ、いいでしょう。
cd /usr/local/src
tar zxvf db-2.7.7.tar.gz
cd db-2.7.7/build_unix
sh ../dist/configure
make
su
make install
これでインストール終了です。
以下のものが出来ます。
libdb.a => /usr/local/BerkeleyDB/lib/libdb.a
関連するインクルード・ファイル => /usr/local/BerkeleyDB/include/
いくつかのユーティリティ・プログラム =>
/usr/local/BerkeleyDB/bin/
いよいよsendmailのコンパイルです。
上の説明は少々古いバージョンなので、比較的新しいsendmail 8.9.3を対象にします。
sendmail.8.9.3.tar.gzはここ、WIDEパッチのsendmail893+3.2W.patch.gzはここにあります。
とりあえず両方とも/usr/local/srcへ置きます。
展開します。
cd /usr/local/src
tar zxvf sendmail.8.9.3.tar.gz
gzip -d sendmail893+3.2W.patch.gz
WIDEパッチを当てます。
cd sendmail-8.9.3/src
patch < ../../sendmail893+3.2W.patch
エラー無く当たったらまずは成功です。
次にLinux用設定を書き換えます。
cd /usr/local/src/sendmail-8.9.3/BuildTools/OS
vi Linux
以下の内容にします。
confENVDEFからオリジナルと内容が異なっているので注意してください。
# @(#)Linux 8.4 (Berkeley) 3/22/1998
define(`confSTDIR', `/etc')
define(`confHFDIR', `/usr/lib')
define(`confDEPEND_TYPE', `CC-M')
define(`confMANROOT', `/usr/man/man')
define(`confENVDEF', `-DHASSNPRINTF=1 -DUSE_VENDOR_CF_PATH
-DNAMED_BIND=0')
define(`confSBINDIR', `/usr/sbin')
define(`confMAPDEF', `-DNEWDB')
APPENDDEF(`confINCDIRS', `-I/usr/local/include
-I/usr/local/BerkeleyDB/include/ -I..')
APPENDDEF(`confLIBDIRS', `-L/usr/lib -L/usr/local/lib
-L/usr/local/BerkeleyDB/lib/')
これでdbを使うのと、MXを引かない設定が入っています。
いよいよコンパイルです。
一度コンパイルしてしまうと上で作ったLinux用設定ファイルを後で書き換えても認識しないので、よく確かめてからコンパイルしましょう。
cd /usr/local/src/sendmail-8.9.3/src/
./Build
結果が良さそうなら
./Build install
これでsendmailが入れ替わります。
デーモンで起動中のsendmailも入れ替えましょう。
分かっていれば現行のsendmailにkill -HUPでも良いでしょうが、一番良いのは再起動です。
再起動後、無事にデーモン状態で動いていればまあ大丈夫でしょう。
bash# ps ax|grep sendmail
107 ? S 0:00 sendmail: accepting connections on port 25
1819 ttyp7 R 0:00 grep sendmail
何か問題があったときにOSからroot宛にメールが来ますが、rootは保守時以外は使わないほうが良いです。
/etc/aliasesを書き換えてroot宛のメールは管理者が普段使うユーザへ転送するようにしたほうが良いです。
こんな感じです。
私はmaachanなので、maachanへ転送するようにしています。
コロンとユーザ名の間はスペースではなくタブです。
# Basic system aliases -- these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
games: root
ingres: root
nobody: root
system: root
toor: root
uucp: root
# Well-known aliases.
manager: root
dumper: root
operator: root
news: root
usenet: root
# trap decode to catch security attacks
decode: root
root: maachan
書き換え後はnewaliasesを実行してsendmailへ認識させましょう。
bash# newaliases
/etc/aliases: 17 aliases, longest 10 bytes, 181 bytes total
7 CF
cd /usr/src/CF-3.7Wpl2/Samples/して、*.def,*.deliverを作ります。
Plamo 1.4.xと何ら変わりありません。
8 crontab関係
Plamo 1.4.xと同じです。
nntpsendやらnews.dailyやらをrootやnewsに仕込んで下さい。
存在しないパスにならないように注意して下さい。
9 suck
付いて来ません。
自分でコンパイルしましょう。
suck-4.2.2.tar.gzは動きました。
LASER5 Linuxに詳しい注意点があります。
10uucp
なんと付いて来ません。
uucpが必要な方はuucp-1.06.2.tar.gzをサーチエンジンで探してコンパイルして下さい。
何も考えずにコンパイルした場合、設定ファイルは/usr/conf/uucpに 置きます。
このディレクトリは自分で作って下さい。
uucicoは/usr/lib/uucpにあります。
sys port dial等はLASER5 Linuxと全く一緒で大丈夫でした。
ログは/var/spool/uucpに出来ます。
通信記録はLogファイルに出来ます。
通信速度はStatsファイルに出来ます。
/usr/lib/uucp/uucicoは必ずuucpの権限で実行してください。
ホームディレクトリが無いだのとエラーが出た場合はvipwでユーザuucpのホームディレクトリは実在する場所へ変更してください。
uucp:x:10:14:uucp:/var/spool/uucppublic:
11mnews
おまかせで入れると入っています。
V1.22と上がってもいるんですが、自分でコンパイルしたほうが良いでしょうね。
mnews122PL1.tar.gzを入れました。
その他dhcp-2.0.tar.gzやらxntp3-5.93-export.tar.gzやらもコンパイルして入れましたが、趣味の問題です。
付属のviが腐っている(カーソルキーがうまく動かない hjklは大丈夫)ので、非常に困りました。
contrib/Texttool/jvim.tgzをinstallpkgで入れたら動いたので、これでごまかしています。
emacsで良い人には関係ないですが、viな方は注意して下さい。