第一章 システムアーキテクチャ
1.1.3 デバイスの確認
/proc/bus/usb/* USBデバイス情報
/proc/cpuinfo CPU情報
/proc/interrupts IRQ情報
/proc/pci PCIデバイス情報
/proc/scsi/scsi SCSIデバイス情報
Linuxは、ハードウェアへのアクセスを抽象化するデバイスファイルを持っています。
デバイス情報を確認するためのコマンドも用意されています。
USBデバイスの情報を表示するには lsusb
PCIデバイスの情報を表示するには lspci
1.1.4 デバイスドライバのロード
Linuxでは、デバイスドライブはカーネルの一部として提供されています。
ロードされているカーネルモジュールを確認するには、lsmodコマンドを使います。
手動でロードする場合はmodprobeコマンドを実行します。
1.2 システムの起動
1.2.2 ブートオプションの指定
GRUBでブートオプションを指定するには、起動時の画面でAキーを押します。
すると、キーボートからパラメータを入力できるようになります。
1.2.3 起動時のイベント確認
dmesgコマンドを使うと、システム起動時にどのような処理が行われたのかを確認できます。
システムのメインログファイルである/var/log/messagesにも起動時のメッセージが記録されています。
1.3 ランレベルとシャットダウン
1.3.1 ランレベル
種類
0 停止
1 シングルユーザーモード
2 マルチユーザーモード
3 マルチユーザーモード
4 未使用
5 マルチユーザーモード
6 再起動
S/s シングルユーザーモード
シングルユーザーモード rootユーザーだけが利用できる状態です。
ランレベルの変更
現在のランレベルを表示するには、runlevelコマンドを使います。
ランレベルを変更するには、スーパーユーザーでinitコマンドもしくはtelinitコマンド
を使います。
#init 1
デフォルトのランレベルの設定
Linuxが起動すると、最初のプロセスとしてinitが実行され。
デフォルトのランレベルは、/etc/inittabに記述されています。
/etc/inittabファイルでデフォルトのランレベルを指定できます。書式も覚えておきましょう。
1.3.2 システムのシャットダウンと再起動
システムのシャットダウンや再起動は、shutdownコマンドを使って操作します。
shutdown [option] 時間 「メッセージ」
-h シャットダウン完了後にシステムを停止する
-r シャットダウン完了後にシステムを再起動する
-f 次回起動時にfsckをスキップする
-F 次回起動時にfsckを必ず実行する
-k 実際にシャットダウンせず警告メッセージを通知する
-c 現在実行中のシャットダウンをキャンセルする
第2章 Linuxのインストールとパッケージ管理
2.1 ハードディスクのレイアウト設計
ルートパーティション
さわっぷ領域
・/home
・/var
・/usr
・/boot
・スワップ領域
スワップ領域のサイズは物理メモリと同程度~2倍程度のサイズを割り当てます
用途が異なるディレクトリは別パーティションに配置するようにします。
2.2 ブートマネージャのインストール
2.2.1 GRUB
GRUBは多機能なブートローダです。
・多数のファイルシステムを認識可能
・シェル機能を搭載し、コマンドによる高度な管理が可能
#grub-install /dev/sda
GRUBの設定ファイルは/boot/grub/menu.lst
timeout メニューを表示している時間
default デフォルトで起動するエントリの番号
title メニューに表示されるエントリ名
root ルートデバイスの指定
kernel 起動するカーネルイメージファイルと起動オプションの指定
makeactive ルートパーティションをアクティブ化
chainloader 指定されたセクタの読み込みと実行
hiddenmenu 起動時に選択メニューを表示しない。
2.2.2 LILO
LILOはIntelアーキテクチャマシン用のブートローダです。
・ブートローダ
・マップインストーラ /sbin/lilo
・マップファイル ディスク上の物理的なカーネルの位置を記録したファイルです。
・LILO設定ファイル /etc/lib.confです。
第一段階のブートローダは、BIOSから呼び出され、第2段階のブートローダ
をメモリに読み込みます。第2段階のブートローダの役割は次の通りです。
・ブートプロンプトを表示する
・読み込むカーネルを選択する
・カーネルをメモリ上に読み込む
・etc/lib.conf
boot ブートセクタを含むデバイス名
timeout プロンプト時の入力待ちタイムアウト時間
prompt ブート時にプロンプトを表示して入力を要求する
default デフォルトで起動するカーネルの食べる
append 起動時にカーネルに渡すパラメータ
read-only ルートファイルしセムを読み込み専用でマウントする
map マップファイルの指定
image ブートイメージのラベル
label ブートイメージのラベル
initrd 初期RAMDISKの読み込み指定
root ルートファイルシステムのデバイス名
/etc/lilo.confの設定内容を反映させるには、/sbin/liloコマンドを実行する必要があります。
lilo コマンド
-C設定ファイル 設定ファイルを知っていする
-R 次回再起動時に適用されるコマンドラインパラメータを指定する
-V Version
-q 現在のマップファイルの内容を表示する
-t テストのみ実行する
-u LILOを削除する
-v 詳細情報を表示する
2.3 共有ライブラリ管理
共有ライブラリは、libreadline.so.5のように、「lib~.so~」という名前が付けられていうます。通常、/lib,/usr/libに配置されています
2.3.2 必要な共有ライブラリの確認
実行ファイルが必要としている共有ライブラリは、lddコマンドで調べることができます。
ldd /bin/cat
しかし、プログラムを実行するたびにこれらのディレクトリを検索するのは非効率出来なので、実際にはバイナリのキャッシュファイルである/etc/ld.so.cacheが参照されます。
ldconfigコマンドは、/etc/ld.so.confファイルに基づいて/etc/ld.so.cacheを再構築します。
#ldconfig
そのたのディレクトりも検索対象に加えたい場合は、環境変数LDLIBRARYPATHにデイレクト利リストを記述します。
2.4 Debianパッケージの管理
2.4.1 パッケージ管理とは
実行プログラム、設定ファイル、ドキュメントなどを一つのファイルにまとめたものをパッケージといいます。
パッケージ管理システム
パッケージの依存関係
パッケージ管理システムは依存関係を監視し、依存関係を 損なうようなインストールやアンインストールには警告をはします。
Debian形式は、Debian系のディストリビューションで利用されている。
パッケージ管理作業にはdpkg,dselect,APTツール
RPM形式は、パッケージ管理作業にはrpmコマンドが使われます。両者には互換性
がありませんが、alienコマンドを使って相互に形式を変換することもできます。
Debian形式のパッケージファイル名は、次のようになっています。
tree-1.5.0-2-i386.deb
tree: パッケージ名
1.5.0.2 バージョン番号
2 リリース番号
i386 アーキテクチャ
deb 拡張子
Debian形式のパッケージを扱うにはdpkgコマンドを使います。
dpkg [option] アクション
Option
-E すでに同バージョンがインストールされていればインストールしない
-G すでに新バージョンがインストールされていればインストールしない
-R ディレクトりないを再帰的に処理する
Action
-i パッケージをインストールする
-r 設定ファイルも含め完全にパッケージをアンインストール
-P 設定ファイルも含め完全にパッケージをアンインストール
-l インストール済みパッケージを検索して表示する
-S 指定したファイルがどのパッケージからインストールされたが表示する
-L 指定パッケージからインストールされたファイルを一覧表示する
-s パッケージの情報を表示する
--configure 展開されたぱっっケージを構成する
--unpack パッケージを展開する
dpkg -i apache2-2.2.3-4+etch6-all.deb
dpkg --purge apache2
dpkg -S '*/apache'
dpkg -l
dpkg -L bash
dpkg -s bash
2.4.3 apt-getコマンド
apt-getは、APTというパッケージ管理ツールに含まれるコマンドで、依存関係を調整
しながらパッケージのインストール、アップグレード、アンインストールを行います。
apt-get 「オプション」 サブコマンド パッケージ名
option
-d ファイルをダウンロードする
-s システムを変更せず動作をシミュレートする
サブコマンド
clean 過去に取得して保存中のパッケージを削除する
dist-upgrade Debianのシステムを最新にアップグレードする
install パッケージをインストールまたはアップグレードする
remove アンインストール
update パッケージデータベースを更新する
uograde システムの全ぽっけーじを安全にアップグレードする
apt-getコマンドでパッケージ管理を始めるには、まず/etc/apt/sources.listにパッケージ
を管理しているサイトのURLを記述します
apt-cacheコマンド
パッケージ情報を照会・検索することのできるコマンドです。
apt-cache
search
show
showpkg
depends
aptitudeコマンド
apt-getコマンドよりも高度な機能を持ったコマンドとしてaptitudeコマンドがあります。
とりわけ、正規表現を使った検索機能が優れています。
2.5 RPMパッケージの管理
RPMパッケージのファイル名は、次のようになっています。
bash-3.2-21.i386.rpm
bash パッケージの名称
3.2 バージョン番号
21 リリース番号
i386 アーキテクチャ
rpm 拡張子
2.5.2 rpmコマンドの利用
rpmコマンドの主なオプション
-i インストール
-U アップグレード
-F
-v 詳細な情報を表示する
-h 進行状況を「#」で
--nodeps 依存関係を無視してインストールする
--force 既存のファイルを新しいものに置き換える
--test 実際にはインストールせずテストを実施する
-e パッケージをアンインストール
-q 指定したパッケージがインストールされているか照会する
-a インストール済みのすべてのパッケージを表示する
-f 指定したファイルを含むパッケージ名を表示する
-p 対象としてパッケージファイルを指定する
パッケージのインストール
#rpm -ivh zsh-4.2.6-1.i386.rpm
次の例では、~/rpmsディレクトリ以下にあるRPMパッケージをすべてアップグレードします
#rpm -Fvh ~/rpms/*.rpm
パッケージのアンインストール
#rpm -e httpd
パッケージ情報
パッケージを調査するには-qオプションを使います。
#rpm -qa | grep emacs
#rpm -qi bash
#rpm -qf /bin/bash
#rpm -qlp bash-3.0-19.2.i386.rpm
#rpm -qR gzip
2.5.3 YUM
YUMの設定 /etc/yum.confと/etc/yum.repos.dディレクトリ以下のファイルで行います。
yum サブコマンド
check-update アップデート対象のパッケージリストを表示する
update パッケージ名 指定したパッケージ名をアップデートする
install パッケージ名 インストール
remove アンインストール
info 指定したぱけーじの情報を表示する
list 全パッケージをリスト表示する
search キーワードで検索する
grouplist パッケージグループをリスト表示する
groupinstall パッケージをインストール
#yum check-update
#yum update
#yum install
#yum remove emacs
#yum info samba
#yum list
#yum search ruby
#yum grouplist
#yum groupinsatll "X Window System"
#yumdownloader samba