OpenSolarisのパッケージ管理
OpenSolarisのIPS、pkgコマンドの利用方法
- OpenSolarisのIPS、pkgコマンドの利用方法
- 公式サイト等
- パッケージの一覧取得
- パッケージの検索
- パッケージのインストール
- ファイル、プログラムがどのパッケージ含まれているか検索する
- パッケージの情報を知る
- パッケージに含まれているファイル一覧
- アップデート出来るパッケージがあるか否かを知る
- パッケージのアップデート(該当ファイルのみ)
- 環境全体のアップデート
- その他のレポジトリの追加
- レポジトリカタログのリフレッシュ
- レポジトリカタログのリビルド
- レポジトリサーバが重く繋がらないときの処置
公式サイト等
パッケージの一覧取得
インストールされているパッケージの一覧(ローカルのみ)
pkg list
全パッケージの一覧(リモートも含む)
pkg list -a
パッケージの検索
レポジトリにある(リモート)ファイル、プログラムが、どのパッケージに入っているのかを探す
pkg search -r ファイル名
パッケージのインストール
次のようにインストール可能
pkg install パッケージ名
依存するパッケージを知りたい場合
pkg install -v パッケージ名
依存するパッケージを知り、実際にはインストールしたくない場合
pkg install -nv パッケージ名
例:httpdをインストールしたい場合
例1
pkg search -r httpd
出てきた一覧を読み、パッケージ名称を調べる。
pkg install -v SUNWapch22
でインストールできる。
注)Apacheは最初からインストールされております。
ファイル、プログラムがどのパッケージ含まれているか検索する
searchコマンドを利用する(Solaris10のpkgchk -lp)。
pkg search ファイル名
例:/usr/sbin/pkgaddがどのパッケージにインストールされているか知りたい場合
pkg search /usr/sbin/pkgadd
パッケージの情報を知る
インストール済みのパッケージ情報
pkg info パッケージ名
レポジトリ中のパッケージ情報
pkg info -r パッケージ名
例:パッケージ情報の調べ方
インストール済みのpythonの情報を調べる
pkg info SUNWPython
インストール前にrubyの情報を調べる
pkg info -r SUNWruby18
パッケージに含まれているファイル一覧
インストール済みのパッケージ情報
pkg contents パッケージ名
レポジトリ中のパッケージ情報
pkg contents -r パッケージ名
例:zlibパッケージのファイル一覧を調べる
インストール済みのパッケージ情報
pkg contents SUNWzlib
レポジトリ中のパッケージ情報
pkg contents -r SUNWzlib
アップデート出来るパッケージがあるか否かを知る
pkg list -u
例:pkgのアップデートリストを自動的にメールする
あらかじめ、下記のようなスクリプトを作成しておく。
#!/bin/sh pkg refresh --full pkg list -u 2>&1 | grep -v 'no installed packages have available updates'
これを、crontab -eで登録する。
0 4 * * * [ -x /usr/local/sbin/check_update_pkg ] && /usr/local/sbin/check_update_pkg
パッケージのアップデート(該当ファイルのみ)
インストールと同じく、pkg installを利用する。
pkg install -v パッケージ名
例:httpdのアップデート
pkg install -v SUNWapch22
環境全体のアップデート
環境全体のアップデートする場合は、下記のように行う。
pkg install -v entire
インストールする内容がどれだけあるのかを調べたい場合、
pkg install -nv entire
その他のレポジトリの追加
さまざまなレポジトリを追加することで、OpenSolarisのアプリケーションを簡単に追加することが出来る。ただし、それぞれのレポジトリを運営ポリシーを調べておかないと、意図せずトラブルになることがあるので注意が必要である。
それ以外にも他のレポジトリがある。
contrib
opensolarisのレポジトリには何かしらの理由で登録されていないが、十分に利用されているもの
pkg set-authority -O http://pkg.opensolaris.org/contrib contrib
pending
opensolarisのレポジトリに登録を予定している、実験的な開発レポジトリ
pkg set-authority -O http://pkg.opensolaris.org/pending pending
Sunfreeware
Solarisでは有名なレポジトリ。/usr/localにインストールされる
pkg set-authority -O http://pkg.sunfreeware.com:9000 sunfreeware.com
レポジトリカタログのリフレッシュ
特に、レポジトリを追加、削除した場合は、行っておくとよい。
pkg refresh --full
レポジトリカタログのリビルド
何かしらの理由で、pkgコマンドのデータベースが破損してしまった場合、リビルドを行う
pkg rebuild-index
レポジトリサーバが重く繋がらないときの処置
pkg.opensolaris.orgが重く、download install繋がらない、あるいはタイムアウトが起きてしまって処理が終わらない場合、タイムアウトの時間を延ばす。
環境変数PKG_CLIENT_TIMEOUTにタイムアウト値を設定できるので(デフォルトは30)、適当に増やすことで成功することがある。
env PKG_CLIENT_TIMEOUT=120 pkg install -v entire