Ubuntuを使ううえでパッケージ管理は欠かせません。普段はソフトウェアセンターやapt-getコマンドからパッケージをインストールし、
パッケージの変更履歴を取得する
パッケージを更新するとき、
すべてのパッケージにはパッケージに関する変更履歴ファイル
ただしローカルには、
$ apt-get changelog update-manager
変更履歴の内容はアップデートマネージャーに表示されるものと同じです。ただしPPAや外部リポジトリのようなchangelogs.
$ sudo apt-get install python-launchpadlib $ python generate-ppa-changelog.py -t cosmos-door -p marisa -s trusty
Launchpad APIを使っているため、
すべてのパッケージの変更履歴を眺めたいのであれば、
インストール済みパッケージのファイルリストを取得する
インストール済みのパッケージのファイルリストは、
$ dpkg -L update-manager /. /usr /usr/bin /usr/bin/update-manager /usr/lib /usr/lib/python3 /usr/lib/python3/dist-packages /usr/lib/python3/dist-packages/UpdateManager /usr/lib/python3/dist-packages/UpdateManager/UpdateManager.py (中略) /usr/share/applications /usr/share/applications/update-manager.desktop /usr/share/doc/update-manager/changelog.gz
逆にファイル名から所属するパッケージを探したい場合は、
$ dpkg -S UpdateManager.py update-manager: /usr/lib/python3/dist-packages/UpdateManager/UpdateManager.py
検索パターンにはシェルと同様のワイルドカード文字を使用できます。
$ dpkg -S UpdateManager.* update-manager: /usr/share/update-manager/gtkbuilder/UpdateManager.ui update-manager: /usr/lib/python3/dist-packages/UpdateManager/UpdateManager.py
「……により退避 (divert) された:……」
未インストールのパッケージのファイルリストを取得する
「このファイルが欲しいのだけれど、
$ sudo apt-get install apt-file
apt-fileはファイルリストを管理するデータベースを作成する必要があります。GUI環境であればインストール後に
CUIの場合や、
$ apt-file update
ファイルの検索はsearchコマンドで、
$ apt-file search UpdateManager.py fs-uae-launcher: /usr/share/fs-uae-launcher/fs_uae_launcher/UpdateManager.py update-manager: /usr/lib/python3/dist-packages/UpdateManager/UpdateManager.py $ apt-file list fs-uae-launcher fs-uae-launcher: /usr/bin/fs-uae-launcher fs-uae-launcher: /usr/share/applications/fs-uae-launcher.desktop fs-uae-launcher: /usr/share/doc/fs-uae-launcher/README.gz (以下略)
Contentsファイルを生成していないPPAや外部リポジトリは検索対象外です。
Ubuntuをインストールしていない環境や別のリリースを調べたい場合は、
パッケージの中身を確認する
手元にバイナリパッケージがあるなら、
apt-getでインストールできるパッケージであれば、
$ apt-get download apport 取得:1 http://jp.archive.ubuntu.com/ubuntu/ trusty/main apport all 2.13.2-0ubuntu4 [177 kB] 177 kB を 0秒 で取得しました (510 kB/s) $ ls apport_2.13.2-0ubuntu4_all.deb
このパッケージがインストールするファイルリストは
$ dpkg --contents apport_2.13.2-0ubuntu4_all.deb drwxr-xr-x root/root 0 2014-02-15 07:56 ./ drwxr-xr-x root/root 0 2014-02-15 07:56 ./etc/ drwxr-xr-x root/root 0 2014-02-15 07:54 ./etc/apport/ -rw-r--r-- root/root 1172 2014-02-15 07:54 ./etc/apport/crashdb.conf (以下略)
ちなみにUbuntuはLESSOPEN、
$ less apport_2.13.2-0ubuntu4_all.deb
異なるバージョン間のパッケージ差分を取得する
パッケージ間の差分はバイナリパッケージではなくソースパッケージをダウンロードしてきて、
もし1つ前のバージョンとの差分だけ確認したいのであれば、
ソースパッケージ名を元に、
最後の
このページにはサポート中の各リリースのポケット

もっと古いバージョンも確認したければ、
パッケージのインストール元リポジトリを調べる
PPAや外部リポジトリを追加した場合、
$ apt-cache policy qt5-default qt5-default: インストールされているバージョン: 5.2.1+dfsg-0ubuntu1~trusty1~test2 候補: 5.2.1+dfsg-0ubuntu1~trusty1~test2 バージョンテーブル: *** 5.2.1+dfsg-0ubuntu1~trusty1~test2 0 500 http://ppa.launchpad.net/canonical-qt5-edgers/qt5-beta2/ubuntu/ trusty/main amd64 Packages 100 /var/lib/dpkg/status 5.0.2+dfsg1-7ubuntu18 0 500 http://jp.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
実際にインストールされているバージョン、
ちなみに、
より新しいバージョンのパッケージを探す
Ubuntuは正式リリース後、
たとえばUbuntu 13.
もしリリース版のUbuntuで、
- Backportsリポジトリからインストールする
- PPAを含む外部リポジトリを追加する
「Backportsリポジトリ」
Backportsリポジトリ自体はインストール直後から有効化されていますので、
$ apt-cache policy ansible ansible: インストールされているバージョン: (なし) 候補: 1.1+dfsg-1 バージョンテーブル: 1.4.4+dfsg-1~ubuntu13.10.1 0 100 http://jp.archive.ubuntu.com/ubuntu/ saucy-backports/universe amd64 Packages 1.1+dfsg-1 0 500 http://jp.archive.ubuntu.com/ubuntu/ saucy/universe amd64 Packages
これを見るとわかるとおり、
$ sudo apt-get install ansible/saucy-backports 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 'ansible' にはバージョン '1.4.4+dfsg-1~ubuntu13.10.1' (Ubuntu:13.10/saucy-backports [all]) を選択しました
新しいバージョンをPPA経由で誰かが公開していることもしばしばあります。すでにUbuntuリポジトリに存在するパッケージの新しいバージョンであれば、
ページ下部にある

devscriptsパッケージに含まれる
$ sudo apt-get install devscripts $ rmadison -u debian,ubuntu ansible debian: ansible | 1.4.4+dfsg-1 | jessie | source, all ansible | 1.4.4+dfsg-1 | sid | source, all ubuntu: ansible | 1.1+dfsg-1 | saucy/universe | source, all ansible | 1.4.4+dfsg-1~ubuntu12.04.1 | precise-backports/universe | source, all ansible | 1.4.4+dfsg-1~ubuntu12.10.1 | quantal-backports/universe | source, all ansible | 1.4.4+dfsg-1~ubuntu13.10.1 | saucy-backports/universe | source, all ansible | 1.4.4+dfsg-1 | trusty/universe | source, all
rmadisonがない環境であれば、
いろんな条件でパッケージを検索する
ソフトウェアセンターや
$ sudo apt-get install dctrl-tools
たとえばバージョン文字列に
$ grep-aptavail -F Version ubuntu -s Package,Version Package: acct Version: 6.5.5-1ubuntu1 Package: acl Version: 2.2.51-5ubuntu1 Package: acpid Version: 1:2.0.10-1ubuntu3 (後略)
「-F」
コマンド名がgrep-aptavailの場合は、
正規表現や論理演算、