Red Hat Linux、もしくはRedHat系Linuxディストリビューションに特化した Tipsです。 UNIX一般に共通なTips 、 Linux一般に共通なTips については、目次にリンクのみ設置しています。
項目名後ろのカッコ内の数字は、確認したRed Hat Linux(英語版)のバージョ ン番号です。
/etc/sysconfig/network に以下のように設定:
HOSTNAME=myhost # myhost に設定したいホスト名を記述
/etc/sysconfig/keyboard に以下のように設定:
KEYTABLE="us"
キーマップファイルは、i386の場合 /lib/kbd/keymaps/i386/qwerty/ 以下 に置かれている。自分でマップファイルから書き換えるのも可。例えば以 下:
# cd /lib/kbd/keymaps/i386/qwerty # zcat us.kmap.gz > usx.kmap # echo 'include "ctrl"' >> usx.kmap # gzip --best usx.kmap /etc/sysconfig/keyboard を編集: KEYTABLE="usx"
編集直後に設定を反映させるなら、以下を実行する:
# loadkeys usx
なお、redhat-8.0以降ではマップファイルの拡張子が kmap から map に変 更されている。
/etc/sysconfig/keyboard に以下のように設定:
KEYTABLE="us"
キーマップファイルは、i386の場合 /lib/kbd/keymaps/i386/qwerty/ 以下 に置かれている。自分でマップファイルから書き換えるのも可。例えば以 下:
# cd /lib/kbd/keymaps/i386/qwerty # zcat us.map.gz > usx.map # echo 'include "ctrl"' >> usx.map # gzip --best usx.map /etc/sysconfig/keyboard を編集: KEYTABLE="usx"
編集直後に設定を反映させるなら、以下を実行する:
# loadkeys usx
/etc/sysconfig/network-scripts/ifcfg-eth0 に以下のように設定:
DEVICE=eth0 # デバイス BOOTPROTO=static # 固定IP指定 IPADDR=192.168.1.1 # IPアドレス NETMASK=255.255.255.0 # ネットマスク ONBOOT=yes # 起動時に有効にする
eth0 にネットワークインタフェース名を指定すること。設定ファイル名も きちんと対応させる必要がある。
/etc/sysconfig/network-scripts/ifcfg-eth0 に以下のように設定:
DEVICE=eth0 # デバイス BOOTPROTO=dhcp # DHCP指定 ONBOOT=yes # 起動時に有効にする
PCカードのように起動時は無効なネットワークインタフェースなら、 ONBOOT=no にする。
自動的に /etc/resolv.conf を更新させないなら、 PEERDNS=no を追加する。
/etc/sysconfig/network に以下のように設定:
GATEWAY=192.168.1.254
/etc/sysconfig/static-route に以下のように設定:
any net 192.168.2.0/24 gw 192.168.1.254
上記の例では、192.168.2.0/24 へのパケットを 192.168.1.254 へと転送 する。
第1引数はデバイス名。any とすればデバイスを特定せずに経路が設定さ れる。eth0 などとすれば使用するデバイスを eth0 に強制する。
第2引数はnetまたはhost、第3引数はその宛先。
第4引数以降は route コマンドにそのまま引き渡される。通常は gw < 経路> と記述すればよい。上記の設定例に対しては、
route add -net 192.168.2.0/24 gw 192.168.1.254
が実行される。
関連:
以下のコマンドを実行。
# ifup eth0 (有効にする) # ifdown eth0 (無効にする)
なお、上記操作を行う前にifcfg-eth0等を事前に正しく設定しておく必要 がある。
関連:
IPエイリアス機能を使う。例えば eth0 に 192.168.1.1 が割り当てられて いるところに 192.168.1.2 も割り当てる場合は、IPエイリアスを使って eth0:0 を作成し、IPアドレスを設定する。以下のように /etc/sysconfig/network-scripts/ifcfg-eth0:0 を作成し、インタフェー スを有効にすればよい。
DEVICE=eth0:0 # デバイス BOOTPROTO=static # 固定IP指定 IPADDR=192.168.1.2 # IPアドレス NETMASK=255.255.255.0 # ネットマスク ONBOOT=yes # 起動時に有効にする NO_ALIASROUTING=yes # このデバイスはルーティングに使用しない
/etc/modules.conf に以下を設定:
alias net-pf-10 ipv6
/etc/sysconfig/network に以下を設定:
NETWORKING_IPV6=yes
RedHatの場合、デーモンの起動制御は /etc/rc.d/rc{0..6}.d/ 以下のスク リプトによって行う。rc?.d/ 以下のスクリプトは、すべて /etc/rc.d/init.d/ 以下のスクリプトへのシンボリックリンクである。基 本的に1つのスクリプトが1つのデーモンの起動/終了等の処理を担当する。
この起動スタイルはRedHat独自のものではなく、System-V系のUNIXで共通 に用いられているスタイルである。ただし、System-V系のスタイルでは /etc/rc?.d/ と /etc/init.d/ を用いる方が一般的である。
システムは、起動時にまず /etc/inittab の id エントリに示された実行 レベルを選択する。通常は 3 もしくは 5 である。そのレベルに応じ、 /etc/rc.d/rc?.d/ 以下のスクリプトのうちファイル名が 'S' で始まるも のを、数字の小さい方から順に起動していく。
自分が使用する実行レベルに対応する /etc/rc.d/rc?.d/ ディレクトリ内 を調整することで、デーモンの起動順序などを制御することができる。
すべての /etc/rc.d/rc?.d/ ディレクトリ以下を変更する作業は煩雑であ るため、これを簡単に行うツールとして chkconfig コマンドが用意されて いる。
# chkconfig --list
# chkconfig inetd on より細かく設定するなら: # chkconfig --level=2345 inetd on
# chkconfig inetd off より細かく設定するなら: # chkconfig --level=2345 inetd off
# /etc/rc.d/init.d/inetd start (inetdを起動する) # /etc/rc.d/init.d/inetd stop (inetdを停止する)
RedHatでは、rpmでパッケージを管理している。rpmコマンド1つで、rpmパッ ケージの追加や削除、状態の参照等すべての操作を行う。
この方式では、現在のシステムに導入されているパッケージのファイル一 覧や依存関係等をデータベースで管理している。そのため、あるパッケー ジを追加するにはどのパッケージ/ファイルが必要であるか、あるパッケー ジを削除するにはどのパッケージ/ファイルを削除しなければならないかな どのパッケージ間の依存関係を容易に把握することができる。
カーネルまで含め、システムを構成するすべてのファイルはrpmパッケージ として取り扱われる(ただしユーザ自身がrpmを使用せずに追加したファイ ルはこの限りではない)。
% gpg --import <公開鍵ファイル>
GnuPGにrpmパッケージ検証用の公開鍵を登録する。Red Hat標準のパッケー ジのための公開鍵は security@redhat.com によるもので、例えばインストー ルCDのトップディレクトリにあるRPM-GPG-KEYを利用するとよい。
% rpm --import <公開鍵ファイル>
rpmデータベースにrpmパッケージ検証用の公開鍵を登録する。Red Hat標準 のパッケージのための公開鍵は security@redhat.com によるもので、例え ばインストールCDのトップディレクトリにあるRPM-GPG-KEYを利用するとよ い。
% rpm -qa | sort
<パッケージ名>-<バージョン>-<rpmバージョン> とい う形式で、システムに導入されているすべてのパッケージが列挙される。 <パッケージ名>-<バージョン> は、そのソフトウェアの元 ソースパッケージの名前とバージョンである。<rpmバージョン> は、 rpmパッケージとしてパッケージ化された際のバージョン番号を表している: rpmバージョンはRedHatによってパッチが適用された場合などに更新される。
RedHatが提供しているリリース版rpmパッケージは、 ftp://ftp.redhat.com/pub/redhat/linux/ に置かれている。必要に応じて ミラーサイト を利用されたい。
バージョン/言語/アーキテクチャで分類されているので、該当するディレ クトリを参照すること。例えば version 8.0/英語版/i386アーキテクチャ なら、 8.0/en/os/i386/ である。rpmパッケージはさらにその下の RedHat/RPMS/ に置かれている。
rpmパッケージファイルは、 "<パッケージ名>-<バージョン>-<rpmバージョン>.<アーキテクチャ>.rpm" というファイル名を持つ。アーキテクチャによっては、例えばi386版と i686版の2パッケージが用意されていることがある: i686版はPentiumII以 降のプロセッサに適した最適化を施されたrpmパッケージである。
リリース後のアップデート情報(セキュリティホール修正/Bugfix/バージョ ンアップ)は、 Red Hat Linux Errata に掲載される。新しいrpmパッケージは ftp://updates.redhat.com に置かれる。なるべくまめに更新した方がよい。
MD5チェックサムを調べ、パッケージが破損していないかどうかを確認する。 gpgコマンドと security@redhat.com の電子署名の公開鍵を持っているな ら、gpg signature も確認すること。
% rpm -K --nogpg foo.rpm (MD5 checksum を確認する) % rpm -K foo.rpm (MD5 と GPG signature を確認する)
redhat-8.0以降では、ヘッダの公開鍵とSHAチェックサムも調査される。
関連:
% rpm -qip foo.rpm (rpmパッケージ foo.rpm の基本情報) % rpm -qlp foo.rpm (rpmパッケージ foo.rpm のファイル一覧) % rpm -qi foo (インストール済パッケージ foo の基本情報) % rpm -ql foo (インストール済パッケージ foo のファイル一覧)
# rpm -ivh foo.rpm (ファイルからインストール) # rpm -ivh ftp://.../foo.rpm (ftpでインストール) # rpm -ivh http://.../foo.rpm (httpでインストール)
# rpm -Fvh foo.rpm (ファイルから更新) # rpm -Fvh ftp://.../foo.rpm (ftpで更新) # rpm -Fvh http://.../foo.rpm (httpで更新)
# rpm -ev foo
% rpm -qf /bin/rpm rpm-4.0.3-1.03