Go to main content
Oracle® Solaris 11.3 ソフトウェアの追加と更新

印刷ビューの終了

更新: 2017 年 3 月
 
 

パッケージの検索

指定したパターンにデータが一致するパッケージを検索するには、pkg search コマンドを使用します。

pkg search コマンドと pkg contents コマンドの比較

pkg search コマンドは、pkg contents コマンドと同じようにパッケージの内容を調べます。pkg contents コマンドは内容を返しますが、pkg search コマンドは検索クエリーに一致するパッケージの名前を返します。次の表に、これら 2 つのコマンドについてのいくつかの類似点と相違点を示します。

pkg contents
  • インストール済みパッケージを調べます。このイメージに対して構成されているすべてのパブリッシャーに関連付けられたリポジトリ内のパッケージを調べる場合は、-r オプションを使用します。

  • 調べるリポジトリの URI を指定する場合は、-g オプションを使用します。

  • アクションを指定する場合は、-t オプションを使用します。

  • 属性および属性値を指定する場合は、-a オプションを使用します。

  • 結果の列を指定する場合は、-o オプションを使用します。

  • 結果をソートする場合は、-s オプションを使用します。

pkg search
  • このイメージに対して構成されているすべてのパブリッシャーに関連付けられたリポジトリ内でパッケージを検索します。インストール済みパッケージのみ検索する場合は、-l オプションを使用します。

  • 検索するリポジトリの URI を指定する場合は、-s オプションを使用します。

  • アクションを指定する場合は、検索クエリーを使用します。

  • 属性および属性値を指定する場合は、検索クエリーを使用します。

  • 結果の列を指定する場合は、-o オプションを使用します。


ヒント  -  指定したパッケージの内容を表示するには、pkg contents コマンドを使用し、クエリーに一致するパッケージを表示するには、pkg search コマンドを使用します。関心のある内容を提供するパッケージがわかっている場合は、pkg contents コマンドを使用します。

検索クエリーの指定

デフォルトでは、検索クエリーは、大文字と小文字を除いて完全一致する一連の用語です。大文字と小文字を区別する検索を指定する場合は、-I オプションを使用します。

クエリー用語には、?* のワイルドカードを使用できます。フレーズを検索するには、単一引用符または二重引用符を使用します。ワイルドカードや引用符を使用するときは、使用しているシェルを必ず考慮してください。

複数のクエリー用語を指定できます。デフォルトで、複数の用語は AND で結合されます。OR で 2 つの用語を明示的に結合できます。

検索クエリーは次の構造化された形式で表現できます。

package:action:index:token
package

検索するパッケージの名前または複数のパッケージに一致するパターン。

action

pkg(5) のマニュアルページのアクションに関するセクションに一覧表示されているアクションの名前。

index

pkg(5) のマニュアルページのアクションに関するセクションに一覧表示されている action の属性の名前。

token

index の値または index の値に一致するパターン。

欠けているフィールドは、暗黙的にワイルドカード化されます。token 文字列は明示的にワイルドカード化できます。アクションおよびインデックスの名前を明示的にワイルドカード化することはできません。

すべての属性が検索可能なわけではありません。たとえば、modefile アクションの属性ですが、modeindex の有効な値ではありません。

index の一部の値は、ほかの属性から派生した値です。たとえば、indexbasename を指定できますが、これは file または dir アクションの path 属性の最後のコンポーネントです。index の便利な値には、file および dir アクションの basenamepathdepend アクションの依存関係タイプ (requiregroup など)、driver アクションの driver_namealias などがあります。

token の値は、index で指定された属性の値と比較されます。たとえば、次に示す部分的な driver アクションの場合、index には属性名 alias を指定し、token には pci108e* を指定できます。

driver alias=pci108e,1647 alias=pci108e,16a7

set アクションの構文は少し違います。set アクションの 2 つの属性は、namevalue です。この場合、index の値は name 属性の値であり、token の値は一致する value 属性の値と比較されます。次の例は、ドライバパッケージに対する set アクションを示しています。

set name=pkg.summary value="Broadcom NetXtreme II 10GbE NIC Driver"

次の例は、actionset を、indexpkg.summary を、tokenBroadcom を指定します。search.match および pkg.name 列指定子は疑似属性です。pkg(1) のマニュアルページを参照してください。

