Programming log - Shindo200

イベント参加記録とプログラミング系の雑記

APT について学びました

フィヨルドインターン学習週6日目に APT について学びましたので、まとめておきます。

APT

APT は Debian 用のパッケージ管理システムです。apt-get か aptitude で呼び出すことができます。aptitude は TUI で起動できたり、apt-cache のようにパッケージの詳細情報を見ることができたり、ログファイルを持っていたり、多機能らしいですね。

Debian リファレンス - 第2章 Debian パッケージ管理
https://www.debian.org/doc/manuals/debian-reference/ch02.ja.html

apt-get とaptitude のコマンドの違いは、上記ページの表2.6を見るとわかります。

依存関係

APT はパッケージ同士の関係について、4つの言葉で定義しています。wikipedia から引用します。

依存 - パッケージを導入するのに欠かすことのできないパッケージ。
推奨 - 無くてもよいが、プログラムの機能を利用するために通常は導入するパッケージ。
提案 - 無くてもよいが、導入することによってプログラムの機能を向上させるパッケージ。
衝突 - パッケージを導入することで、同一の機能を有するなどの理由で削除されるパッケージ。

参考: http://ja.wikipedia.org/wiki/APT

依存関係は以下のコマンドで確認できます。

$ apt-cache depends vim
vim
  Depends: vim-common
  Depends: vim-runtime
  Depends: libacl1
  Depends: libc6
  Depends: libgpm2
  Depends: libselinux1
  Depends: libtinfo5
  Suggests: <ctags>
    exuberant-ctags
  Suggests: vim-doc
  Suggests: vim-scripts

デフォルトでは、apt-get は依存するライブラリだけをインストールするけど、aptitude は推奨するライブラリもインストールします。

apt-get と aptitude を混用する

「apt-get と aptitude を混用しても大丈夫なのか?」

と疑問を持ったのですが、『Debian リファレンス』には apt-get と aptitude はどちらも /var/lib/apt/extended_states に自動インストールしたパッケージ情報を記憶しているため、混用しても大丈夫だと書いてあります。試しに、apt-get や aptitude を使って mysql-server とか ruby とかを適当にインストールしてみたいのですが、確かにインストールしたパッケージが /var/lib/apt/extended_states に追記されていました。

aptitude のが便利なのかと思いましたが、使い方によっては余計だと感じことがあるのかもしれませんね。でも、学習用途では aptitude を使って困ることはなさそうですので、aptitude を使って学習を進めていきます。