amarron2’s blog

linuxや資格関係の記事を書きます。基本自分用のメモです。

101-2. Linuxのインストールとパッケージ管理

  1. ハードディスクのレイアウト設計
    • 「/home,/var,/usr,/boot,/,スワップ領域」の6つでパーテションがレイアウトされているのが一般的
  2. ブートマネージャのインストール
  3. 共有ライブラリを管理する
    • 静的ライブラリと共有ライブラリがある
    • 「ldd」コマンドで共有ライブラリを調べられる
    • /etc/ld.so.confファイルを変更し、「ldconfig」コマンドで読み込む共有ライブラリが変更できる
  4. Debianパッケージ管理を使用する
    • 「dpkg」「apt-get」がある
    • 「dpkg -i パッケージ名」でインストール、「dpkg -q パッケージ名」で設定ファイルも含めアンインストール
    • 「apt-get install パッケージ名」でインストール、「apt-get update」でパッケージのDB更新、「apt-get upgrate」で全パッケージアップグレード
    • 他にも「apt-cache」「aptitude」がありパッケージの照会が出来る
  5. RPMおよびYUMパッケージ管理を使用する
    • rpm」「yum」がある
    • rpm -i パッケージ名」でインストール、「rpm -e パッケージ名」でアンインストール
    • yum install パッケージ名」でインストール、「yum remove パッケージ名」でアンインストール

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

  • GRUB Legacyの設定ファイルは「/boot/grub/menu.lst」(直接ファイルを編集して設定を変更)

GRUB2

  • GRUB2の設定ファイルは「/boot/grub/grub.cfg」(直接ファイル編集できない)
  • 「update-grub」コマンドで設定変更

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」コマンドで共有ライブラリを調べられる
  • 共有ライブラリのロードするライブラリを変更する方法はつぎの通り
    1. 「/etc/ld.so.conf」ファイルに変更したい共有ライブラリ設定
    2. 「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つにまとめたもの

f:id:Amarron:20150801235409j:plain

パーテーションの分割例

パーテーション ファイルサーバ(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

使用した教材

LPIC101,102