読者です 読者をやめる 読者になる 読者になる

解き放たれしソフトウェア

GNU/LinuxなどFLOSSについて書いてみるつもり

【Gentoo】インストールすべき必携ツール:gentoolkit、portage-utils、eix

Gentoo Linux ディストリビューション

Gentooシステムの管理は、Portage(sys-apps/portage)同梱のプログラムだけでは難しいと思います。

例えば、パッケージのインストール状態を調べたいときや、パッケージに関する情報を調べたいときです。 比較して言えば例えば、RedHatにおけるrpm -qlとか、Debianにおけるapt-cache showとか。

厳密には、Gentooの管理情報の多くはテキストファイルなので、その情報の在り処を知っていればgrepしたりlessしたりして読めばいいわけですが。 つまり、"Portage tree"(古典的には/usr/portage)や、/var/db/pkgなどを探索すればいいわけです。

しかし、その検索作業をさらに簡単にするためには、ヘルパーツールを普段は用いたほうがよいでしょう。 自力で探すのは手間暇がかかりますから。

app-portage/gentoolkit

gentoolkit というのはパッケージ名で、コマンド名ではありません。 コマンド名のほうが馴染みがあるかと思われます。

gentoolkitに入っているコマンドを挙げてみますと、

$ qlist -e gentoolkit | grep -e 'bin/'
/usr/bin/eread
/usr/bin/euse
/usr/bin/revdep-rebuild.sh
/usr/bin/eclean
/usr/bin/eclean-pkg
/usr/bin/epkginfo
/usr/bin/eshowkw
/usr/bin/revdep-rebuild.py
/usr/bin/eclean-dist
/usr/bin/enalyze
/usr/bin/equery
/usr/bin/glsa-check
/usr/bin/revdep-rebuild

特に重要なのは equery で、ほかに知っておくと良いのはeclean-distです。

equeryでは、パッケージのdependencyやUSEフラグの情報などなどを調べられます。

Gentooでは原則としてsource tarball(アーカイブ)をダウンロードしてビルド(コンパイル、リンク)してインストールしますが、再インストールが必要になったときに備えて、ダウンロードしたtarballは保管しています。 eclean-distはそのtarballを整理整頓するためのコマンドです。

詳しくはGentoo Wiki にも書いてありますが、パッケージ名ではなくコマンド名で記事がありますので気をつけてください。

app-portage/portage-utils

上記でしれっと出てきたqlistですが、portage-utilsパッケージに入っているコマンドです。

portage-utilsは、俗には「q applets」と呼ぶ人が少なくないようです。 というのは

$ qlist -e portage-utils | grep -e 'bin/'
/etc/portage/bin/post_sync
/usr/bin/qxpak
/usr/bin/quse
/usr/bin/qtbz2
/usr/bin/qsize
/usr/bin/qsearch
/usr/bin/qpkg
/usr/bin/qmerge
/usr/bin/qlop
/usr/bin/qlist
/usr/bin/qgrep
/usr/bin/qfile
/usr/bin/qdepends
/usr/bin/qcheck
/usr/bin/qcache
/usr/bin/qatom
/usr/bin/q

qで始まるコマンドです。

しかも実は、プログラムの実体は /usr/bin/q だけで、ほかのqで始まるコマンドはすべて/usr/bin/qへのシンボリックリンク、 ちなみに/etc/portage/bin/post_syncは、q applet が用いるキャッシュを再生成するためのスクリプト/etc/portage/postsync.d/q-reinitialize)を実行するためのスクリプト(なんか何言っているかわからなくなってきましたが)で、emerge --sync をした後に実行されます。

詳しくは q applets - Gentoo Wiki

私は qlistqfileをよく使いますが、例えばqlistDebiandpkg -LRedHatrpm -qlに相当します。

app-portage/eix

eixは極めて高機能なツールで、詳しく説明しきれませんが、

eix can access Gentoo portage ebuild information and description very quickly (using a local cache). It can also be used to access information on installed packages, local settings, and local and external overlays, and informs about changes in the tree

って公式には書いてあります。

典型的には、パッケージを検索するときに使います。 Debianでいえばapt-cache searchRedHatでいえばyum searchみたいなものですが、もっと高度(複雑)です。

Gentoo Wikiにも記事がありますが、これだけではあまり参考になりません。 man 1 eixすると膨大な長さのマニュアルが出てきますがそれを読むなり、まずはeix --helpから始めるなりするべきでしょう。


この投稿は

qiita.com

12月3日の記事です。