pkg contents コマンドは、パッケージのファイルシステムの内容を表示します。オプションやオペランドを指定せずにこのコマンドを使用すると、現在のイメージにインストールされているすべてのパッケージのパス情報が表示されます。表示するパッケージの内容を指定するには、コマンドオプションを使用します。結果を絞り込むには、パッケージ名を 1 つ以上指定します。パッケージ名にはワイルドカードを使用できます。引数が直接 pkg に渡され、シェルで展開されないようにするために、ワイルドカードは引用符で囲みます。
contents サブコマンドと search サブコマンドはどちらも、パッケージの内容をクエリーします。pkg contents コマンドは、パッケージのアクションと属性を表示します。pkg search コマンドは、クエリーに一致するパッケージを一覧表示します。pkg search コマンドと pkg contents コマンドの比較も参照してください。
次の例では、pkg contents コマンドのデフォルト動作、つまり、このイメージにインストール可能なファイルシステムオブジェクトごとの path 属性値の表示が示されています。
$ pkg contents amp pkg: This package delivers no filesystem content, but may contain metadata. Use the -o option to specify fields other than 'path', or use the -m option to show the raw package manifests. $ pkg contents zip PATH usr/bin/zip usr/bin/zipcloak usr/bin/zipnote usr/bin/zipsplit usr/share/man/man1/zip.1 usr/share/man/man1/zipcloak.1 usr/share/man/man1/zipnote.1 usr/share/man/man1/zipsplit.1
pkg contents コマンドは、このイメージにインストール可能な内容のみ表示します。パッケージマニフェストを表示した場合 (-m オプションを使用)、zip パッケージに 12 個のファイルアクションがあることがわかります。この出力に表示されていない 4 つのファイルは、このイメージにインストールできないファイルです。このイメージは x86 アーキテクチャーです。表示されていないファイルは、SPARC アーキテクチャーの 4 つの /usr/bin ファイルです。バリアントとファセットについては、オプションのコンポーネントのインストールの制御を参照してください。
パス以外の情報を表示するには、またはパス情報のサブセットを表示するには、pkg contents コマンドの -t、-a、および -o オプションを使用します。
-t オプションは、file、link、depend などの選択するアクションタイプを指定します。パッケージアクションのリストについては、pkg(7) のマニュアルページを参照してください。コンマ区切りリストで複数のアクションタイプを指定するか、-t オプションを複数回指定できます。-t オプションを使用した場合、デフォルト出力はそのアクションのキー属性の値です。
-a オプションは、選択するアクションの属性値を指定します。各アクションタイプの属性のリストについては、pkg(7) のマニュアルページを参照してください。-a オプションは何度でも指定できます。
-o オプションは、表示する出力を指定します。-a オプションの説明に示されている属性の名前、または pkg(1) のマニュアルページにリストされている疑似属性のいずれかを指定できます。コンマ区切りリストで複数の属性引数を指定するか、-o オプションを複数回指定できます。それぞれの -o 引数は出力の 1 つの列です。
使用例 1 パッケージによってインストールされるファイルの属性の表示この例では、パッケージによってインストールされるファイルの一覧表示の例にリストされているパスの追加の属性が表示されています。
$ pkg contents -o owner,group,mode,path zip OWNER GROUP MODE PATH root bin 0555 usr/bin/zip root bin 0555 usr/bin/zipcloak root bin 0555 usr/bin/zipnote root bin 0555 usr/bin/zipsplit root bin 0444 usr/share/man/man1/zip.1 root bin 0444 usr/share/man/man1/zipcloak.1 root bin 0444 usr/share/man/man1/zipnote.1 root bin 0444 usr/share/man/man1/zipsplit.1
-o オプションが指定されていない場合に表示されるデフォルトの出力は、path 属性の値です。次の出力は、oracle-rdbms-server-18c-preinstall パッケージがファイル、リンク、またはディレクトリを直接提供しないことを示しています。
$ pkg contents -r oracle-rdbms-server-18c-preinstall pkg: This package delivers no filesystem content, but may contain metadata. Use the -o option to specify fields other than 'path', or use the -m option to show the raw package manifests.
次のコマンドはすべて、oracle-rdbms-server-12-1-preinstall パッケージに set、signature、および depend アクションが含まれることを示しています。
$ pkg contents -rm oracle-rdbms-server-18c-preinstall $ pkg contents -ro action.name oracle-rdbms-server-18c-preinstall $ pkg contents -ro action.raw oracle-rdbms-server-18c-preinstall使用例 2 アクションタイプの指定
次のコマンドは、oracle-rdbms-server-18c-preinstall パッケージ内の各依存関係の、依存関係のタイプとパッケージ名を表示します。
$ pkg contents -rt depend oracle-rdbms-server-18c-preinstall TYPE FMRI group system/header group system/kernel/oracka group system/picl group x11/diagnostic/x11-info-clients group x11/library/libxi group x11/library/libxtst group x11/session/xauth require compress/unzip require developer/assembler require developer/build/make require system/dtrace require system/library/openmp使用例 3 アクション属性の指定
一部の依存関係にのみ関心がある場合は、-a オプションを使用して選択範囲を絞り込みます。
$ pkg contents -rt depend -a fmri='*lib*' oracle-rdbms-server-18c-preinstall TYPE FMRI group x11/library/libxi group x11/library/libxtst require system/library/openmp
デフォルトで、出力は、パスまたは -o オプションで指定された最初の属性によってソートされます。-s オプションを使用して、別の属性をソート鍵として指定できます。-s オプションは複数回指定できます。
次の例では、指定された属性は set アクションに固有であり、set アクションタイプを指定する必要はありません。
$ pkg contents -ra name=pkg.summary -a name=pkg.description -o name,value -s value oracle-rdbms-server-18c-preinstall NAME VALUE pkg.summary Prerequisite package for Oracle Database 18c pkg.description Provides the set of Oracle Solaris packages required for installation and operation of Oracle Database 18c.
set アクションタイプを指定した場合、name および value は set アクションのデフォルト出力であるため、出力列を指定する必要はありません。
$ pkg contents -rt set -a name=pkg.summary -a name=pkg.description -s value oracle-rdbms-server-18c-preinstall使用例 4 メディエーションに含まれているすべてのリンクの表示
次のコマンドは、python-35 パッケージによって提供される python メディエーションに参加しているリンクの path と target を示しています。複数バージョンの調整については、デフォルトのアプリケーション実装の指定を参照してください。
$ pkg contents -a mediator=python -o path,target python-35 PATH TARGET usr/bin/2to3 2to3-3.5 usr/bin/idle idle3.5 usr/bin/pydoc pydoc3.5 usr/bin/python python3.5 usr/bin/python-config python3.5-config usr/bin/pyvenv pyvenv-3.5 usr/lib/pkgconfig/python3.pc python-3.5.pc usr/lib/sparcv9/pkgconfig/python3.pc python-3.5.pc usr/share/man/man1/python3.1 python3.5.1使用例 5 他のファイルシステムオブジェクトおよび属性の表示
次の例は、指定されたパッケージによってインストールされたリンクのパスおよびターゲットを示しています。pkg(7) のマニュアルページに示す属性のほかに、いくつかの疑似属性を使用できます。疑似属性の一覧については、pkg(1) のマニュアルページを参照してください。
次の例で、pkg.name 疑似属性は、指定されたアクションを提供するパッケージの名前を示しています。この例では、Python 2.7.14、Python 3.4.6、および Python 3.5.3 がインストールされており、/usr/bin/python リンクに依存しない場合に特定バージョンにアクセスするために使用するパスがコマンドによって表示されます。複数バージョンの調整については、デフォルトのアプリケーション実装の指定を参照してください。
$ pkg contents -t link -a path=usr/bin/python -o path,target,pkg.name PATH TARGET PKG.NAME usr/bin/python python2.7 runtime/python-27 usr/bin/python python3.4 runtime/python-34 usr/bin/python python3.5 runtime/python-35
Oracle Solaris には、いくつかのシステムインストールグループパッケージが用意されています。テキストインストーラおよび自動インストーラインストールのデフォルトの AI マニフェストは、solaris-large-server グループパッケージをインストールします。非大域ゾーン用のデフォルトのインストールマニフェストは、solaris-small-server グループパッケージをインストールします。solaris-minimal-server グループパッケージは、Oracle Solaris を実行するために必要な、サポートされる最小限のパッケージのセットをインストールします。
次のコマンドを使用して、指定されたグループパッケージに含まれる一連のパッケージを表示できます。
$ pkg contents -rt depend solaris-minimal-server TYPE FMRI group network/ping group network/ssh group service/network/ssh group shell/tcsh group shell/zsh group system/network group system/rsyslog require developer/debug/mdb require editor/vim/vim-core require group/system/solaris-core-platform require package/pkg require release/name require release/notices require shell/bash require shell/ksh93 require system/core-os require system/library/platform
-t オプションは、パッケージの depend アクションに一致します。group タイプの依存関係を持つパッケージのインストールを回避できます。グループパッケージに含まれる一部のパッケージのインストールの回避を参照してください。グループパッケージではファイルシステムの内容は指定されないことを思い出してください。グループパッケージは、グループに含まれるほかのパッケージを指定します。グループパッケージの詳細については、グループパッケージを参照してください。
各パッケージのサマリーも表示するには、pkg list -s コマンドを使用します。pkg contents コマンドの -o fmri オプションは、前の例の 2 番目の列に示されている出力を制限します。
$ pkg list -Has `pkg contents -Hro fmri -t depend solaris-minimal-server` developer/debug/mdb Modular Debugger (MDB) editor/vim/vim-core Vi IMproved (core executables) group/system/solaris-core-platform Oracle Solaris Core Platform network/ping Ping command network/ssh OpenSSH client and associated utilities package/pkg Image Packaging System release/name Solaris Naming Enabler release/notices Oracle Solaris notices service/network/ssh OpenSSH servers and SSH (Secure Shell) services shell/bash GNU Bourne-Again shell (bash) shell/ksh93 Ksh93 - The AT&T Korn Shell shell/tcsh Tenex C-shell (tcsh) shell/zsh Z Shell (zsh) system/core-os Core Solaris system/library/platform Core Architecture, (Kvm) system/network Core Network Infrastructure system/rsyslog reliable and extended syslogd
マニュアルページは、その対象となるソフトウェアがインストールされるときにデフォルトでインストールされます。ただし、solaris-minimal-server インストールグループは man コマンドをインストールしません。solaris-minimal-server グループをインストールする場合、次のいずれかを行うことが必要な場合があります。
doc.man ファセットを false に設定して、マニュアルページのインストールを回避します。ファセット値の表示と変更を参照してください。
text/doctools パッケージをインストールして man コマンドをインストールします。
次の例は、パッケージライセンスに同意する必要があるすべてのパッケージを表示します。
$ pkg contents -rt license -a must-accept=true -o license,pkg.name '*' LICENSE PKG.NAME lic_OTN install-image/solaris-auto-install lic_OTN release/notices
これらのパッケージをインストールまたは更新するには、--accept オプションを指定しなければならない場合があります。
ライセンステキストを表示するには、パッケージライセンスの表示 に記載されているように、次の例のようなコマンドを使用します。複数の FMRI を一覧表示できます。
$ pkg info -r --license install-image/solaris-auto-install