何であれコンピュータ関連のものは、3カ月そこらで時代遅れになってしまう ので、アップグレードをする必要があります。Linuxも例外ではなく、次々と アップデートパッケージがリリースされていますが、その度にドキュメントを アップデートする時間があるとは限りません。ですが、せめて配付パッケージ のバージョンが上がった時には、この文書をアップデートするようベストを 尽くします。RedHat以外の配布パッケージに関しては、各パッケージの章の 作者が送ってこない限りアップデートはしません。
私のインストールでは:
を使っています。
最初ZipディスクにRed Hatをインストールしようと思った時、Red Hatのブート
ディスクを使えばいいから(インストールなんて)「超簡単」であると思っていまし
た。でも気づきました。メールでRed Hatユーザーの様々な方から手助けをいただ
いたのでブートディスクを作りそうになりましたが、最終的にはrpmの--root
オプションに気づきその方法(project)をとることはやめました。
--root <dir>全ての操作において<dir>にルートされたシステムを使います。 これはデータベースは全て<dir>以下で読み込まれたり修正されたり 、<dir>にchroot()した後にスクリプトが実行されるということを意味 しています。
あるRed Hatミラーで見つけたファイルをみて、インストールするパッケージを 見つけました。このファイルは
redhat/redhat-4.2/i386/RedHat/base/comps
にあります。
このインストールにおいてネットワークサポートをしたいのですが、
Red HatのX network設定用ツールはX上のものしか用意されていないのでマニュアル
設定をしなければなりません。むしろマニュアルで/etc/sysconfig/
にある
ネットワークセットアップスクリプト、設定を試みるべきでしょう。
私の場合は、Zipドライブに開発パッケージをインストールしていません。
(少なくともパッチを当てていないカーネルでは)何をコンパイルするにしても
遅いです。また私はディスクスペースの都合からXのインストールはしていません。
Xを使えるようにしたければ、後でハードディスクをマウントして/usr
に
シンボリックリンク(symlink)をはっておくという手もあるのですから。
以下は私がインストールしたパッケージのリストです。*
でマークしたもの
はRed Hatの問題のあった(errata)パッケージをアップデートしたものです。
丸括弧で囲った箇所はアップデートのパッケージ番号です:
例: NetKit-B-0.09-6 は NetKit-B-0.09-8 にアップデートされています。
この場合のエントリは *91) NetKit-B-0.09-6 (-8) となります。
(コマンド rpm --root /iomega -qa によって作られたリスト)
1) setup-1.7-2 2) pamconfig-0.51-2
3) filesystem-1.3-1 4) MAKEDEV-2.2-9
5) adduser-1.7-1 6) libc-5.3.12-18
7) SysVinit-2.64-8 8) ash-0.2-8
9) at-2.9b-2 10) libtermcap-2.0.8-4
11) bash-1.14.7-1 12) bc-1.03-6
13) bdflush-1.5-5 14) cpio-2.4.2-4
15) cracklib-dicts-2.5-1 16) tmpwatch-1.2-1
17) crontabs-1.5-1 *18) db-1.85-10 (-11)
19) dev-2.5.1-1 20) diffutils-2.7-5
21) etcskel-1.3-1 22) file-3.22-5
23) fileutils-3.16-1 24) findutils-4.1-11
25) grep-2.0-5 26) groff-1.10-8
*27) ld.so-1.7.14-4 (-5) 28) getty_ps-2.0.7h-4
29) gZip-1.2.4-7 30) mingetty-0.9.4-3
*31) initscripts-2.92-1 (93-1) 32) ed-0.2-5
33) info-3.9-1 34) ncurses-1.9.9e-4
35) libg++-2.7.1.4-5 *36) pwdb-0.54-3 (-4)
37) rootfiles-1.5-1 *38) pam-0.57-2 (-4)
39) redhat-release-4.2-1 40) less-321-3
41) mount-2.5l-2 42) zlib-1.0.4-1
43) rpm-2.3.11-1 44) e2fsprogs-1.10-0
45) sysklogd-1.3-15 46) tar-1.11.8-11
47) passwd-0.50-7 48) gawk-3.0.2-1
49) gdbm-1.7.3-8 50) gpm-1.10-8
51) hdparm-3.1-2 52) kbd-0.91-9
53) slang-0.99.37-2 54) newt-0.8-1
55) kbdconfig-1.4-1 56) ncompress-4.2.4-7
*57) sh-utils-1.16-4 (-5) 58) procinfo-0.9-1
*59) logrotate-2.3-3 (4-1) 60) lilo-0.19-1
61) losetup-2.5l-2 62) linuxthreads-0.5-1
*63) mkinitrd-1.6-1 (7-1) 64) mailcap-1.0-3
*65) man-1.4h-5 (j-1) 66) mt-st-0.4-2
67) modules-2.0.0-5 68) mailx-5.5.kw-6
69) net-tools-1.32.alpha-2 70) procmail-3.10-10
71) procps-1.01-11 72) psmisc-11-4
73) quota-1.55-4 74) readline-2.0-10
75) sed-2.05-6 76) setconsole-1.0-1
77) sendmail-8.8.5-4 78) shadow-utils-960530-6
79) stat-1.5-5 80) tcsh-6.06-10
81) termcap-9.12.6-5 82) textutils-1.22-1
83) time-1.7-1 84) timeconfig-1.8-1
85) util-linux-2.5-38 86) vim-4.5-2
87) vixie-cron-3.0.1-14 88) which-1.0-5
89) zoneinfo-96i-4 90) tcp_wrappers-7.5-1
*91) NetKit-B-0.09-6 (-8) *92) lpr-0.18-1 (19-1)
*93) bind-4.9.5p1-2 (9.6-1) *94) bind-utils-4.9.5p1-2 (9.6-1)
*95) wu-ftpd-2.4.2b12-6 (b15-1) 96) anonftp-2.3-3
97) Zip-2.1-1 98) unZip-5.12-5
99) statserial-1.1-7 100) minicom-1.75-2
101) lrzsz-0.12.14-1 102) dip-3.3.7o-9
103) ppp-2.2.0f-3 104) portmap-4.0-3
105) perl-5.003-8 *106) traceroute-1.0.4.4bsd-2 (1.4a5-1)
*107) elm-2.4.25-7 (-8) 108) lynx-2.6-2
109) ncftp-2.3.0-5 110) pine-3.95-2
111) rdate-0.960923-1 112) apache-1.1.3-3
*113) nfs-server-2.2beta16-7 *114) nfs-server-clients-2.2beta16-7
(2.2beta16-8) (2.2beta16-8)
これらがインストールされていてもまだ32MBも残っています!
多くのRedHatユーザーはご存知の通り(であることを願っていますが) あるパッケージではセキュリティ上の欠点があったり問題があったりします。 その修正のため、Red Hatは欠点/問題のあったパッケージのアップデートをリリース します。アップデートしたり上記リストでマークされたパッケージを更新しました。 アップデートされたパッケージについてはRed Hatのwebパッケージを参照して下さい:
http://www.redhat.com/support/docs/rhl/rh42-errata-general.html
NOTE: パッケージをアップデートする前に4.3.1.1で述べたldconfigを実行します。
インストールにおいて、マウントしたディレクトリをルートだと指定するために、
rpmに--root
オプションをつけます。
しかしいろいろなパッケージのインストールに失敗することを発見しました。
これはpreinstallあるいはpostinstallスクリプトは本当のルートディレクトリ
以外に対しては正常に動作しないためです。そこで--noscripts
オプションを
使います:
==> rpm --root /iomega -i --noscripts PACKAGE.i386.rpm
多くのユーザーが確認しているように、以下のエラーメッセージが出ます:
failed to open /iomega/var/lib/rpm/packages.rpm
error: cannot open /iomega/var/lib/rpm/packages.rpm
そこでvar/lib/rpm
ディレクトリを作ります :)。
==> mkdir /iomega/var; mkdir /iomega/var/lib; mkdir /iomega/var/lib/rpm
pamconfigをインストールしようとすると、pamに依存したエラーが出ます。一方
pamをインストールしようとするとpamconfigに依存したエラーが出ます!
これはまるで「卵が先かにわとりが先か」ということのようですが、--nodeps
フラグを使って強制的にpamconfigをインストールすることができます。
pamはpamconfigよりも依存性のエラーが出るようです。
==> rpm --root /iomega -i --nodeps --noscripts pamconfig-0.51-2
うまく全てインストールされても、残念なことにディスクはこれだけでは 十分に機能しません。私の言っていることは、もし現状のままフロッピーを使って ブートしようとしても、initがスタートアップしようとすると間もなく、2つの ラブリーな:) エラー出ます。
ブートしようとすると2つエラーメッセージが出てきます。
1つ目は/etc/ld.so.cache
ファイルがないためで、2つ目は
libc.so.5
がないための警告です。
多くの読者の方から指摘を受けたのですが、以前に書いた手順では(私がそこに 書いたようには)ちゃんと動作しません。このファイルを作るためにZipドライブ がマウントされている内にldconfigを実行しなければなりません:
==> chroot /iomega /sbin/ldconfig
この解決を教えてくれたJavier Rodriguez氏に感謝します。
ライブラリがない場合の解決として、インストールスクリプトによって作られた ライブラリにシンボリックリンク(symlink)する必要があります。
==> cd /iomega/lib; ln -s libc.so.5.3.12 libc.so.5 この解決を教えてくれたDarcy Boese氏に感謝します。
4.3.1.1章で実行したldconfigと同様に、新しいシステム用のrootパスワードも 変更/生成しておきます。
==> chroot /iomega passwd root
NOTE: これはとても簡単なセットアップ方法です。動作するかどうか
はテストしていません。理論的には動作するはずですが、動か
なくても私に文句を言わないように。
Red Had 4.2 CD-ROMを調べている間、興味深いこと(インストールプログラムの
ソースコード)に遭遇しました。このコードは/misc/src/install
以下
にあります。興味深いのはnet.cファイルです。ここでどのようなファイルが、
インストールプログラムによって実行されることで、生成されるかがわかりました。
これらのほとんどは(net.cという名前の通り)ネットワークサポートを与えて
いますが、ネットワークカードがなくてもネットワークとしてlocalhostを使う
ことができます(加えてapacheはhostnameを決定できないことに文句を言うかも
しれません)。これらのファイルには:
/etc/hosts
/etc/HOSTNAME
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
(あるいはあなたが持っているネットワークデバイス)
が含まれています。
このドキュメントにおいて私は「3Com 3c595 fast-ethernetカード」 (以前は別のマシンで数カ月使っていたもの)を使いたいと思います。
まず名前が必要です。私は他のマシンで自分専用のネームサーバを走らせている
ので(話せば長いのですが)、(IPアドレスだけでなく)名前
:dash-dot.wig.orgを与えました。IPアドレス無しで名前を与えることは
意味のないことなので、ローカルアドレスとして定義されているIPアドレス
192.168.10.0のネットワークに接続することにしました。ネームサーバもこの
ネットワークに接続されています。ホスト名は普通/etc/HOSTNAME
に書か
れていますが、Red Hatでは/etc/sysconfig/network
をチェックします。
以下は私の/etc/sysconfig/network
のサンプルです:
NETWORKING=yes
HOSTNAME=dash-dot
DOMAINNAME=wig.org
GATEWAY=
GATEWAYDEV=eth0
NS1=192.168.10.7
次に/etc/HOSTNAME
、/etc/resolv.conf
、/etc/hosts
に関する情報を挙げます:
/etc/HOSTNAME:
dash-dot.wig.org
/etc/resolv.conf:
search wig.org
nameserver ns.wig.org
/etc/hosts:
127.0.0.1 localhost
192.168.10.99 dash-dot.wig.org dash-dot
192.168.10.7 ns.wig.org ns
Red Hatは/etc/sysconfig/network-scripts
にあるスクリプトから
全ネットワークデバイスを設定します。ネットワークデバイスの設定は普通
はじめにインストールプログラムを使って行われます。そこで手動で
これらの設定ファイルを作ります。これらの設定ファイル名は全てifcfg-XXX
で始まります。ここでXXX
はifconfig
で表示されるネットワーク
インターフェース(ppp0, eth0 など)です。例えば、ifcfg-eth0
というファイル
を以下のように作ります:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
BROADCAST=192.168.10.255
NETWORK=192.168.10.0
NETMASK=255.255.255.0
IPADDR=192.168.10.99
これらを正しく行うために、/etc/sysconfig/network-scripts
ディレクトリで以下を実行します:
==> ./ifup ifcfg-eth0 boot
これはスクリプトをスタートします。このスクリプトは、インターフェースが ブート時開始するようセットされた場合に、セットネットワークインターフェース の設定をするものです。
詳細については「NET-3-HOWTO」ドキュメントを参照して下さい。