WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

equery の使い方・リファレンス

本日は、すごく久々に(^^;) Gentoo Linux ネタです。 Gentoo Linux をお使いの方は皆さん equery というコマンドをご存知だと思います。 Portage パッケージのさまざまな情報を取得できる便利なコマンドです。 Gentoo Linux のコマンドの中では最も基本的なもののひとつなのですが、検索してみると意外と日本語の詳細資料がないんですよね。そんなわけで、自分用も兼ねてリファレンスをまとめてみました。ほとんどは皆さんご存知のものかと思うのですが、実際にまとめてみると「ああ、こんな機能もあったのか」と新たな発見もあったりして、けっこう勉強になりました。そんなわけで、 Gentoo Linux ユーザーの皆さん、ぜひご活用ください。

基本的な使い方

equery にはさまざまな機能があり、それぞれサブコマンドという形でまとめられています。まずはすべてのサブコマンドに共通する事柄からご紹介します。

書式

equery コマンドの基本的な書式は以下のようになります。

equery [GO] subcommand [LO] [params]
GO
グローバルオプション。サブコマンドによらず有効なオプションです。
subcommand
equery に実行させる内容を指定するコマンドです。
LO
ローカルオプション。サブコマンドごとに変化するオプションです。
params
サブコマンドに与えるパラメータ。こちらもサブコマンドによって変化します。

equery は多彩な機能を持っているので、どの機能を実行するかを subcommand で指定するようになっています。どのようなサブコマンドがあるかは、それぞれのローカルオプションやパラメータとともに後述します。

グローバルオプション

指定可能なグローバルオプションには以下のものがあります。

オプション機能
-q, --quiet最小限の情報のみを出力
-C, --nocolor色分け表示をしない
-h, --helpヘルプを表示
-V, --versionバージョンを表示
-N, --no-pipeパイプの検出をしない

これだけでだいたいの機能はお分かりいただけるかと思います(手抜き ^^;)。

サブコマンド目次

それでは、各サブコマンドをリファレンス的にご紹介していきます。アクセスしやすいように、目次も作っておきました。各コマンドの後の括弧内は短縮形です。

パッケージを検索するサブコマンド

list (l)

不完全なパッケージ名からマッチするパッケージを検索します。正規表現検索もできます。

書式

equery [GO] list [LO] <パッケージ>

ローカルオプション

オプション機能
-i, --installedインストール済みのパッケージを検索(デフォルト)
-I, --exclude-installedインストール済みのパッケージを検索しない
-p, --portage-treePortage ツリー (/usr/portage) も検索する
-o, --overlay-treeオーバーレイツリー (/usr/local/portage) も検索する
-f, --full-regexパッケージを正規表現として解釈する
-e, --exact-nameパッケージに完全にマッチするもののみを表示する
-d, --duplicates重複してインストールされたパッケージのみを表示する

# equery list action
[ Searching for package 'action' in all categories among: ]
 * installed packages
[I--] [  ] dev-ruby/actionmailer-1.2.5 (1.1)
[I--] [  ] dev-ruby/actionpack-1.12.5 (1.1)
[I--] [  ] dev-ruby/actionwebservice-1.1.6 (1.1)

belongs (b)

指定したファイルが所属しているインストール済みパッケージを検索します。

書式

equery [GO] belongs [LO] <ファイル>

ローカルオプション

オプション機能
-c, --category <cat>カテゴリー cat のパッケージのみを検索対象にする
-f, --full-regexファイルが正規表現であることを意味する
-e, --earlyoutパッケージがひとつ見つかった時点で終了する

# equery belongs /etc/inittab 
[ Searching for file(s) /etc/inittab in *... ]
sys-apps/sysvinit-2.86-r5 (/etc/inittab)

hasuse (h)

指定した USE フラグに影響されるパッケージを検索します。

書式

equery [GO] hasuse [LO] <USEフラグ>

ローカルオプション

オプション機能
-i, --installedインストール済みのパッケージを検索(デフォルト)
-I, --exclude-installedインストール済みのパッケージを検索しない
-p, --portage-treePortage ツリー (/usr/portage) も検索する
-o, --overlay-treeオーバーレイツリー (/usr/local/portage) も検索する

# equery hasuse ruby
[ Searching for USE flag ruby in all categories among: ]
 * installed packages
[I--] [  ] app-editors/vim-7.0.17 (0)
[I--] [  ] dev-lang/swig-1.3.21 (0)

パッケージの情報を取得するサブコマンド

files (f)

指定したパッケージに含まれるファイルをリストアップします。

書式

equery [GO] files [LO] <パッケージ>

ローカルオプション

