#1年以上前に始めたのにほったらかしだった・・・・。
そこで、まず、月刊ASCIIが手近に転がっていたので、付属のCDROMからVineLinux1.1を入れてみることにした。会社では毎月ASCIIを買っているのでたまに役に立つ。 さて・・・・・、なんかうまくいかない。確かに用意したハードウェアも適当だったのでそれが悪いのかもしれないが、どうにもインストール中にこける。困ったものだ。
モチベーションが下がったところで気持ちを入れなおし、会社の同僚(上司)から、以前、TURBOLINUXを入れていたという話を思い出し、TURBOLINUX4.0付きの教則本を借りてインストールを試みることにする。 しかし、これも不調。PC-ATにPC-UNIXを入れる際にひっかかりやすい、Windowsではとりあえずサポートしてるよーん、的なデバイスを再調査することにする。
他のUNIX関係の雑誌や、VineLINUXの本もあったので迷ったが、 一番充実していた↑の本のディストリビューションがTURBOだったのでひとまずTURBOでいくことにここで決めた。
肝心のソフト本体の入手方法は、TURBOLINUXのサイトからFTPで一通りダウンロードするか、CDROMなどを探すなどがあるのだが、いつもそんなのばかりだったので、今回はマニュアルとCD-ROMとサポートがセットになったパッケージ品を試しに買ってみることにした。 (商用アプリケーションやサポートが欲しかったわけではないのだが・・・) 新宿西口ヨドバシカメラで、他のディストリビューション(Vine、Kondara)と迷うが、今、ユーザ登録するとVMwareがただでもらえるというのにつられて「TURBOLinuxWorkStation6.0日本語版」に決めた。約8000円なり(後日1週間以内にVMwareが届く)
今回インストールに用いたマシンだが、職場に余っていた(というか去年まで自分で使っていた)、DELLのPentium150MHzマシン。主なスペックは次のとおり。
・DELL Optiplex5150(3comNIC、S3VRAM2M、onboard) ・IDEHDD 1G ・AHA-2940(with SeagateSCSIHDD 2G) ・IDE CDROM
さて、これからどうなるやら・・・。
当マシンにはSCSIのCDROMドライブがついていたのだが、インストール開始直後、IDE接続のCD-ROMが必要そうな雰囲気になったので、せっせとIDEのCDROMドライブに換装したら、その後、有名なSCSIカードで接続されている場合は使えることが判明・・・せっかく換えたのに。気を取り直してインストールを続行する。
基本的にインストール中の流れは分かりやすく、マニュアルに沿ってやれば、そうそうはまるところはない。SCSIとNIC(LANカードね)の自動認識があるが、著名なカードならここで認識される。2枚目のNICを差している場合、認識されないことが多いようなので、ここではひとまず1枚だけ認識させる。
つまずきそうなところは、HDDのパーティションの切りわけか。昔Linuxをインストール したときは1Gも必要なかったような気がするのだが、どうやら開発者向けのフルインス トールだと1.2Gの空き領域が必要のようである。 (地道にパッケージを取捨選択すればもう少し少なくなるだろうが、非常に面倒そうである)
よって、ここでは以下のような構成をとってみた。
/ 100MB /usr 1300MB /home 1000MB /var 500MB swap 100MB
3Gもあったのでふんだんに/usrと/homeに割り当ててみた。 さらに、3Gとは別に、去年使っていた2GのWindowsパーティションもあるので、/mnt/dos、という感じで割り当ててみた。 これらは起動時に自動的にmountされるそうで、中々便利だ。 (FDISK、CFDISKのコマンド自体は若干使いにくいかもしれないが、がんばって欲しい)
パーティションを切ったらフォーマットをして、TCP/IPの設定。 ひとまず、会社から割り当てられている、IPアドレス/ネットマスク、ゲートウェイアドレス、DNSサーバアドレスなどを設定する。 ドメイン名、ホスト名が若干ややこしい。適当に入力するとあとあとはまるので要注意。ホスト名を仮にaaaとすると、
例 ドメイン名:asahi-net.or.jp ホスト名:aaa.asahi-net.or.jp
といった感じで設定する。NFSはキャンセルして、Turbopkgに進む。
Turbopkgはインストール後もつかえる、パッケージ専用インストーラー?らしく、選択したパッケージを簡単に追加できるようだ(便利になったものだ・・・) とりあえず、開発ワークステーションが1151MBで、ワークステーションが1055Mだったので、大差なかったのだが、ワークステーションをインストール。
パッケージをインストールされるのを待つこと30分程度。インストールが完了したら再起動をはさみつつ、カーネルの選択ではデフォルトを選択(DualCPUの場合、ここで選択できる。魅力的やね〜) LILOは、あまり気にせずMBR(マスターブートレコード)にインストール(若干危険だけど、最悪Winパーティションはいらないし)。 代わりに起動可能パーティションに、Linux以外にWinも選んでおく。 時間帯設定、rootのパスワードの設定などで大体完了。
でもってXの環境設定のTurboXcfgが起動。キーボードやマウスやビデオカードの設定を行なう。マウスはMicrosoftのインテリマウス(グリグリスクロールにも対応しているのね)を選択。問題のビデオカードの設定だが、予想通りはまった。 最初、マシンにはFIREGL1000を挿しており、Linux側で対応しているはずなのだが、どうにもテスト用のXの画面が表示されず、しかも、強制終了もできずにはまる。 どうにも、オンボードで搭載されているビデオカード(というかチップ)がまずかったのか、FireGLはあきらめたら事なきを得たのだが、、、。まぁ、余り気にせずすすむ。 あとは使用する画面モード(解像度)と周波数、モニタの種類などを適当に選択する。液晶モニタだったので、1024x768を選択した(大体適当でもどうにでもなるものだ)
最後にログイン方法、ウインドウマネージャー、起動時のサービスを指定する。ログイン方法はxdmというのを使ったグラフィカルログイン(いわゆるWindowsっぽい感じ)とテキストログインがあるのだが、これは好みで選択すればよいだろう。WMはいまどきの「GNOME」、起動サービスはほとんどデフォルトにしておく(これらも皆、あとから設定できるので)
これで大体のインストールは完了。と書くと簡単だが、それなりにはまってたりする。
LILO:で、Enterなり、待つなりで起動。ひとまずrootでログインする。 ktermで、uname -aでカーネルなどの情報が得られる。2.2.13-33らしい。
そんなんでこんな感じ(画面キャプチャ)。 キャプチャは最初、xwdを使おうと思ったらなぜかエラーが出たので、GIMPでやってしまった・・・。
$adduser yoshi
とか、そんな感じで追加しておき、必要時にsuでスーパーユーザーになることにする。 (suはswitch userの略らしいのだが)シェルはデフォがbashだったので、bashでいく。 (bashはBourne again shellの略だとか)ちなみに、suする際に
$su -
としないと環境変数が、元のユーザ?のものが引き継がれてしまい、パスが通っていないためにsbinの中のファイルなどが実行できないので要注意。
どうもカードのリビジョンが新しくなったためか、カーネルのバージョンをあげてみたり、ドライバのソースの中を書き換えてコンパイルしなおしたり、散々手を尽くしたのだがNGだった。PCIだったので簡単に認識するかと思ったのだが・・・・。 やむなく、あまっていたISAのカード(HP製らしい)を挿してみる。
格闘の結果
$ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:C0:4F:D5:9B:97 inet addr:131.11.2.11 Bcast:131.11.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:16019238 errors:0 dropped:0 overruns:0 frame:0 TX packets:128723 errors:0 dropped:0 overruns:0 carrier:1610 collisions:1940 txqueuelen:100 Interrupt:10 Base address:0x250 eth1 Link encap:Ethernet HWaddr 08:00:09:A6:72:A1 inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:87174 errors:4350 dropped:0 overruns:0 frame:4350 TX packets:93828 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:11 Base address:0x180 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:1413 errors:0 dropped:0 overruns:0 frame:0 TX packets:1413 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
こんな感じになった。ここで、簡単な手順だが、すでにNICのドライバがモジュール化されている場合は、その名前を/etc/modules.confに記述する。ここでは、3c509(インストール時に設定)と、hp100がそうである。
#If you want to use i810, uncomment the next alias. #alias char-major-10-175 agpgart alias net-pf-5 appletalk alias eth0 3c509 alias scsi_hostadapter aic7xxx alias eth1 hp100 alias net-pf-6 off
ここで読み込まれているモジュールの一覧をlsmodで見ると
# lsmod Module Size Used by hp100 13716 1 (autoclean) 3c509 5308 1 (autoclean) ip_masq_mfw 2792 0 (unused) ip_masq_portfw 2164 0 (unused) ip_masq_autofw 2108 0 (unused) ip_masq_ftp 2056 0 nls_iso8859-1 2024 1 (autoclean) nls_cp437 3548 1 (autoclean) vfat 11172 1 (autoclean) fat 29888 1 (autoclean) [vfat] aic7xxx 122756 4
となっている。ここで対応するドライバのモジュールが無いとかなりはまる・・・。
さらに、ネットワークインターフェースの設定をする。
/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 IPADDR=131.11.2.11 NETMASK=255.255.0.0 NETWORK=131.11.0.0 BROADCAST=131.11.255.255 ONBOOT=yes /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth1 IPADDR=10.0.0.1 NETMASK=255.255.255.0 NETWORK=10.0.0.0 BROADCAST=10.0.0.255 ONBOOT=yes BOOTPROTO=none
ここらへんは、X-windowで、rootでturbonetcfgを起動すれば、わかり易く設定できるので便利かもしれない。
起動時のメッセージをdmesgで見てみると、
eth0: 3c509 at 0x250 tag 1, 10baseT port, address 00 c0 4f d5 9b 97, IRQ 10. 3c509.c:1.16 (2.2) 2/3/98 becker@cesdis.gsfc.nasa.gov. eth0: Setting Rx mode to 1 addresses. hp100: eth1: Using (slow) programmed i/o mode. hp100: eth1: HP J2573 at 0x180, IRQ 11, ISA bus, 64k SRAM (rx/tx 75%). hp100: eth1: Adapter is attached to 10Mb/s network.
こんな感じ。
なぜ呼び出せないのか?まず呼び出されたときに起動していいかの設定を見る。
/etc/inetd.conf # # These are standard services. # ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
ここで使用するサービスが#でコメントアウトされていたら、#をはずすい。 逆に無用なサービスを起動させないというセキュリティホールを防ぐにはコメントアウトする。書き換えた内容を反映させるには、
$kill -HUPもしくはTurbolinuxでは $/etc/rc.d/init.d/inet restart
で、inetdが再起動される。
しかし見落としやすいのはこっちと思われる。
$ less /etc/hosts.allow # # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # See man hosts_access(5) for more information ALL : 127.0.0.1 ALL : 10.0.0. ALL : 131.11.
このhosts.allowファイルで記述されているホストからのアクセスしか許可しない、ということを設定するファイルである。これがないと別のマシンからTELNET等ができないようだ。今回は特にセキュリティに気を使わないのでALLなどで適当に設定。inetdの再起動は不要とのこと。
$ ps -ef |grep telnet root 16090 278 0 13:46 ? 00:00:00 in.telnetd: 10.0.0.20
/proc/sys/net/ipv4/ip-forword
これが1であるということで、それが確認できる。
まず、IPマスカレードの機能の一部がモジュールとして提供されているので、それを読み込む必要がある(インストールはされている)さらにネットワークの設定もする
/etc/rc.d/rc.modules modprobe ip_masq_ftp.o modprobe ip_masq_autofw.o modprobe ip_masq_portfw.o modprobe ip_masq_mfw.o /etc/sysconfig/network NETWORKING=yes HOSTNAME=moon DOMAINNAME=xxxxxx GATEWAY= GATEWAYDEV= FORWAOD_IPV4=yes
次にルートの設定。eth0を外側、eth1を内側とするので、
$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.1.31.0 * 255.255.255.0 U 0 0 0 eth0 10.0.0.0 * 255.255.255.0 U 0 0 0 eth1 default 10.1.31.3 0.0.0.0 UG 0 0 0 eth0
例えばこんな風になる。同じく、/etc/rc.d/rc.localにフォワードするルールを追加。
ipchains -A forward -s 10.0.0.0/24 -j MASQ ipchains -P forward DENY
細かいところ忘れました(ぉ
$ rpm -qa|grep dhcp dhcp-2.0-8 dhcp-client-2.0-8
最初からDHCPのパッケージが入っていたようなので設定をして起動するだけで比較的簡単に動いた。
設定ファイルは、/etc/dhcpd.confのみ。
server-identifier 10.0.0.1; shared-network MYNETWORK { option subnet-mask 255.255.255.0; default-lease-time 6000; max-lease-time 72000; subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.16 10.0.0.31; option domain-name-servers 192.168.77.32; option domain-name "hogehoge.co.jp"; option broadcast-address 10.0.0.255; option routers 10.0.0.1; } subnet 10.1.31.0 netmask 255.255.255.0{ } }
あとは、/etc/rc.d/rc.localに
dhcpd eth1
と書いて完成。クライアントにはDHCP設定にしたWindows2000をつないでみたが、問題なく稼動している。
$ rpm -qa|grep samba samba-common-2.0.5aJP2-9 samba-2.0.5aJP2-9 samba-client-2.0.5aJP2-9
/etc/smb.confを適当に修正。
[global] coding system = sjis client code page = 932 workgroup = DOMAIN security = share server string = Linux Samba Server %v encrypt passwords = Yes map to guest = Bad User socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = No guest account = smbguest os level = 1 [homes] comment = %U's Home directory writable = yes browseable = No [printers] comment = All Printers path = /var/spool/samba print ok = Yes browseable = No [public] comment = Public space; anyone can write any files. path = /home/samba/public guest ok = yes public = yes writable = yes force group = public force create mode = 0664 force directory mode = 0775
最低限の設定のみとしている。セキュリティやアクセス権なども細かく設定できるようだが割愛した。
またも、/etc/rc.d/rc.localに起動の指示をして完了。
/etc/rc.d/init.d/smb start smbd -D nmbd -D
/etc/httpd/conf/httpd.conf
をいじる。具体的には、エラー発生時にメールを送る先「ServerAdmin」にメールアドレスを追加した。
次は、/etc/httpd/conf/srm.conf の編集。
おもにCGIの使用許可のところだけ設定。最後にacccess.conf。ここでCGIなどの使用許可をDIRごとに設定できる。さて、表示させるか。。。あれ?出ない。 と思ったらホームディレクトリの属性が700になってた。なんでや。
$chmod 755 .
ひとまず完成。このあとCGIがうまく動かず一瞬焦るが、access.confの中を
<Directory /home/*/public_html> Options Indexes Includes FollowSymLinks ExecCGI AllowOverride All </Directory>のような感じにExecCGIなどを追加してやる(都合、タグのため、不等号は全角で表記している)
今回のインストールは比較的簡単にいった。パッケージをrpmでインストールして、 起動時に適当に答えてセットアップ完了(汗。 ただ1点はまったのはWindows98をインストールしてから。 インストールしたマシンがpentiumII400MHzだったわりにやけにインストールに時間がかかったのはいいとして(1時間くらいか?)その後いきなりEMM386なんとかかんとか とでて、起動できない。どうもCONFIG.SYSがよくないらしく、EMM386関係の行を削除しておかないとだめだとか。 あともう1つ。画面がそのままだと激遅のVGAしか使えないので、vmware toolsというもののインストールが必要になる。仮想のFDドライブ?にファイルを作るような動きをするがinstallしてやればよい。
これで多少描画が速くなり、確かにネイティブの5〜6割くらいのスピードになった。実用性はゲームとかでなければ十分あり、という感じ。さすがにLightwave3DやPhotoshopには使う気はしないがやむをえまい。
適当にwebをあさって
$snddevices $alsaconfを実行すれば、あとは、ALSAに対応したサウンドカードだと運がいいと自動認識されたりするので、それを選んでバッファは適当に64あたりを入力しておく。 複数のカードの登録にいってしまうので「No more card」を選択。modules.confを更新されるので、再起動かmodprobeなどでモジュールを追加。 これで音が鳴った。VMWareからはコンフィグで/dev/dspを使う設定にするだけでコネクトすれば、windowsからも音楽再生は可能だ。 プログラムメニュー?みたいなところに登録されていたオーディオミキサーは「gamix」というツールを呼んでいたのだがいまいちマイクがうまく設定できなかったので、 ktermから「gmix」というのを起動してマイクの入力の調整をしてみた。
$rpm -qa
でファイルの一覧を出力
$rpm -e --nodeps nkf-1.92-1
それでも直らないなぁ、と思ったら、一度作ったINDEXは削除しないと生成してくれないようだ(差分のみ生成する模様) あと、インデックスはカレントディレクトリに作るので、生成したいディレクトリに移動する。環境変数LANGに日本語を設定するとメッセージが日本語になる。なので、
$export LANG ja $rm NMZ.* $cd /home/yoshi/public_html/nmz_index $mknmz /home/yoshi/public_html/nmz_index mknmz /home/yoshi/public_html/ 検索対象のファイルを調べています... /home/yoshi/public_html/index.html ファイルは更新されています 1個のファイルがインデックス作成の対象として見つかりました 1/1 - /home/yoshi/public_html/index.html [text/html] インデックスを書き出しています... [追加] 日付: Thu Jun 14 01:21:07 2001 更新された文書の数: 1 サイズ (bytes): 5,009 合計の文書数: 214 合計キーワード数: 19,825 わかち書き: module_kakasi -ieuc -oeuc -w 経過時間 (秒): 37 ファイル/秒: 0.03 システム: linux Perl: 5.00503 Namazu: 2.0.5
これで、ブラウザからは例えば、http://ほげほげ/~yoshi/cgi-bin/namazu.cgiで、全文検索できる。
#後日、別のPCに入れたときにエラーが・・・。 どうやらKAKASIをあとから入れたのがまずかったらしい。 namazuをconfigureする前にKAKASIのモジュールを入れないといけなかったのね。とほほ。
そういえば特定の拡張子のファイルアクセスのログだけをとるためにしょぼいシェルスクリプトも作って、一緒にまわしたっけな・・・。