101-2. Linuxのインストールとパッケージ管理
- ハードディスクのレイアウト設計
- 「/home,/var,/usr,/boot,/,スワップ領域」の6つでパーテションがレイアウトされているのが一般的
- ブートマネージャのインストール
- 共有ライブラリを管理する
- 静的ライブラリと共有ライブラリがある
- 「ldd」コマンドで共有ライブラリを調べられる
- /etc/ld.so.confファイルを変更し、「ldconfig」コマンドで読み込む共有ライブラリが変更できる
- Debianパッケージ管理を使用する
- 「dpkg」「apt-get」がある
- 「dpkg -i パッケージ名」でインストール、「dpkg -q パッケージ名」で設定ファイルも含めアンインストール
- 「apt-get install パッケージ名」でインストール、「apt-get update」でパッケージのDB更新、「apt-get upgrate」で全パッケージアップグレード
- 他にも「apt-cache」「aptitude」がありパッケージの照会が出来る
- RPMおよびYUMパッケージ管理を使用する
1. ハードディスクのレイアウト設計
- ハードディスクは少なくても2つのパーテーションが必要
- ルートパーテーション
- スワップ領域
- さらにいくつかパーテーションを分割するのが一般的
パーテーション | 説明 |
---|---|
/home | ユーザーが利用するファイル等 |
/var | ログファイル等更新されるファイル類 |
/usr | 各種プログラムやライブラリ、ドキュメント等 |
/boot | システムの起動に必要なファイル |
スワップ領域 | 仮想メモリ領域(物理メモリ不足時のメモリの役割)(サイズの目安は物理メモリの1〜2倍) |
/ | 上記以外はルートファイルシステム(/ディレクトリに格納されたパーテーション) |
2. ブートマネージャのインストール
BIOS→ブートローダ→カーネル→init ↑コレ
- 代表的なブートローダ(ブートマネージャ)にGRUBがある
- バージョン0.9系のGRUB Legacyと、バージョン1.9系のGRUB2がある
- 「grub-install /dev/hda」コマンドでgrubをインストール出来る(/dev/hdaのMBR領域にGRUBをインストール)
GRUB Legacy
GRUB2
GRUBとGRUB2の主な違い
GRUB | GRUB2 | |
---|---|---|
インストールコマンド | /sbin/grub-install | /sbin/grub-install |
主な設定ファイル | /boot/grub/menu.lst | /boot/grub/grub.cfg/etc/default/grub/etc/grub.dディレクトリ以下のファイル |
設定ファイル編集後に変更内容を反映するコマンド | 不要 | /usr/sbin/update-grub |
パーティション番号の表記方法 | hd0,0(1番目のパーティションは0からカウント) | hd0,1(1番目のパーティションは1からカウント) |
3. 共有ライブラリを管理する
- ライブラリとは、他のプログラムから利用できるようまとめた機能で2種類ある
- 静的ライブラリ(プログラム作成時に読み込まれる)
- 共有ライブラリ(プログラム実行時に読み込まれ共通化)
- スタティックリンクとダイナミックリンクあり、ライブラリをリンクする
- ダイナミックリンクによって呼ばれるライブラリを共有ライブラリと呼び、libreadline.so.5のように「lib〜.so〜」という名前が付けられている
- 共有ライブラリファイルは通常、/lib、/usr/libに配置されている
- 「ldd」コマンドで共有ライブラリを調べられる
- 共有ライブラリのロードするライブラリを変更する方法はつぎの通り
- 「/etc/ld.so.conf」ファイルに変更したい共有ライブラリ設定
- 「ldconfig」コマンド実行(/etc/id.so.cacheが更新される)
- 他のディレクトリも共有ライブラリの検索対象に追加したい場合は、環境変数「LD_LIBRARY_PATH」にディレクトリを追加する
4. Debianパッケージ管理を使用する
系統 | ディストリビューション | 代表的パッケージ |
---|---|---|
Ubuntu系 | Debian GNU/Linux,Ubuntu,Linux Mint,Edubuntu | Debian |
Red Hat系 | Fedora,Red Hat Enterprise Linux,CentOS | RPM |
dpkg
dpkg [オプション] アクション
- 「/etc/dpkg/dpkg.cfg」が設定ファイル
オプション | 説明 |
---|---|
-E | 既に同一バージョンがインストールされていればインストールしない |
-G | 既に新バージョンがインストールされていればインストールしない |
-R | ディレクトリ内を再帰的に処理 |
アクション | 説明 |
---|---|
-i パッケージ名(--install) | パッケージをインストール |
-r パッケージ名(--remove) | 設定ファイルを残しアンインストール |
-P パッケージ名(--purge) | 設定ファイルも含めアンインストール |
-S ファイル名検索パターン(--search) | 指定したファイルがどのパッケージからインストールされたかを表示 |
-l 検索パターン(--list) | インストール済みのパッケージを検索して表示(検索パターンを設定しない場合全パッケージ一覧が表示される) |
-L パッケージ名(--listfiles) | 指定パッケージからインストールされたファイルを一覧表示 |
-s パッケージ名(--status) | パッケージ情報を表示 |
- 「dpkg-reconfigure」コマンドでインストール済みのパッケージを再設定できる
apt-get
apt-get [オプション] サブコマンド パッケージ名
- 「/etc/apt/sources.list」ファイルにパッケージを管理しているサイトのURLを記述する
オプション | 説明 |
---|---|
-d | ファイルをダウンロード(インストールしない) |
-s | システムを変更せずにシュミレートする |
サブコマンド | 説明 |
---|---|
dist-upgrade | Debianのシステムを最新にアップグレードする |
install | パッケージをインストールまたはアップグレード |
remove | パッケージをアンインストール |
update | パッケージデータベースを更新 |
upgrade | システム全パッケージのアップデート |
clean | ダウンロードしたパッケージファイルを削除 |
apt-cache, aptitude
- 「apt-cache」コマンドとは、パッケージ情報を照会・検索できるコマンド
apt-cache [サブコマンド]
サブコマンド | 説明 |
---|---|
search キーワード | 指定したキーワードを含むパッケージを探す |
show パッケージ名 | パッケージについて詳細情報を表示する |
showpkg パッケージ名 | パッケージについて情報を表示する |
depends パッケージ名 | 指定したパッケージの依存関係を表示する |
- 「aptitude」コマンドとは、「apt-get」コマンドより高度な機能を持ったコマンド
aptitude [サブコマンド]
5. RPMおよびYUMパッケージ管理を使用する
rpm
- モードがあり、モード別に多彩なオプションが用意されている
rpm オプション
モード | オプション | 説明 |
---|---|---|
インストール・アップグレード | -i パッケージ名 | パッケージのインストール |
-U パッケージ名 | パッケージのアップグレード(なければインストール) | |
-F パッケージ名 | パッケージのアップグレード(なければインストールしない) | |
アンインストール | -e パッケージ名 | パッケージのアンインストール |
照会 | -q パッケージ名 | 指定したパッケージがインストールされているか照会 |
-V パッケージ名 | パッケージを検査 |
- イントール・アップグレード併用オプション
- -v:詳細な情報を表示(モードの照会の-Vと紛らわしい)
- -h(--hash):進行状況を「#」で表示
- --nodeps:依存関係を無視してインストール
- --test:実際にはインストールせずテストで実施
- アンインストールモード併用オプション
- --nodeps:依存関係を無視してアンインストール
- 照会モード併用オプション
- -a(--all):インストール済みのすべてのパッケージを表示
- -f ファイル名:指定したファイルを含むパッケージを表示
- -p パッケージファイル名:対象としたパッケージを指定
- -i(--info):インストール済みパッケージ情報を表示(モードのインストールの-iと紛らわしい)
- -l(--list):指定したパッケージに含まれるファイルを表示
- --changelog:変更履歴を表示
yum
yum サブコマンド
サブコマンド | 説明 |
---|---|
check-update | アップデート対象のパッケージリストを表示 |
install パッケージ名 | パッケージのインストール |
update パッケージ名 | パッケージのアップデート(パッケージ名省略で全パッケージアップデート) |
remove パッケージ名 | パッケージのアンインストール |
info パッケージ名 | パッケージ情報の表示 |
list | パッケージ一覧の表示 |
search キーワード | パッケージ情報を検索し表示 |
- パッケージファイルのダウンロードだけしたい場合、「yumdownloader」コマンドを使う
- 「/etc/yum.repos.d/」にパッケージの取得元(リポジトリ)を設定するファイルが格納されている
- 設定ファイルは「/etc/yum.conf」(体に影響を与える Yum オプションを設定できる)
おまけ
- パッケージとは、実行プログラム、ライブラリ、設定ファイル、ドキュメント等を1つにまとめたもの
パーテーションの分割例
パーテーション | ファイルサーバ(HD:200GB,メモリ:1GB,ユーザー数:100人) | Webサーバ(HD:100GB,メモリ:4GB,Webサーバ:Apache) |
---|---|---|
スワップ | 1GB | 4GB |
/boot | 100MB | 100MB |
/usr | 10GB | 10GB |
/var | 10GB | 20GB |
/var/log | - | 50GB(Apacheのログファイル用) |
/ | 1GB | 15GB |
/home | 177GB |