dpkg --get-selections > tmpfile
dpkg --clear-selections ; dpkg --set-selections < tmpfile
–clear-selections は、 set-selection ができる状態でのみ実行するようにしておいた方がいいでしょう。
5.1.3 設定ファイルなど
ほとんどの人はそんなものがあることを意識もしてないんじゃないか、という気もしますが、実は dpkg にも設定ファ
イルがあります。
/etc/dpkg/dpkg.cfg
/etc/dpkg/dpkg.cfg.d
~/.dpkg.cfg
書式は簡単で、コマンドラインオプションからダッシュを省いたものを書いておくだけです。毎回こだわりの定番オプ
ションを手打ちしている方は是非どうぞ。
ちなみに、手元の sid で自動登録されていた内容は次のような感じです。
no-debsig
log /var/log/dpkg.log
man dpkg して、どういう内容なのか見てみるといいでしょう。
5.2 パッケージの中身をのぞいてみる
さて、 dpkg のことをだいぶ思い出してきたところではないかと思いますが、引き続き、今度は操作対象となるバイナリ
パッケージの中身を少し眺めてみることにしましょう。
5.2.1 バイナリパッケージの中身
実は、 deb パッケージは単なる ar 書庫ファイルだったりします。なので、
ar t <package filename>
で書庫の中身を表示することができますし、同様に ar で中身を解凍して取り出すこともできます。出てくるファイルは
こんな感じです。
debian-binary
data.tar.gz
control.tar.gz
このファイル名はどんなパッケージでも同じです。それぞれ、次のような内容になっています。
debian-binary バイナリパッケージのバージョンが記載されている。現時点では 2.0 のはず
data.tar.gz パッケージの実体をまとめたディレクトリツリー。これだけ取り出せば checkinstall あたりと同じかも
control.tar.gz パッケージのメタ情報とパッケージ前後処理のスクリプトなど
5.2.2 メタ情報
data.tar.gz は明確なのでおいておくことにして、 control.tar.gz の中身を見てみましょう。
debconf 関連 config templates
post/pre 関連 preinst postinst prerm postrm
パッケージ情報 control conffiles md5sum
これらのファイルに記載されている情報は、下記の場所にそれぞれ適当に配置されます。
/var/lib/dpkg/info/ post/pre 関連、 conffiles、 deb conf 関連などなど
14