Linuxゲリラ戦記

aptitudeコマンドの使い方

左を向いているペンギンみたいなキャラクター、ナックス

aptitudeコマンド(パッケージの管理)

aptitude

パッケージマネージャの操作。って言っても意味分かんないよねー。要するに、欲しいパッケージ(ソフトウェアのこと)(例えばお絵描きソフトとかネットワークソフトとか)を検索したり、更新したり、あるいは既にインストールしているソフトウェアを削除したりするためのコマンド。

Linuxではソフトウェアのことを「パッケージ」というんだけど、ウィンドウズ文化の人は最初パッケージと言われても何の事だか分からないと思う。

使用例

$ aptitude search 検索キーワード

検索キーワードにひっかかったソフトウェアの一覧を表示する。一般ユーザーから実行可能。

以下、実行例

$ aptitude search img
p   cimg-dev    - powerful image processing library
p   cimg-doc    - documentation of cimg-dev imaging library
p   cimg-examples     - examples for cimg-dev imaging library
p   dmg2img     - Tool for converting compress dmg files to hfsplus images
v   iiimgcf     -
p   imgseek     - image viewer and manager with content based query
p   imgsizer    - HTML ファイルの IMG タグに WIDTH および HEIGHT 属性を追加
p   imgtex      - provides yet another math-on-the-web solution
p   imgvtopgm         - PalmPilot/III 画像変換ユーティリティ
p   libtk-img         - Extended image format support for Tcl/Tk (runtime)
p   libtk-img-dev     - Extended image format support for Tcl/Tk (development files
p   libtk-img-doc     - Extended image format support for Tcl/Tk (manual pages)
p   simgear-dev       - Simulator Construction Gear -- development files
p   simgear1.0.0      - シミュレータ構築ギア - 共有ライブラリ
p   w3m-img     - inline image extension support utilities for w3m
$ aptitude show ソフトウェア名

ソフトウェアの詳細情報を表示する。

以下、実行例

$ aptitude show dolphin
パッケージ: dolphin
新規: yes
状態: インストール済み
自動的にインストールされた: yes
バージョン: 4:4.3.2-1
優先度: 任意
セクション: utils
メンテナ: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
展開サイズ: 2,654k
依存: kdebase-runtime (>= 4:4.3.0), kdelibs5 (>= 4:4.3.2), libc6 (>= 2.2.5), libkonq5 (>= 4:4.3.2), libphonon4 (>=
        4:4.3.0), libqt4-dbus (>= 4:4.5.2), libqtcore4 (>= 4:4.5.2), libqtgui4 (>= 4:4.5.2), libsoprano4 (>=
        2.1.1), libstdc++6 (>= 4.1.1), libxext6, phonon (>= 4:4.5.2)
推奨: kfind
置換: kdebase-bin (< 4:4.1.80), kdebase-data (< 4:4.1.80)
説明: file manager for KDE 4
 Dolphin is the default KDE 4 file manager, intended to be both powerful and easy to use.

 Features include:
  Customisable sidebars
  "Breadcrumb" navigation
  View properties remembered for each folder
  Split views
  Network transparency
  Undo/redo functionality
  Ratings, comments, and tags

 This package is part of the KDE 4 base applications module.
ホームページ: http://www.kde.org/
# aptitude install ソフトウェア名
ソフトウェアをインストールする。
# aptitude remove ソフトウェア名
ソフトウェアを削除する(ソフトウェア本体のみ)。
# aptitude purge ソフトウェア名

ソフトウェアを削除する(ソフトウェア本体だけでなく設定ファイルも削除する)。

removeで削除した場合は設定ファイルは残っているので、再度後からインストールした時に、以前の状態に復元することが出来るが、purgeは、再度後からインストールした時は本当にまっさら(新品)の状態からインストールということになる。

# aptitude hold ソフトウェア名

ソフトウェアを固定する(更新出来ないようにする)。

「俺はこのバージョンが好きなんだ。このバージョンしか使わないんだ!」っていうときに使う(んだと思う)。

# aptitude keep ソフトウェア名

ソフトウェアを固定する(更新出来ないようにする)。

holdされたソフトウェアは、更新オプションであるsafe-upgradeまたはfull-upgradeをガン無視します。keepされたソフトウェアは、そのソフトウェアに対するアクションをすべてキャンセルします。つまり、どっちでも好きな方を使って特に問題ないんじゃね?

# aptitude unhold ソフトウェア名
更新できないようにしていたソフトウェアを更新できるようにする。
# aptitude reinstall ソフトウェア名
ソフトウェアを再インストールする。
# aptitude markauto ソフトウェア名
「自動的にインストールされたマーク」をソフトウェアにつけます。
# aptitude unmarkauto ソフトウェア名
「手動でインストールしたマーク」をソフトウェアにつけます。
# aptitude forbid-version ソフトウェア名=バージョン名

「そのソフトウェア」の「そのバージョン」のみ、インストールする事を拒否する(更新時にインストールしない)。これにより、問題のあるバージョンだけ無視することが可能。もちろん、それ以外のバージョンであれば普通にインストールできる。

実際には「aptitude forbid-version vim=1.2.3.broken-4」のように使う。

# aptitude update
ソフトウェア(パッケージ)一覧情報の更新をする。ソフトウェアの一覧情報の更新だけあって、ソフトウェアそのものの更新はしない。
# aptitude safe-upgrade

インストールされているソフトウェアの最新版があれば、それを安全にインストールする(要するにソフトウェアの更新)。

もし、更新するのに何らかのソフトウェアの削除の必要があれば、それを削除せず、その部分の更新を行わない。

通常このコマンドは、updateをしたあとに行う。

# aptitude full-upgrade

インストールされているソフトウェアの最新版があれば、それを積極的にインストールする(要するにソフトウェアの更新)。

もし、更新するのに何らかのソフトウェアの削除の必要があれば、それを削除する。

通常このコマンドは、updateしたあとに行う。

safe-upgradeとfull-upgradeのどちらを使うかは好みの問題。
# aptitude autoclean
もうダウンロードできない、キャッシュされたソフトウェア(パッケージ)を削除する。キャッシュとは、一時的に保持しているファイルの事で、再度そのパッケージを使うときとかに必要なことがある。でも、ダウンロードできないっていうことは、もうかなり古いパッケージということだから、事情が無いのであれば削除して良いと思う。
# aptitude download ソフトウェア名
ソフトウェアの.debファイル(ソースファイル)をダウンロードする(インストールはしない)。ダウンロードして、ソースコードを見て、いろいろ勉強するときっと良い事がある。ダウンロードとインストールの違いだけど、ダウンロードは「プログラムをネットから持ってくる」事。持ってきただけで、パソコンにはまだ入れていない。インストールは「パソコンに入れること」です。
# aptitude help
aptitudeコマンドのヘルプが見られる。

ちなみに、今まで説明したコマンドは指定するソフトウェア名は一個だけではなく複数指定可能です。

# aptitude install ソフトウェア名 ソフトウェア名 ソフトウェア名……

複数指定する場合は半角スペースで区切ってください。

上書き指定子

aptitude install、aptitude remove、aptitude purge、aptitude hold、aptitude unhold、aptitude keep、aptitude reinstallのそれぞれのコマンドで指定するソフトウェア名には「上書き指定子」というものが指定できます。この、上書き指定子を指定することにより、installやremoveなどのオプションを無視した命令を下すことが出来ます。

実際には「aptitude install ソフトウェア名-」というようにします(ソフトウェア名の後ろに-がついていることが分かるでしょうか?)。

ソフトウェア名+
オプションに関係なくソフトウェアをインストールします。
ソフトウェア名+M
オプションに関係なくソフトウェアをインストールし、自動的にインストールされたという印をそれに添付します。
ソフトウェア名-
オプションに関係なくソフトウェアを削除する。
ソフトウェア名_
オプションに関係なくソフトウェアを完全に削除する。
ソフトウェア名=
オプションに関係なくソフトウェアを固定する(hold)。
ソフトウェア名:
オプションに関係なくソフトウェアを固定する(keep)。
ソフトウェア名&M
オプションに関係なく自動的にインストールされたという印をソフトウェアに添付する。
ソフトウェア名&m
オプションに関係なく手動でインストールされたという印をソフトウェアに添付する。

「ソフトウェアを検索してみたけど、情報が多すぎて一画面に収まらない」っていう時は、|(パイプ)と他のコマンドを組み合わせたりします。

例えば

$ aptitude search a | less

とすれば、情報を一画面でスクロール出来るようになります。

$ aptitude search a | grep img

とすれば、aptitude search aと検索して表示された物の中に、imgというキーワードが入っている行だけど表示することが出来ます。|もlessもgrepも当サイトではまだ解説しておりませんが、よろしければ他のサイトなどを参考にやってみてください。

aptitude updateでソフトウェア(パッケージ)の一覧が更新されるって言ったけど、その一覧はどこから手に入れるのか、という情報が書かれているのが/etc/apt/にあるsources.listファイル。

$ cd /etc/apt/
$ ls
apt.conf.d  secring.gpg  sources.list  sources.list.d  sources.list.save  sources.list~  trustdb.gpg  trusted.gpg  trusted.gpg~
$ vim sources.list
# 
# deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 NETINST Binary-1 20090214-16:03]/ lenny main

# deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 NETINST Binary-1 20090214-16:03]/ lenny main

deb http://ftp.jp.debian.org/debian/ lenny main
deb-src http://ftp.jp.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

ここを書き換えることで、今あるソフトウェア以外も検索やインストールが出来るようになる。ちなみに、実際に書き換えるときはroot権限じゃないと書き換えられません。

# su -
パスワード
# vim sources.list

今の私はmainという、Debianフリーソフトウェアガイドラインに沿ったソフトウェアしか検索・インストール出来ないようになっています。

Debianフリーソフトウェアガイドラインに沿っていないソフトウェアの検索・インストールもしたい場合は以下の様に書き換えます。

# 
# deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 NETINST Binary-1 20090214-16:03]/ lenny main

# deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 NETINST Binary-1 20090214-16:03]/ lenny main

deb http://ftp.jp.debian.org/debian/ lenny main non-free
deb-src http://ftp.jp.debian.org/debian/ lenny main non-free

deb http://security.debian.org/ lenny/updates main non-free
deb-src http://security.debian.org/ lenny/updates main non-free

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

mainの後に半角の空白スペースを一つ書いた後、non-freeと記入しました。これだけで、かなりインストール・検索できるソフトウェアが増えます。

さらに、Debianフリーソフトウェアガイドラインに沿ってはいるが、non-freeのソフトも一緒にインストールしないと使えないというソフトウェアを使いたい場合はさらに以下の様に書き換えます。

#
# deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 NETINST Binary-1 20090214-16:03]/ lenny main

# deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 NETINST Binary-1 20090214-16:03]/ lenny main

deb http://ftp.jp.debian.org/debian/ lenny main contrib
deb-src http://ftp.jp.debian.org/debian/ lenny main contrib

deb http://security.debian.org/ lenny/updates main contrib
deb-src http://security.debian.org/ lenny/updates main contrib

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

今度は、non-freeの代わりにcontribを記入しました。これで、Debianフリーソフトウェアガイドラインに沿ってはいるが、non-freeに依存しているソフトウェアを検索・インストールすることが出来るようになります。

ちなみに、mainは文字通りメインとなるもの(といいますか、完全にDebianフリーソフトウェアガイドラインに沿っているソフトのこと)ですので、普通はあまり消さないです。

ちなみに、普通はmain contrib non-freeの三つを使えるようにしているのが一般的な様です。つまり、次のようなsources.listが一般的です。

#
# deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 NETINST Binary-1 20090214-16:03]/ lenny main

# deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 NETINST Binary-1 20090214-16:03]/ lenny main

deb http://ftp.jp.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

また、これら以外にもボランティアで独自のdebian用ソースリストを配布している所がありますので、検索して見てください。

ログ
aptitudeコマンドのログは/var/log/aptitudeに記録されています。このファイルには今までどんなパッケージをインストールしたか(または削除したか)が書かれています。
参考サイト
aptitude
aptitude ユーザマニュアル
Debian JP Project - Debian ポリシーマニュアル - Debian アーカイブ