第二章 Linuxのインストールとパッケージ管理
2.1 ハードディスクのレイアウト設計
パーティション
ハードディスクをパーティションという区画に分割して利用することが出来る。
Linuxインストールでは少なくとも2つのパーティションが必要になる。
- /(ルート)
- Swap(スワップ)
分割利用の用途
- 柔軟なシステム管理を行うことができる。
- ディスクに障害が発生した時の被害を抑えることができる。
- 障害発生時にスムーズな復旧作業ができる
レイアウト設計の考慮点
- システムの用途
- ディスクの容量
- バックアップの方法
主なパーティション
パーティション名 | 説明 |
---|---|
/(ルート) | |
Swap(スワップ領域) | 仮想メモリ領域。物理メモリが不足した場合に、ディスクの一部を一時的にメモリの延長として利用する。※1 |
/home | 一般ユーザ用個別ファイルを格納する。 |
/var ※2 | 各種ログファイルやメールスプールなどの更新頻度の高いファイルを格納する。 |
/usr ※3 | プログラムやライブラリ、ドキュメントを格納する。 |
/boot | システムによって、ディスクの先頭パーティションとして数100MB程度を用意された領域。RAIDを利用する場合に内蔵ハードディスクに必要とされる場合もある。 |
※1:目安のサイズは物理メモリサイズの1~2倍 | |
※2:VARiable | |
※3:User Services and Routines |
2.2 ブートローダのインストール
ブートローダ
ハードディスクなどのストレージからOSを読み込んで起動するプログラム。
代表的なLinuxのブートローダはGRUB(GRand Unified Bootloader)です。
GRUBの特徴
- 多数のファイルシステムを認識可能
- シェル機能を搭載し、コマンドによる高度な管理が可能
GRUBの設定
GRUB Legacy の設定(/boot/grub/menu.lst)
RH 系?
menu.lst の設定パラメータ
パラメータ | 説明 |
---|---|
timeout | メニューを表示している時間(秒) |
default | デフォルトで起動するエントリの番号 |
title | メニューに表示されるエントリ名 |
root | ルートデバイスの指定 |
kernel | 起動するカーネルイメージファイルと起動オプションの指定 |
hiddenmenu | 起動時に選択メニューを表示しない |
initrd | 初期RAMディスクファイルの指定 |
GRUB 2 の設定
GRUB2 の設定は/boot/grub/grub.cfg で管理する。
設定ファイルは直接編集するのではなく /etc/default/grub で設定し、update-grub コマンドで設定ファイルを生成する。
ブートオプションの指定
ブートローダ起動時のメニューでのオプション
パラメータ | 説明 |
---|---|
root=デバイス | ルートパーティションとしてマウントするデバイス |
noscsi | SCSI デバイスを使用しない |
nousb | USB デバイスを使用しない |
single | シングルユーザーモードで起動する |
1 ~ 5 | 指定したランレベルで起動する |
2.3 共有ライブラリ管理
スタティックリンクとダイナミックリンク
リンク
- プラグラム本体からライブラリの機能(関数)を利用する
スタティックリンク
- コンパイルする時点で、コンパイラがライブラリを実行ファイル内に埋め込む
- 実行ファイル内にライブラリ機能が埋め込まれる為、よく使うライブラリが様々な実行ファイルに重複して入ってしまう。
ダイナミックリンク
- 実行ファイルへライブラリを埋め込むことはせず、実行時にライブラリの機能を呼び出す。
共有ライブラリ
- ダイナミックリンクによって呼び出されるライブラリを共有ライブラリと呼ぶ
- 共有ライブラリは「/lib」、「/usr/lib」に配置され、「lib~.so~」という名前が付けられる。
- 「/lib」、「/usr/lib」以外のディレクトリ以外のライブラリも検索対象にする場合は、「/etc/ld.so.conf」ファイルに記述する。
- 効率的な検索の為、バイナリのキャッシュファイルとして**/etc/ld.so.cache**を参照する。
- 「/etc/ld.so.conf」を変更した場合、共有ライブラリを変更した場合はldconfigを実行し、キャッシュファイルを更新する必要がある。
2.4 Debianパッケージの管理
パッケージ
- 実行プログラム、設定ファイル、ドキュメントなどを一つのファイルにまとめたもの
パッケージ管理システム
- パッケージががどこにインストールされているかを管理したり、パッケージ間の競合を回避したりする仕組みを提供する。
- インストールやアンインストール、アップデート作業が容易になる。
リポジトリ
- ファイルやデータを集積している場所や、それらの情報を管理するデータベースを意味する。
- ファイルシステム上のディレクトリであったり、ネットワーク上のサーバであったりする。
dpkgパッケージファイル名
例:tree_1.5.3-1_i386.deb
例 | 説明 |
---|---|
tree | パッケージの名称 |
1.5.3 | バージョン番号 |
1 | リリース番号 |
i386 | アーキテクチャ |
deb | 拡張子 |
2.5 RPMパッケージの管理
RPM
RedHat 系パッケージ管理システム。
RPMパッケージファイル名
例:bash-3.2-21.i386.rpm
例 | 説明 |
---|---|
bash | パッケージの名称 |
3.2 | バージョン番号 |
21 | リリース番号 |
i386 | アーキテクチャ |
rpm | 拡張子 |
YUM の設定ファイル
- /etc/yum.conf
- /etc/yum.repos.d ディレクトリ配下(レポジトリ情報の設定)