$ pkg search -o search.match,pkg.name pkg.summary:Broadcom
SEARCH.MATCH                           PKG.NAME
Broadcom NetXtreme II 10GbE NIC Driver driver/network/ethernet/bnxe
Broadcom 57xx 1GbE NIC Driver          driver/network/ethernet/bge
Broadcom NetXtreme II 1GbE NIC Driver  driver/network/ethernet/bnx
Broadcom BCM4401 NIC Driver            driver/network/ethernet/bfe
Broadcom HT1000 SATA driver            driver/storage/bcm_sata

set アクションの name 属性の明確に定義された値には、pkg.fmriinfo.classificationpkg.descriptionpkg.summary などがあります。pkg(5) のマニュアルページの設定アクションに関する項目を参照してください。

デフォルトでは、現在インストールされているパッケージバージョン以上の一致のみが表示されます。一致したすべてのバージョンを表示するには、-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 サービスを提供するパッケージの識別

特定の SMF サービスがどのパッケージで提供されているかを表示するには、サービスの名前を org.opensolaris.smf.fmri 属性の値として検索します。

$ pkg search -o pkg.name,search.match 'org.opensolaris.smf.fmri:*network/http*'
PKG.NAME                SEARCH.MATCH
web/java-servlet/tomcat svc:/network/http
web/proxy/squid         svc:/network/http
web/proxy/privoxy       svc:/network/http
web/server/lighttpd-14  svc:/network/http
web/server/apache-22    svc:/network/http
web/server/apache-22    svc:/network/http:apache22
web/server/lighttpd-14  svc:/network/http:lighttpd14
web/proxy/privoxy       svc:/network/http:privoxy
web/proxy/squid         svc:/network/http:squid
web/java-servlet/tomcat svc:/network/http:tomcat6

この場合、各属性は、サービスインスタンス名が指定されたサービス名とサービスインスタンス名が指定されていないサービス名の、2 つの値を持ちます。次の例は、この属性がパッケージマニフェストでどのように指定されるかを示しています。

set name=org.opensolaris.smf.fmri value=svc:/network/http value=svc:/network/http:apache22

次の例は、これと同じ情報を、各パッケージが 1 回だけ示されるようにして表示しています。-p オプションは、search.match などのアクションレベルの出力を要求する場合は使用できません。コロン文字をエスケープすることで、コロン文字は別の検索クエリーフィールドでなく token の一部として解釈されます。

$ pkg search -o pkg.name,search.match 'org.opensolaris.smf.fmri:*network/http\:*'
PKG.NAME                SEARCH.MATCH
web/server/apache-22    svc:/network/http:apache22
web/server/lighttpd-14  svc:/network/http:lighttpd14
web/proxy/privoxy       svc:/network/http:privoxy
web/proxy/squid         svc:/network/http:squid
web/java-servlet/tomcat svc:/network/http:tomcat6

指定されたユーザーを提供するパッケージの識別

IPS パッケージは、使用するデーモンまたはその他のソフトウェアのユーザーを提供します。

次のコマンドは、インストールされているパッケージによって提供されるユーザーを示しています。

$ pkg search -lo action.key user::

次のコマンドは、特定のユーザー定義を提供するパッケージを示しています。

$ pkg search -o action.key,pkg.name user::nova
ACTION.KEY PKG.NAME
nova       cloud/openstack/nova

次のコマンドは、OR キーワードの使用例を示しています。

$ pkg search -o action.key,pkg.name user::nova OR user::neutron
ACTION.KEY PKG.NAME
nova       cloud/openstack/nova
neutron    cloud/openstack/neutron

分類またはカテゴリ別のパッケージの一覧表示

次の例は、info.classification 属性の値に「Source Code Management」を持つ、すべてのインストール済みパッケージを識別します。

$ pkg search -Hlo pkg.shortfmri info.classification:'source code management'
pkg:/developer/versioning/sccs@0.5.11-0.175.2.0.0.8.0
pkg:/developer/versioning/git@1.7.9.2-0.175.2.0.0.34.0
pkg:/developer/versioning/mercurial-27@2.2.1-0.175.2.0.0.34.0

次の例は、この一致検索に使用されるパッケージメタデータを示しています。

set name=info.classification value="org.opensolaris.category.2008:Development/Source Code Management"

この情報は、pkg info コマンドからの出力の「Category」行に表示されます。

$ pkg info mercurial-27
...
      Category: Development/Source Code Management
...

検索可能なほかの分類については、Classification Values in Packaging and Delivering Software With the Image Packaging System in Oracle Solaris 11.3を参照してください。

また、次の例に示すように、パッケージ名のコンポーネントの 1 つを推測するように pkg list コマンドを使用することもできます。

$ pkg list '*storage*'
$ pkg list -a '*database*'

依存パッケージの表示

次の例は、指定したパッケージの依存関係であるパッケージを示しています。

次の例は、system/kernel/power パッケージに require 依存関係のあるパッケージを示しています。

$ pkg search -Hlo pkg.name require:system/kernel/power
system/kernel/dynamic-reconfiguration/i86pc
system/hal

次の pkg contents コマンドは、検索の結果を確認します。要求された出力 action.raw は、パッケージマニフェストに示されるものとまったく同じアクションを表示する疑似属性です。

$ pkg contents -rt depend -a fmri='*power*' -o pkg.name,action.raw i86pc system/hal
PKG.NAME                                    ACTION.RAW
system/hal                                  depend fmri=pkg:/system/kernel/power
@0.5.11-0.175.2.0.0.34.0 type=require variant.opensolaris.zone=global
system/kernel/dynamic-reconfiguration/i86pc depend fmri=pkg:/system/kernel/power
 type=require

次の例は、多くのパッケージで pkg:/x11/server/xorg@1.14.99 への exclude 依存関係があることを示しています。

$ pkg search -lo pkg.name,fmri 'depend:exclude:*xorg*'
PKG.NAME                                     FMRI
x11/server/xorg/driver/xorg-video-ati        pkg:/x11/server/xorg@1.14.99
x11/server/xvnc                              pkg:/x11/server/xorg@1.14.99
x11/server/xserver-common                    pkg:/x11/server/xorg@1.14.99
x11/server/xorg/driver/xorg-input-vmmouse    pkg:/x11/server/xorg@1.14.99
x11/server/xephyr                            pkg:/x11/server/xorg@1.14.99 
...

グループパッケージ内のすべてのパッケージの一覧表示

Oracle Solaris 11 GUI インストーラは solaris-desktop グループパッケージをインストールします。テキストインストーラおよび自動インストーラインストールのデフォルトの AI マニフェストは、solaris-large-server グループパッケージをインストールします。非大域ゾーン用のデフォルトのインストールマニフェストは、solaris-small-server グループパッケージをインストールします。solaris-minimal-server グループパッケージは、Oracle Solaris を実行するために必要な、サポートされる最小限のパッケージのセットをインストールします。

次の検索書式を使用して、指定されたグループパッケージに含まれている一連のパッケージを表示できます。


注 -  このパッケージリストには、グループパッケージのインストール時にインストールされるすべてのパッケージが含まれているわけではありません。このリスト内のパッケージの依存関係、およびそれらの依存関係の依存関係もインストールされます。
$ pkg search -o type,fmri '*/solaris-minimal-server:depend::'
TYPE    FMRI
require developer/debug/mdb
require editor/vim/vim-core
require group/system/solaris-core-platform
group   network/ping
require package/pkg
require release/name
require release/notices
group   service/network/ssh-common
require shell/bash
require shell/ksh93
group   shell/tcsh
group   shell/zsh
require system/core-os
require system/library/platform
group   system/network

depend クエリーフィールドは、パッケージの depend アクションに一致します。-o オプションは、depend アクションの type および fmri 属性の値を表示します。各パッケージの名前とバージョンを表示するには、pkg.shortfmri を使用します。グループパッケージではファイルシステムの内容は指定されないことを思い出してください。グループパッケージは、グループに含まれるほかのパッケージを指定します。グループパッケージの詳細については、Group Packagesを参照してください。

pkg search コマンドは、指定したパッケージのアクションの属性の値を返しています。この例では、その属性値はパッケージ名になります。このコマンドの結果の数は、Listing All Installable Packages in a Group Packageで示す、類似の pkg contents コマンドの結果の数より多くなることがあり、この理由は、これらの検索結果に、インストール可能なパッケージだけでなく、指定したパッケージの group タイプの depend アクションで名前が付けられているすべてのパッケージの名前が含まれるためです。たとえば、このイメージにインストールできないパッケージバリアントおよびファセットが含まれることがあります。この相違を確認するには、solaris-large-server パッケージを使用して両方の例を試してみてください。