オプション機能
--timestamp各ファイルのタイムスタンプを表示
--md5sum各ファイルの MD5 チェックサムを表示
--type各ファイルのタイプを表示
--filter=<type>type にマッチするファイルのみを表示

filter オプションを指定すると、特定タイプのファイルのみを表示できます。 type には以下の指定をコンマ区切りで複数記述できます。

指定機能
dir通常ディレクトリ
obj通常ファイル
symシンボリックリンク
devデバイスノード
fifo名前つきパイプ
path複数のファイルがあるとき、最短のパスのみを表示(?)
conf$CONFIG_PROTECT で指定された設定ファイル
cmd$PATH に含まれるユーザーコマンド
doc"/usr/share/doc" 以下のドキュメント
man"/usr/share/man" 以下の man ページ
info"/usr/share/info" 以下の info ページ

# equery files sys-devel/gnuconfig
[ Searching for packages matching sys-devel/gnuconfig... ]
* Contents of sys-devel/gnuconfig-20060702:
/usr
/usr/share
/usr/share/doc
/usr/share/doc/gnuconfig-20060702
/usr/share/doc/gnuconfig-20060702/ChangeLog.gz
/usr/share/gnuconfig
/usr/share/gnuconfig/config.guess
/usr/share/gnuconfig/config.sub

size (s)

指定したパッケージに含まれるファイルの総数と総容量を表示します。

書式

equery [GO] size [LO] <パッケージ>

ローカルオプション

オプション機能
-b, --bytes容量をバイト単位で表示

# equery size dev-lang/ruby
[ Searching for packages matching dev-lang/ruby... ]
* size of dev-lang/ruby-1.8.5
           Total files : 673
           Total size  : 6148.07 KiB

uses (u)

指定したパッケージが参照する USE フラグをリストアップします。 USE フラグのコメントも表示されるので便利です。

書式

equery [GO] uses [LO] <パッケージ>

ローカルオプション

オプション機能
-a, --allインストールされていないパッケージも含める

# equery uses sys-devel/bison
[ Searching for packages matching sys-devel/bison... ]
[ Colour Code : set unset ]
[ Legend        : Left column  (U) - USE flags from make.conf                     ]
[                  : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for sys-devel/bison-2.2 ]
 U I
 + + nls    : Adds Native Language Support (using gettext - GNU locale utilities)
 - - static : !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically

which (w)

指定したパッケージの ebuild ファイルのフルパスを表示します。

書式

equery [GO] which <パッケージ>

# equery which sys-devel/bison
/usr/portage/sys-devel/bison/bison-2.2.ebuild

check (k)

パッケージの MD5 チェックサムを確認します。パッケージが壊れていたり、不正に改変されていないかをチェックすることができます。

書式

equery [GO] check <パッケージ>

# equery check dev-lang/ruby
[ Checking dev-lang/ruby-1.8.5 ]
 * 673 out of 673 files good

依存関係を調査するサブコマンド

depends (d)

指定したパッケージに依存するインストール済みパッケージをリストアップします。

書式

equery [GO] depends [LO] <パッケージ>

ローカルオプション

オプション機能
-a, --all-packagesすべてのパッケージを検索(遅い)
-d, --direct直接依存しているパッケージのみを表示(デフォルト)
-D, --indirect間接的な依存もすべて表示する(とても遅い)

# equery depends dev-lang/ruby
[ Searching for packages depending on dev-lang/ruby... ]
dev-ruby/actionwebservice-1.0.0
dev-ruby/activesupport-1.2.5
...中略...
dev-ruby/activerecord-1.14.4
dev-ruby/actionpack-1.12.5

depgraph (g)

指定したパッケージが依存しているインストール済みパッケージをツリー表示します。 depends が依存ツリーの下位を表示するのに対して、 depgraph は逆に上位を表示するので注意してください。

書式

equery [GO] depgraph [LO] <パッケージ>

ローカルオプション

オプション機能
-U, --no-useflagsUSE フラグを参照しない
-l, --linearツリーではなく、単純なリスト形式で表示

# equery depgraph =sys-devel/bison-2.2
[ Searching for packages matching =sys-devel/bison-2.2... ]
* dependency graph for sys-devel/bison-2.2
`-- sys-devel/bison-2.2
 `-- sys-devel/m4-1.4.6
  `-- sys-devel/gettext-0.15 [ nls ]
   `-- virtual/libiconv-0 (virtual/libiconv)
 `-- sys-devel/gnuconfig-20060702
[ sys-devel/bison-2.2 stats: packages (5), max depth (3) ]

だいたいこんなところでしょうか。私もあまり活用しているほうではないので、間違いや不足などがいろいろあると思います。見つけたらご一報いただけると助かります。

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles