Aptitude コマンドの導入

no extension

aptitude というコマンドがある1。 依存関係解決能力に優れていて apt コマンドの代わりとして使えるようだ(同じパッケージデータベースを使う)。

さっそく導入してみよう。

$ sudo apt install aptitude

$ aptitude help
aptitude 0.8.13
使用方法: aptitude [-S ファイル名] [-u|-i]
          aptitude [オプション] <アクション> ...

アクション (指定がない場合、aptitude はインタラクティブモードで起動します):

 install         パッケージをインストール/更新します。
 remove          パッケージを削除します。
 purge           パッケージと設定ファイルを削除します。
 hold            パッケージを固定します。
 unhold          パッケージの固定を解除します。
 markauto        自動的にインストールされたという印をパッケージにつけます。
 unmarkauto      手動でインストールされたという印をパッケージにつけます。
 forbid-version  aptitude に特定のパッケージバージョンの更新を禁止させます。
 update          新規/更新可能なパッケージの一覧をダウンロードします。
 safe-upgrade    安全な更新を行います。
 full-upgrade    パッケージのインストールや削除を伴う可能性のある更新を行います。
 build-dep       パッケージの構築依存関係をインストールします。
 forget-new      どのパッケージが "新規" かの情報を消去します。
 search          名前や正規表現でパッケージを検索します。
 show            Display detailed info about a package.
 showsrc         Display detailed info about a source package (apt wrapper).
 versions        指定したパッケージのバージョンを表示します。
 clean           ダウンロード済みのパッケージファイルを消去します。
 autoclean       古いダウンロード済みのパッケージファイルを消去します。
 changelog       パッケージの変更履歴を表示します。
 download        Download the .deb file for a package (apt wrapper).
 source          Download source package (apt wrapper).
 reinstall       現在インストールされているパッケージを再インストールします。
 why             特定のパッケージをインストールする必要がある理由を表示します。
 why-not         特定のパッケージをインストールすることができない理由を表示します。

 add-user-tag    パッケージ/パターンにユーザタグを追加します。
 remove-user-tag パッケージ/パターンからユーザタグを削除します。

オプション:
 -h              このヘルプの文章です。
 --no-gui        利用可能でも GTK GUI を使いません。
 -s              アクションのシミュレートのみ行い、実際には実行しません。
 -d              パッケージのダウンロードのみ行い、インストールや削除は
                 行いません。
 -P              アクションの確認のため、常にプロンプトを出します。
 -y              すべての yes/no の質問に対して 'yes' と答えたと見なします。
 -F フォーマット 検索結果の表示フォーマットを指定します。マニュアルを参照し
                 てください。
 -O 順序         検索結果の並び替えを指定します。マニュアルを参照してくださ
                 い。
 -w 幅           検索結果の表示フォーマットの幅を指定します。
 -f              依存関係が壊れたパッケージを積極的に修復しようとします。
 -V              パッケージのどのバージョンがインストールされるか表示します。
 -D              自動的に変更されたパッケージの依存関係を表示します。
 -Z              各パッケージのインストールサイズの変更を表示します。
 -v              付加的な情報を表示します (何倍もの情報が提供されます)。
 -t [リリース]   パッケージをインストールするリリースを指定します。
 -q              コマンドラインモードで、進行状況の逐次表示を抑制します。
 -o キー=値      'キー' の名前の設定オプションを直接設定します。
 --with(out)-recommends     推奨パッケージを強い依存関係として扱うかどうかを
                            指定します。
 -S ファイル名   ファイルから aptitude の拡張状態情報を読み込みます。
 -u              起動時に新しいパッケージ一覧をダウンロードします。
                  (端末インタフェースのみ)
 -i              起動時にインストールを行います。
                  (端末インタフェースのみ)

すべてのオプションの完全なリストと説明については、マニュアルページを参照してください。

この aptitude にはスーパー牛さんパワーなどはありません。

ゴメン。 最後の1文は分からない。 試しに aptitude パッケージ自身を search してみよう。

$ aptitude search aptitude
i   aptitude                      - 端末ベースのパッケージマネージャ
v   aptitude:i386                 -
i A aptitude-common               - architecture independent files for the aptitude package manager
v   aptitude-doc                  -
p   aptitude-doc-cs               - 端末ベースのパッケージマネージャ aptitude 用チェコ語マニュアル
p   aptitude-doc-en               - English manual for aptitude, a terminal-based package manager
p   aptitude-doc-es               - 端末ベースのパッケージマネージャ aptitude 用スペイン語マニュアル
p   aptitude-doc-fi               - 端末ベースのパッケージマネージャ aptitude 用フィンランド語マニュアル
p   aptitude-doc-fr               - 端末ベースのパッケージマネージャ aptitude 用フランス語マニュアル
p   aptitude-doc-it               - Italian manual for aptitude, a terminal-based package manager
p   aptitude-doc-ja               - 端末ベースのパッケージマネージャ aptitude 用日本語マニュアル
p   aptitude-doc-nl               - Dutch manual for aptitude, a terminal-based package manager
p   aptitude-doc-ru               - Russian manual for aptitude, a terminal-based package manager
p   aptitude-robot                - Automate package choice management

先頭の3文字が各パッケージの状態を表している。 先頭文字の

  • i はインストールされていることを表す
  • p はインストールされていないことを表す(purge 状態)
  • c はインストールされてないが設定が残ってる状態(remove 状態)
  • v は仮想パッケージ(インストール対象外)
  • B は依存関係が壊れている状態

2文字目は予約されているアクションで,空白は予約なしの状態を指す。 3文字目に A が付いてるものは依存関係によって自動的にインストールされていることを示す。

update および install アクションの使い方は apt コマンドと同じかな。 removepurge アクションも同じ。 カーネルアップグレード後によく使う apt autoremoveaptitude では autoclean アクションを使えばいいのかな。 いわゆる dry run は -s オプションでできるみたい。

apt upgrade については aptitude safe-upgrade で行う。

$ sudo aptitude safe-upgrade

ディストリビューションのバージョンを上げるときに使う full-upgrade アクションは同じようだ。

aptitude コマンドでは,インストール時などに依存関係の競合が発生すると複数の解決策を提示する場合があるらしい(まだ遭遇してない)。 安直に  y  キーを押さずに,提示された解決策を確認してから選択するのがよさそうだ。

引数なしで aptitude コマンドを起動すると TUI モードで起動する。

おー。 これはよさげ。 パッケージ毎に(依存関係の解決を含めた)細かい操作をする場合には便利かも。 なぜか TUI モードではマインスイーパーで遊べる。

参考

photo
スーパーユーザーなら知っておくべきLinuxシステムの仕組み
Brian Ward (著), 柴田 芳樹 (翻訳)
インプレス 2022-03-08 (Release 2022-03-08)
単行本(ソフトカバー)
4295013498 (ASIN), 9784295013495 (EAN), 4295013498 (ISBN)
評価     

版元で PDF 版が買える。セキュリティ・エリアにも持ち込めるよう紙の本を買ったのだが,オンライン読書会が始まったので PDF 版も購入。Linux システムの扱い方に関するリファレンス本として優れている。最初に軽く流し読みして,必要に応じて該当項目を拾い読みしていけばいいだろう。

reviewed by Spiegel on 2023-02-11 (powered by PA-APIv5)


  1. “aptitude” (apt + tude) は才能や適性を指す言葉で,ラテン語の “aptus” (適切な,適合した) に由来するそうな。同じ由来の類義語に adapt/adaptation などがある。 apt コマンドは “Advanced Package Tool” の略称だけど “apt” からのこじつけかなとか思ったり。(参考: 語根「apt」=「fit (適当な) 」を覚えろ!) ↩︎