ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 ソフトウェアパッケージの追加および更新 Oracle Solaris 11.1 Information Library (日本語) |
指定したパターンにデータが一致するパッケージを検索するには、pkg search コマンドを使用します。
/usr/bin/pkg search [-HIaflpr] [-o attribute ...] [-s repo_uri] query
pkg search コマンドは、pkg contents コマンドと同じようにパッケージの内容を調べます。pkg contents コマンドは内容を返しますが、pkg search コマンドはクエリーに一致するパッケージの名前を返します。
デフォルトでは、query は、大文字と小文字を除いて完全一致する一連の用語として解釈されます。大文字と小文字を区別する検索を指定する場合は、-I オプションを使用します。クエリー用語には、? と * のワイルドカードを使用できます。フレーズを検索するには、単一引用符または二重引用符を使用します。ワイルドカードや引用符を使用するときは、使用しているシェルを必ず考慮してください。
複数のクエリー用語を指定できます。デフォルトで、複数の用語は AND で結合されます。OR で 2 つの用語を明示的に結合できます。
クエリーは次の構造化された形式で表現できます。
pkg_name:action_name:index:token
欠けているフィールドは、暗黙的にワイルドカード化されます。pkg_name および token フィールドには、明示的なワイルドカードを含めることができます。action_name および index の値は、正確に一致する必要があります。action_name の値は、アクションの名前です。index の値は、アクションの属性の名前です。パッケージのアクションと属性の一覧については、pkg(5) のマニュアルページの「アクション」を参照してください。すべての属性が検索可能なわけではありません。たとえば、mode は file アクションの属性ですが、mode は index の有効な値ではありません。index の一部の値は、ほかの属性から派生した値です。たとえば、index に basename を指定できますが、これは file または dir アクションの path 属性の最後のコンポーネントです。index の役立つ値の例には、file および dir アクションの basename や path、depend アクションの依存関係タイプ (require や group など)、ドライバアクションの driver_name や alias などがあります。
一般に、token の値は、index で指定された属性の値と比較されます。たとえば、次の部分的な driver アクションでは、alias は index に指定できる属性名であり、token には pci108e を指定できます。
driver alias=pci108e,1647 alias=pci108e,16a7
set アクションの構文は少し違います。set アクションの 2 つの属性は、name と value です。この場合、index の値は name 属性の値であり、token の値は一致する value 属性の値と比較されます。たとえば、次に示す部分的な set アクションの場合、index には pkg.summary を指定し、token には Broadcom を指定できます。
set name=pkg.summary value="Broadcom 57xx 1GbE NIC Driver"
set アクションの name 属性の明確に定義された値には、pkg.fmri、info.classification、pkg.description、および pkg.summary を含むものがあります。pkg(5) のマニュアルページの「設定アクション」を参照してください。
デフォルトでは、このイメージに対して構成されているすべての発行元に関連付けられたリポジトリが検索されます。このイメージにインストールされているパッケージのみを検索するには、-l オプションを使用します。検索するリポジトリの URI を指定する場合は、-s オプションを使用します。
デフォルトでは、現在インストールされているパッケージバージョン以上の一致のみが表示されます。一致したすべてのバージョンを表示するには、-f オプションを使用します。
デフォルトでは、一致するすべてのアクションについて結果が表示されるため、1 つのパッケージに複数行の結果が生成されることがあります。一致する各パッケージを 1 回だけ表示するには、-p オプションを使用します。
次の例は、libpower ライブラリが system/kernel/power パッケージから取得されたことを示しています。
$ pkg search -Hlo pkg.name /lib/libpower.so.1 system/kernel/power $ pkg search -lo path,pkg.name libpower.so.1 PATH PKG.NAME lib/libpower.so.1 system/kernel/power $ pkg search -Hlo path,pkg.name basename:libpower.so.1 lib/libpower.so.1 system/kernel/power $ pkg search -Hlo path,pkg.name 'path:*libpower.so.1' lib/libpower.so.1 system/kernel/power
特定の SMF サービスがどのパッケージで提供されているかを表示するには、サービスの名前を org.opensolaris.smf.fmri 属性の値として検索します。
$ pkg search -o value,pkg.name 'org.opensolaris.smf.fmri:*network/http*' VALUE PKG.NAME ['svc:/network/http', 'svc:/network/http:apache22'] web/server/apache-22 ['svc:/network/http', 'svc:/network/http:tomcat6'] web/java-servlet/tomcat ['svc:/network/http', 'svc:/network/http:squid'] web/proxy/squid ['svc:/network/http', 'svc:/network/http:lighttpd14'] web/server/lighttpd-14
この場合、各属性は、インスタンス名が指定されたサービス名とインスタンス名が指定されていないサービス名の、2 つの値を持ちます。次の例は、この属性がパッケージマニフェストでどのように指定されるかを示しています。
set name=org.opensolaris.smf.fmri value=svc:/network/http value=svc:/network/http:apache22
次の例は、info.classification 属性の値に「ソースコード管理」があるすべてのパッケージを識別しています。
$ pkg search 'info.classification:source code management' INDEX ACTION VALUE PACKAGE info.classification set Development/Source Code Management pkg:/developer/versioning/sccs@0.5.11-0.175 info.classification set Development/Source Code Management pkg:/developer/xopen/xcu4@0.5.11-0.175.1.0. info.classification set Development/Source Code Management pkg:/developer/versioning/git@1.7.9.2-0.175 info.classification set Development/Source Code Management pkg:/developer/versioning/mercurial-27@2.2. info.classification set Development/Source Code Management pkg:/library/python-2/subversion@1.7.5-0.17 info.classification set Development/Source Code Management pkg:/developer/versioning/mercurial-26@2.2. info.classification set Development/Source Code Management pkg:/library/java/subversion@1.7.5-0.175.1. info.classification set Development/Source Code Management pkg:/developer/quilt@0.60-0.175.1.0.0.21.0 info.classification set Development/Source Code Management pkg:/developer/versioning/cvs@1.12.13-0.175 info.classification set Development/Source Code Management pkg:/developer/versioning/subversion@1.7.5- info.classification set Development/Source Code Management pkg:/developer/versioning/mercurial@2.2.1-0 info.classification set Development/Source Code Management pkg:/library/perl-5/subversion@1.7.5-0.175.
この例は、大量の繰り返された情報が表示されているため、実際に必要とする情報がわかりにくくなっています。
次の例は、-o オプションを使用して、パッケージの名前のみを表示し、-H オプションを使用して、列見出しを省略しています。
$ pkg search -Ho pkg.name 'info.classification:source code management' developer/versioning/sccs developer/xopen/xcu4 developer/versioning/git developer/versioning/mercurial-27 library/python-2/subversion developer/versioning/mercurial-26 library/java/subversion developer/quilt developer/versioning/cvs developer/versioning/subversion developer/versioning/mercurial library/perl-5/subversion
次の例は、指定したパッケージの依存関係であるパッケージを示しています。
次の例は、system/kernel/power パッケージに require 依存関係のあるパッケージを示しています。pkg contents コマンドを使用して、i86pc パッケージと system/hal パッケージのタイプ require の depend アクションを表示した場合、両方のパッケージに system/kernel/power が表示されます。
$ pkg search -Hlo pkg.name require:system/kernel/power system/kernel/dynamic-reconfiguration/i86pc system/hal
次の例は、多くのパッケージで pkg:/x11/server/xorg@1.12.99 への exclude 依存関係があることを示しています。
$ pkg search -lo pkg.name,fmri 'depend:exclude:*xorg*' PKG.NAME FMRI x11/server/xvnc pkg:/x11/server/xorg@1.12.99 x11/server/xorg pkg:/x11/server/xorg@1.12.99 x11/server/xorg/driver/xorg-video-mga pkg:/x11/server/xorg@1.12.99 x11/server/xorg/driver/xorg-video-vesa pkg:/x11/server/xorg@1.12.99 x11/server/xorg/driver/xorg-input-vmmouse pkg:/x11/server/xorg@1.12.99 ...
Oracle Solaris 11 GUI インストーラは solaris-desktop グループパッケージをインストールします。テキストインストーラおよび自動インストーラインストールのデフォルトの AI マニフェストは、solaris-large-server グループパッケージをインストールします。非大域ゾーン用のデフォルトのインストールマニフェストは、solaris-small-server グループパッケージをインストールします。solaris-small-server グループパッケージは、サーバーに小さいパッケージのセットをインストールするために使用できる代替パッケージでもあります。次の検索書式を使用して、各グループに含まれている一連のパッケージを表示できます。
$ pkg search -Hfo fmri '*/solaris-large-server:depend:group:*' archiver/gnu-tar compress/bzip2 ... text/texinfo web/wget
この例で、-o pkg.name は、クエリーの pkg_name フィールドに指定されたパッケージの名前のみを返します。
group/system/solaris-desktop
-o fmri オプションは、group タイプの依存関係として、solaris-large-server パッケージで指定されたパッケージの FMRI を返します。
デフォルトで、検索では、このイメージにインストール可能なパッケージのみが返されます。この例では、検索は一致するパッケージを返さず、指定したパッケージのアクションの属性の値を返しています。この例では、その属性値はパッケージ名になります。このコマンドの結果の数は、類似の pkg contents コマンドの結果の数より多くなります。これらの検索結果には、インストール可能なパッケージだけでなく、指定したパッケージの group depend アクションで名前が付けられているすべてのパッケージの名前が含まれるためです。たとえば、このイメージにインストールできないパッケージバリアントを含めることができます。この検索からの出力を、「グループパッケージ内のすべてのインストール可能なパッケージの一覧表示」に示す pkg contents コマンドからの出力と比較します。
ヒント - 一般に、指定したパッケージの内容を表示するには、pkg contents コマンドを使用し、クエリーに一致するパッケージを表示するには、pkg search コマンドを使用します。関心のある内容を提供するパッケージがわかっている場合は、pkg contents コマンドを使用します。