IPS では、IPS パッケージリポジトリからソフトウェアパッケージをダウンロードしてインストールすることができます。
デフォルトでは、優先発行元から、残りのイメージと互換性のある最新バージョンのパッケージがインストールされます。パッケージがすでにインストールされている場合は、現在インストールされているバージョンを提供した発行元から、残りのイメージと互換性のある最新バージョンのパッケージをインストールすることによってパッケージが更新されます。複数の発行元が設定されている場合は、発行元のスティッキネスと検索順序を設定するか、またはパッケージ FMRI で発行元を指定することによって、パッケージを提供する発行元を制御できます。また、インストールするバージョンをパッケージ FMRI で指定することもできます。パッケージ FMRI の説明については、「障害管理リソース識別子」を参照してください。パッケージをインストール、更新、またはアンインストールすると、BE が作成される可能性があります。新しい BE の作成や、--be-name、--require-new-be、および --deny-new-be オプションの説明については、「イメージとブート環境」を参照してください。
複数の pkg-fmri パターンを指定できます。
# pkg install pkg-fmri
例 3-1 パッケージのインストール
この例では、installadm パッケージをインストールします。出力には、ダウンロードの状況、インストールされたパッケージの数、インストールされたファイルの数、およびダウンロードのサイズ (M バイト) が表示されます。
# pkg install install/installadm DOWNLOAD PKGS FILES XFER (MB) Completed 9/9 1067/1067 6.1/6.1 PHASE ACTIONS Install Phase 1458/1458 PHASE ITEMS Package State Update Phase 9/9 Image State Update Phase 2/2
例 3-2 特定の発行元からのパッケージのインストール
特定の発行元からパッケージをインストールするには、pkg-fmri で発行元名を指定します。
# pkg install pkg://example.com/developer/sunstudio12u1
例 3-3 パッケージの特定のバージョンのインストール
パッケージの特定のバージョンをインストールするには、pkg-fmri でバージョン情報を指定します。
# pkg install pkg:/developer/sunstudio12u1@12.1.1,5.11-0.111:20100306T002245Z
install サブコマンドは、まだイメージにインストールされていないパッケージをインストールします。すでにインストールされているパッケージのみを確実に更新し、新しいパッケージをまったくインストールしない場合は、update サブコマンドを使用します。
複数の pkg-fmri パターンを指定できます。
# pkg update pkg-fmri
インストール済みパッケージの新しいバージョンが入手可能であり、残りのイメージと互換性がある場合、パッケージはそのバージョンに更新されます。どのようなパッケージがどの発行元からインストールされるかについてのより詳細な説明については、「パッケージをインストールまたは更新する方法」を参照してください。
実際にインストールする前に、どのようなパッケージがインストールされるかを正確に確認できます。-n オプションを使用すると、持続的な変更を何も行うことなくインストールコマンドを実行できます。-n オプションは、このコマンドを -n オプションなしで実行した場合に行われる変更を表示します。また、-n オプションは、update および uninstall サブコマンドでも使用できます。
-v オプションを指定すると、詳細情報が表示されます。
# pkg install -nv pkg-fmri
例 3-4 インストールせずにインストールアクションを表示する
次のコマンドは、インストールされるパッケージに関する情報を表示しますが、実際には何もインストールしません。
# pkg install -n pkg:/developer/sunstudio12u1
$ pkg verify pkg-fmri
複数の pkg-fmri パターンを指定できます。情報メッセージを表示するには、-v オプションを使用します。エラーメッセージのみを表示するには、-q オプションを使用します。
例 3-5 パッケージのインストールを検証する
$ pkg verify -v e1000g Verifying: PACKAGE STATUS pkg://solaris/driver/network/e1000g OK
$ pkg fix --accept pkg-fmri
--accept オプションを指定しない場合、ライセンス条項への同意が必要なパッケージが 1 つでも存在すると、修正操作が失敗します。この修正操作によってインストールまたは更新されるパッケージのすべてのライセンスを表示するには、--licenses オプションを使用します。
複数の pkg-fmri パターンを指定できます。少なくとも 1 つの pkg-fmri パターンを指定する必要があります。
# pkg uninstall pkg-fmri
pkg-fmri パッケージに require 依存関係が含まれているすべてのパッケージを再帰的にアンインストールするには、-r オプションを使用します。新しい BE の作成や、--be-name、--require-new-be、および --deny-new-be オプションの説明については、「イメージとブート環境」を参照してください。
# beadm mount inactive-be mntpt
# pkg -R mntpt uninstall pkg-fmri
# beadm unmount inactive-be
複数の pattern を指定できます。複数のパターンに AND 演算が実行されます。
$ pkg search pattern
デフォルトでは、このイメージに対して設定されているすべての発行元に関連付けられたリポジトリが検索されます。このイメージにインストールされているパッケージのみを検索するには、-l オプションを使用します。デフォルトでは、現在インストールされているパッケージバージョン以上の一致のみが表示されます。一致したすべてのバージョンを表示するには、-f オプションを使用します。
例 3-6 インストールされているイメージ内のパッケージの検索
次の例では、インストールされているイメージ内の bash パッケージを検索します。INDEX 列は、一致が見つかったデータ内の場所を示します。
$ pkg search -l bash INDEX ACTION VALUE PACKAGE pkg.fmri set solaris/shell/bash pkg:/shell/bash@4.0.28-0.149 basename file usr/bin/bash pkg:/shell/bash@4.0.28-0.149 basename dir etc/bash pkg:/shell/bash@4.0.28-0.149 basename dir usr/share/bash pkg:/shell/bash@4.0.28-0.149
例 3-7 指定したリポジトリ内のパッケージの検索
この例では、このイメージに対して設定されていない 2 つのリポジトリが検索されます。
$ pkg search -s http://pkg.example1.com/release \ -s http://pkg.example2.com/release ksh
例 3-8 特定のファイルを提供するパッケージの検索
この例は、libdhcpagent ライブラリが system/library パッケージから来ていることを示しています。
$ pkg search -l /lib/libdhcpagent.so.1 INDEX ACTION VALUE PACKAGE path file lib/libdhcpagent.so.1 pkg:/system/library@0.5.11-0.149
例 3-9 ワイルドカードとブール値の指令を使用した検索
デフォルトでは、複数のパターンに AND 演算が実行されます。また、OR、*、および ? を指定することもできます。
$ pkg search netbeans AND plug*in OR ide
例 3-10 フィールドを使用した検索
検索文字列を、次の一連のフィールドとして指定できます。
pkg_name:action_type:key:token
欠けているフィールドは、暗黙的にワイルドカード化されます。pkg_name および token フィールドには、明示的なワイルドカードを使用できます。action_type および key フィールドは、正確に一致する必要があります。可能性のあるアクションの種類の一覧については、pkg(5) のマニュアルページの「アクション」を参照してください。キーの例には、basename、description、driver_name などがあります。
$ pkg search -l 'depend::package/pkg' INDEX ACTION VALUE PACKAGE incorporate depend package/pkg@0.5.11-0.150 pkg:/consolidation/ips/ips-incorporation@0.5.11-0.150 require depend package/pkg pkg:/package/pkg/package-manager@0.5.11-0.150 require depend package/pkg pkg:/system/zones/brand/ipkg@0.5.11-0.150
デフォルトでは、パス属性のみが表示されます。表示する追加の属性値を指定するには、-o オプションを使用します。複数の pkg-fmri パターンを指定できます。pkg-fmri パターンを指定しない場合は、すべてのインストール済みパッケージのデータが表示されます。パッケージがインストールされていない場合、このイメージに対して設定されているすべての発行元からデータを取得するには、-r オプションを使用します。-r オプションを使用する場合は、1 つ以上の pkg-fmri パターンを指定する必要があります。
$ pkg contents pkg-fmri
例 3-11 パッケージの内容の一覧表示
この例では、e1000g パッケージ内の各ファイルのサイズとパスが一覧表示されます。
$ pkg contents -t file -o pkg.size,path network/e1000g
PKG.SIZE PATH
471656 kernel/drv/amd64/e1000g
323612 kernel/drv/e1000g
4238 kernel/drv/e1000g.conf
複数の pkg-fmri パターンを指定できます。pkg-fmri パターンを指定しない場合は、すべてのインストール済みパッケージに関する情報が表示されます。パッケージがインストールされていない場合、このイメージに対して設定されているすべての発行元からデータを取得するには、-r オプションを使用します。-r オプションを使用する場合は、1 つ以上の pkg-fmri パターンを指定する必要があります。
$ pkg info pkg-fmri
例 3-12 特定のパッケージに関する情報の表示
この例では、openoffice パッケージの情報が表示されます。この例では、パッケージがインストールされていない場合でも -r オプションを使用して情報を表示します。
$ pkg info -r openoffice
Name: openoffice
Summary: OpenOffice.org 3.1.0
Category: Applications/Office
State: Not installed
Publisher: solaris
Version: 3.1.0
Build Release: 5.11
Branch: 0.111
Packaging Date: May 18, 2009 06:27:12 AM
Size: 430.65 MB
FMRI: pkg://solaris/openoffice@3.1.0,5.11-0.111:20090518T062712Z例 3-13 パッケージに関する著作権およびライセンス情報の表示
この例では、firefox パッケージの著作権とライセンスに関する情報が表示されます。
$ pkg info --license firefox Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. Copyright (c) 1998-2010 by Contributors. All rights reserved. Firefox and the Firefox logos are trademarks of the Mozilla Foundation. All rights reserved.
info サブコマンドと list サブコマンドはどちらも、パッケージ名と発行元、および一部のバージョン情報を表示します。pkg info コマンドでは、パッケージ名と発行元に加えて、パッケージの概要、カテゴリ、およびサイズが表示されます。pkg list コマンドは、パッケージの更新が存在するかどうか、このイメージに更新をインストールできるかどうか、およびパッケージが廃止されたり、名前が変更されたりしていないかどうかを表示します。pkg info コマンドは、パッケージごとに数行の情報を表示します。pkg list コマンドは、パッケージごとに 1 行の情報を表示します。
$ pkg list pkg-fmri
複数の pkg-fmri パターンを指定できます。pkg-fmri パターンを指定しない場合は、すべてのインストール済みパッケージが一覧表示されます。pkg list -u コマンドは、新しいバージョンが入手可能なすべてのインストール済みパッケージを一覧表示します。
pkg list コマンドは、次の情報を表示します。
パッケージの名前。発行元が優先発行元でない場合は、パッケージ名のあとの括弧内に発行元名が表示されます。
パッケージのリリースおよびブランチバージョン。-v オプションを指定した場合、VERSION 列は表示されません。代わりに、NAME 列に完全なパッケージ FMRI が表示されます。
パッケージの状態。状態は「installed」または「known」のどちらかです。
このパッケージが、イメージ内のほかのパッケージにどのように関連しているかに関する情報を示すフラグ。
U 列内の u は、このパッケージの新しいバージョンが入手可能であることを示します。パッケージの依存関係やその他の制約のために、新しいバージョンをインストールできない場合があります。例 3-16 の -a オプションを参照してください。
O 列内の o は、このパッケージが廃止されていることを示します。O 列内の r は、このパッケージの名前が変更されていることを示します。
例 3-14 インストールされているパッケージの一覧表示
この例では、優先発行元からパッケージがインストールされ、そのパッケージには入手可能な更新があります。
$ pkg list firefox NAME (PUBLISHER) VERSION STATE UFOXI web/browser/firefox 0.5.11-0.150 installed u----
例 3-15 パッケージの最新バージョンの一覧表示
設定されているすべての発行元からのパッケージの最新バージョンの一覧を表示するには、-n オプションを使用します。
$ pkg list -n firefox NAME (PUBLISHER) VERSION STATE UFOXI web/browser/firefox (example.com) 0.5.11-0.151 known ----- web/browser/firefox 0.5.11-0.150 installed u----
例 3-16 インストールされていないパッケージの一覧表示
インストール済みのパッケージと、インストールに使用できる最新バージョンの一覧を表示するには、-a オプションを使用します。パッケージは、インストールされている組み込みと、イメージのバリアントによって許可されている場合にインストールに使用できます。この例では、このパッケージは現在インストールされていませんが、優先発行元からのインストールに使用できます。このパッケージは、名前が sunstudio12u1 から developer/sunstudio12u1 に変更されています。
$ pkg list -a sunstudio12u1 NAME (PUBLISHER) VERSION STATE UFOXI developer/sunstudio12u1 12.1.1-0.111 known ----- sunstudio12u1 12.1.1-1 known --r--
例 3-17 パッケージ名と概要の一覧表示
パッケージ名と概要だけを表示するには、-s オプションを使用します。
$ pkg list -s developer/sunstudio12u1 NAME (PUBLISHER) SUMMARY developer/sunstudio12u1 Sun Studio - C, C++, & Fortran compilers and Tools
バリアントは、アーキテクチャーなどの、パッケージの相互に排他的なコンポーネントです。バリアントは IPS アクションのタグとして表示され、そのアクションがインストール可能かどうかに影響します。アクションにいずれかのバリアントタグが含まれている場合は、すべてのバリアントタグが、そのアクションをインストールするための選択条件に一致する必要があります。
$ pkg variant variant_spec
複数の variant_spec を指定できます。
例 3-18 すべてのバリアントの値の表示
$ pkg variant VARIANT VALUE variant.solaris.zone global variant.arch i386
# pkg change-variant -n --accept variant_spec=instance
-n オプションを使用すると、実際の変更を行わずに、この操作を -n なしで実行した場合に何が変更されるかを確認できます。新しい BE が作成される場合があります。「イメージとブート環境」を参照してください。
例 3-19 バリアントの変更
# pkg change-variant -n --accept variant.debug=false
ファセットは、ロケールなどの、パッケージの省略可能なコンポーネントです。ファセットは IPS アクションのタグとして表示され、そのアクションがインストール可能かどうかに影響します。アクションにいずれかのファセットタグが含まれている場合は、少なくとも 1 つのファセットタグが、そのアクションをインストールするための選択条件に一致する必要があります。
$ pkg facet facet_spec
複数の facet_spec を指定できます。
例 3-20 現在のイメージ内のすべてのファセットの表示
$ pkg facet FACETS VALUE facet.devel FALSE
# pkg change-facet -n --accept facet_spec=True|False|None
-n オプションを使用すると、実際の変更を行わずに、この操作を -n なしで実行した場合に何が変更されるかを確認できます。新しい BE が作成される場合があります。「イメージとブート環境」を参照してください。
ファセットの値を None に設定すると、ファセットの仕様が現在のイメージから削除されます。
例 3-21 現在のイメージ内のファセットの変更
# pkg change-facet facet.devel=True $ pkg facet facet.devel FACETS VALUE facet.devel TRUE
コマンドの結果、コマンドが完了した時刻、使用されたクライアントのバージョンと名前、操作を実行したユーザーの名前、コマンドの実行中に発生したエラーを含む詳細情報を表示するには、-l オプションを使用します。指定した数の最新の操作のみを表示するには、-n オプションを使用します。
$ pkg history TIME OPERATION CLIENT OUTCOME 2010-10-16T16:32:46 update-publisher pkg Succeeded 2010-10-16T16:34:42 refresh-publishers pkg Succeeded 2010-10-16T16:36:04 rebuild-image-catalogs pkg Succeeded 2010-10-16T16:38:17 install pkg Succeeded
# pkg purge-history