トップ «前の日記(2012-12-03) 最新 次の日記(2012-12-12)» 編集

毎日が反省会

rss
2007|04|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|10|11|12|
2012|01|02|03|06|07|08|09|10|11|12|
2013|02|03|04|07|08|09|10|11|12|
2014|04|07|10|
2016|10|

2012-12-07

_ [Debian/Ubuntu JP Advent Calendar 2012] apt-forktracer を使ってパッケージをチェックする

Debian リポジトリ以外から入れたパッケージはどのように管理していますか。 apt-forktracer を使うとある程度簡単にチェックできます。

使い方

例えば、自分のある環境でapt-forktracerを実行すると以下のような結果が出力されます。
$ apt-forktracer
....
libsbc1 (1.0-2)
....
gnu-efi (3.0l-1) [Debian: 3.0i-4]
....
bluez (4.101-2) [nigauri: 4.101-2] [Debian: 4.99-2]
libsbc1 は 私がメンテナンスしているパッケージの一つで、まだ experimental のみでしか提供されていません。
これは私がデバッグするために debi コマンドでインストールされたものなので、手動でインストールされた(ローカルのAPT用のリポジトリにない)と判断されたようです。
また、apt-forktracerを動作させたマシンとリポジトリで管理されているパッケージのバーションが異なる場合(バージョンが古いなど)、gnu-efi のような結果が出力されます。これはDebianで提供されているパッケージよりインストールされているパッケージが新しいという結果になっています。
そして、bluez パッケージは 4.101-2がインストールされ、それは nigauri という名前の付いたリポジトリにあることがわかります。
その他、リポジトリから消されたけど、マシンにはインストールされているパッケージも一緒に出力されます。

出力を無視する

/etc/apt/forktracer.conf や /etc/apt/forktracer.d/ に設定を記述sるうと、出力結果を無視できるようになるらしいのですが、思ったように動きませんでした。また調べて報告します。

まとめ

apt-forktracer を使うと、どのパッケージがどのリポジトリからインストールされたのかわかります。今まで独自のスクリプトでチェックされていた方はapt-forktracerに移行してみてはいかがでしょうか。