diary/Kojima

・パッケージに含まれるファイルの検索ツール

昨日のライブラリ検索で出て来たファイルが、どのパッケージに含まれているのかを調べるためのツールもついでに書いてみた。

こっちも2つ組になっていて、get_pkglist.py を実行すれば /var/log/packages/ 以下を調べて、 どのパッケージにどういうファイルが入っているかを ./filelist.sql3 に記録する。 このデータベースファイルから query_pkglist.py でパッケージからファイル、ファイルからパッケージを引く。

使えるオプションは -g、-f、-p の3種で、-g がパッケージ名の一部からそのパッケージに含まれているファイルを表示する。

$ ./query_pkglist.py -g bash
package bash-4.1-x86_64-P3.txz has:
  ABOUT-NLS.gz(/usr/share/doc/bash-4.1/ABOUT-NLS.gz)
  AUTHORS.gz(/usr/share/doc/bash-4.1/AUTHORS.gz)
  COPYING.gz(/usr/share/doc/bash-4.1/COPYING.gz)
  ChangeLog.gz(/usr/share/doc/bash-4.1/ChangeLog.gz)
  INSTALL.gz(/usr/share/doc/bash-4.1/INSTALL.gz)
  NEWS.gz(/usr/share/doc/bash-4.1/NEWS.gz)
  PlamoBuild.bash-4.1.gz(/usr/share/doc/bash-4.1/PlamoBuild.bash-4.1.gz)
  README.gz(/usr/share/doc/bash-4.1/README.gz)
  bash(/bin/bash)
  ...

ファイル名の一部からパッケージ名を引く時は -f。

$ ./query_pkglist.py -f libomapi.a
file libomapi.a included in:
  dhcp-4.2.3_P1-x86_64-P2.txz

上のオプションはファイル名のみを検索対象にするけど、-p を指定するとパス名も含めて検索するので、 ディレクトリを指定すれば、そのディレクトリを作ったパッケージが分かる。

$ ./query_pkglist.py -p /usr/lib/sa/
file /usr/lib/sa/sa1 included in:
  sysstat-10.0.1-x86_64-P1.txz
file /usr/lib/sa/sa2 included in:
  sysstat-10.0.1-x86_64-P1.txz
file /usr/lib/sa/sadc included in:
  sysstat-10.0.1-x86_64-P1.txz

まぁ、これは /var/log/packages/ 以下をgrepするだけで分かるのでそれほど必要性は無いのだけど、 将来的には query_depends.py のオプションでパッケージ名まで引けるようにしてみようかと思っているので、 そのための部品。

前と同様、このページに添付(「コメントの挿入」の下くらいに「添付ファイル」の欄がある)しておくので、 興味ある人はどうぞ。



添付ファイル: filequery_pkglist.py 102件 [詳細] fileget_pkglist.py 99件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:42