[% title = "Debian パッケージ管理手法 〜apt の日々〜" %]
Debian パッケージ管理手法 〜apt の日々〜
Debian パッケージ管理手法 〜apt の日々〜
Debian Project
樽石将人
(page 1)
概要
- APT とは何か? dpkg との違い
- APT の基本的な使い方
- APT の応用
(page 2)
APT とは
- パッケージ管理
- パッケージをどのようにインストール、削除すれば良いか考える
- ダウンロード
- 検索
(page 3)
Dpkg とはどう違うのか
- システム上のパッケージを管理する門番
- インストールの許可/不許可
- パッケージの展開
- パッケージの状態管理
- 設定の許可
- APT は Dpkg に怒られないようにインストールの順序付けを行う
(page 4)
APT と Dpkg の関係
(page 5)
APT の基本的使い方
- 基本設定
- /etc/apt/sources.list に Debian ディストリビューションがある場所を羅列する
例
deb ftp://ftp.jp.debian.org/debian potato main contrib non-free
deb ftp://ftp.jp.debian.org/debian-non-US potato/non-US main contrib non-free
(page 6)
パッケージのインストール
~# apt-get install apt
~# apt-get remove apt
(page 7)
APT がなかったらどうなるか
1. apt の依存関係を調べ、インストールの手順を確認する
Depends: libc6 (>= 2.2.3-7), libstdc++2.10-glibc2.2
Suggests: dpkg-dev
Provides: libapt-pkg-libc6.2-3-2-3.2
Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7)
8000 余のパッケージ全て調べる必要がある
(実際は門番 Dpkg が怒ってくれるので、怒られてから事後調査をすれば十分)
2. Dpkg に怒られないようにパッケージをインストール(または削除)していく
(page 8)
Dselect はどうか
- Dselect もある程度、自動化する
- 完全に解決はしない
(page 9)
APT の日々 〜 パッケージの検索 〜
- 自分の欲しいソフトウェアを探したい時
- ~$ apt-cache search <正規表現>
~$ apt-cache search ruby.\*mail
[ttyplay search.tty (80x24)]
(page 10)
APT の日々 〜 パッケージの詳細 〜
- ソフトウェアの詳細を閲覧したい時
- ~$ apt-cache show <パッケージ名>
[ttyplay show.tty (80x24)]
(page 11)
新しいアプリケーションの導入
「さて、MIDI を再生するアプリケーションをインストールするかな」
[ttyplay midi-search.tty (80x24)]
(page 12)
MIDI を再生するソフトを探す
(page 13)
timidity って何だろう
(page 14)
とりあえずいれてみる
~$ sudo apt-get install timidity
[ttyplay install-timidity.tty (80x24)]
(page 15)
GUI はないのか?
- apt-cache search apt
- apt-cache search apt | lv
[ttyplay apt.tty (80x24)]
(page 16)
aptitude の例
[ttyplay aptitude.tty (80x24)]
(page 17)
情報源
http://www.machineofthemonth.org/articles/a76/page3.html
など
(page 18)
APT 0.5 の主な新機能
- バージョンなどの選択
- ~# apt-get install apt=0.5.4
- ~# apt-get install apt/unstable
- ダウングレード
- ~# apt-get install apt=0.3.12
- ~# apt-get install libc6/testing
- インストールターゲットの選択
- ~# apt-get -to=Debian-JP install
(page 19)
ポリシー
- どのバージョンのパッケージをどこからとるか決める
- ポリシーを見るには apt-cache policy
[ttyplay policy.tty (80x24)]
(page 20)
APT::Default-Release
デフォルトのリリースを決める
* apt-cache -o APT::Default-Release='a=testing' policy
設定ファイルに
APT::Default-Relase "o=testing";
を書くと -o を指定しなくてもデフォルトで testing アーカイブが選択される
(page 21)
デフォルトリリースの優先度
デフォルトリリースの優先度は 990 になる
[ttyplay default-policy.tty (80x24)]
(page 22)
したがって
デフォルトは比較的安全(?)な testing アーカイブのパッケージを利用して、unstable のパッケージは最新機能が必要なものだけを入れる
(page 23)
unstable の galeon を入れる
~# apt-get -ta=unstable \
install galeon
(page 24)
APT のパッケージの選び方
- 候補
- インストールされているパッケージよりもバージョンが大きいもののなかで最も優先度が大きいもの
- インストールされているパッケージのバージョンをこえないものの中で最も優先度が大きいもの(優先度が 1000 以下は無視)
- このなかで一番優先度の高いものを選ぶ
(page 25)
結果として
- 一度 unstable にしたパッケージは今後常に unstable のバージョンを選択できるようになる
- 一度 DebianGuru のバージョンを入れたパッケージは今後、常に DebianGuru 版のパッケージを使うことができる
(page 26)
まとめ
- APT で楽々システム管理
- 例えばセキュリティ対策済バージョンへの更新が超容易
- ソフトウェアの検索
(page 27)
おまけ 〜 部分的ミラー 〜
- apt-move & popularity-contest
- 自宅マシンにインストールされているパッケージの統計(popcon)をとって必要なものだけミラーする(apt-move)
- 1 G もあれば足りる (一日 30M 程度)
- sparc & i386 のバイナリフルミラー (一日 100 〜 300M)
(page 28)