OpenSolarisのパッケージ管理 - JUSTPLAYERインターネットサービス

Top / サポート情報 / マニュアル / Phase2Server / OpenSolarisのパッケージ管理

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