Nov 242006
Gentooでインストール済みの全パッケージをリストしようと思ったのですが、worldファイルの書式である「カテゴリ+パッケージ名」で一覧する方法がわかりません。
gentoolkitのequery listコマンドが一番望みのものに近いのですが、バージョンが含まれているのでこれを除かなければいけません。
sed等で編集するのも(私には)面倒だったので、てっとり早くequeryコマンドの改造版を作ってみました。
$ diff -u /usr/bin/equery equery.tmp +++ equery.tmp 2007-05-03 08:11:32.000000000 +0900 @@ -1393,7 +1393,7 @@ if rx.search(pkg.get_cpv()): if Config["piping"]: - print_info(0, pkg.get_cpv()) + print_info(0, pkg.get_category() + "/" + pkg.get_name()) else: print_info(0, "[" + pp.installedflag(pfxmodes[status]) + "] [" + pp.maskflag(maskmodes[pkgmask]) + "] " + pp.cpv(pkg.get_cpv()) + " (" + pp.slot(slot) + ")")
get_cpv()の代わりにget_category()とget_name()を使うようにしてるだけです。
get_cpv()のcpvはCategory,Package,Versionの意味で、/usr/lib/gentoolkit/pym/package.pyに定義されています。
出力をpipeした場合のみですが、とりあえずヘッダが出る以外はworld書式で一覧を作ることができました。
複数のバージョンがインストールされている分はsortしないといけませんが。
$ ./equery.tmp list | sort -u > world.new
Sorry, the comment form is closed at this time.