ぱそくま ろご
Linux > パッケージ管理 > aptitudeを使ってパッケージを管理する

aptitudeを使ってパッケージを管理する

aptitudeとは?

aptitudeはaptの上位モデルと思ってOK。なお、「aptitude」と打つとスクリーンモードでパッケージの管理ができます。 通常はこちらで管理可能です。

必要なパッケージを探す(aptitude search)

インストールする前に、パッケージ名がわからないとインストールできません。 そこでaptitudeの「search」サブコマンドを使って、キーワードを元に検索します。 例えば「lftp」に関するパッケージを探す場合は以下の通りとなります。

[paso ~]aptitude search lftp
p   curlftpfs                       - filesystem to access FTP hosts based on FU
i   lftp                            - Sophisticated command-line FTP/HTTP client

必要なパッケージの詳細を表示(aptitude show)

パッケージの詳細を見るにはaptitudeのshowサブコマンドを使います。

[root ~]aptitude show lftp
Package: lftp
State: not installed
Version: 4.3.6-1+deb7u1
Priority: optional
.
.


aptitudeを使う前の注意

aptitudeでインストールやアンインストール中には、標準ではyes/noのプロンプトがでません。 特に削除時は「-P」または「--prompt」をつけて、プロンプトを表示し、削除対象をきちんと確認したほうが無難と思います。

パッケージをインストールする(aptitude install)

パッケージをインストールする場合はaptitudeのinstallサブコマンドを使います。 インストールはリポジトリファイルを元に行いますので、 リポジトリファイルが古いとインストールできません。失敗例は以下の通りです。

aptitude install失敗例

[root ~]aptitude install lftp
Reading package lists...
Building dependency tree...
.
.
Reading task descriptions...
E: Failed to fetch http://ftp.jp.debian.org/debian/pool/main/l/lftp/lftp_4.3.6-1+deb7
u1_amd64.deb: 404  Not Found [IP: 150.65.7.130 80]

上記の失敗の原因はインストールしたいlftpのファイルがサーバーにないためです。 これは、サーバーにあるlftpのバージョンとリポジトリファイルに記載されているバージョンが違う(古い)ためです。 このようなメッセージが出たら、aptitudeのupdateサブコマンドを使って、リポジトリファイルを更新します。

[root ~]aptitude update
Get: 1 http://ftp.jp.debian.org wheezy Release.gpg [1672 B]
Get: 2 http://ftp.jp.debian.org wheezy-updates Release.gpg [836 B]
.
.
Fetched 16.3 MB in 8s (1872 kB/s)
Reading package lists...
[root ~]aptitude install lftp  <- update後、行う。
Reading package lists...
Building dependency tree...
.
.
.
Reading task descriptions...

パッケージをアップデートする(aptitude safe-upgrade)

パッケージをアップデートするにはaptitudeのsafe-upgradeサブコマンドを使います。

aptitude safe-upgradeの例

[root ~]aptitude safe-upgrade
Reading package lists...
Building dependency tree...
.
.
Do you want to continue? [Y/n/?] <- yと入力すると更新される
.

パッケージをアンインストールする(aptitude remove)

不要になったパッケージはaptitudeの「remove」サブコマンドで削除できます。

aptitude removeの例

[root ~]aptitude remove lftp
The following packages will be REMOVED:
  lftp
.
.

なお、「aptitude remove」は「apt-get remove」+「apt autoremove」のような動きをしますので、どこからも参照されない寂しいファイルも一緒に削除します。

おまけ(aptitude moo)

ソース(src/main.cc)の1186行目をみると「else if(!strcasecomp(argv[optind], "moo"))」というのがあり、mooサブコマンドがあることがわかります。 (本体のソースはcmdline/cmdline_moo.cc) mooサブコマンドは完全におふざけです。お手すきの時にでも、お試しください。 なお、mooサブコマンドはvオプションの個数により表示内容が変わります。「v」は0-6個(6個以上は6個と同じ)まであります。