FreeBSD には packages を管理するツールが複数あります。
sysinstall
からシステムに packages をインストールしたり削除できます。
また、インストールされた packages や利用可能な packages の一覧を表示できます。
詳細については、「Packages のインストール」
を参照してください。
この章では、コマンドラインの package 管理ツールについて説明します。
pkg_add(1) は、ローカルファイルやネットワーク上のサーバから FreeBSD バイナリ package をインストールするためのユーティリティです。
#
ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>
get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>
exit
#
pkg_add lsof-4.56.4.tgz
FreeBSD CD-ROM セットのような、ローカルな packages がない場合は、
pkg_add(1) に -r
オプションを付け加えてください。
このオプションを指定して実行すると、
自動的に適切なオブジェクトの形式とリリースを判断し、
package を FTP サイトからダウンロードしてインストールします。
ユーザはこのほかに何もする必要はありません。
#
pkg_add -r lsof
別の FreeBSD FTP ミラーサイトを使うには、
PACKAGESITE
環境変数に利用したいサイトを設定してください。
pkg_add(1) は、FTP_PASSIVE_MODE
,
FTP_PROXY
, FTP_PASSWORD
といった環境変数を使う fetch(3)
を用いてファイルをダウンロードします。
ファイアウォールの内側であったり、
FTP/HTTP プロキシを使う場合には、
これらの環境変数を設定することになります。
環境変数の一覧については fetch(3) をご覧ください。
また、上の例で lsof-4.56.4
の代わりに
lsof
を使っていることに注意してください。
リモートフェッチ機能を使用する場合には、
package のバージョン番号を取り除かなければなりません。
FreeBSD-CURRENT または、FreeBSD-STABLE を使用している場合、
pkg_add(1) は自動的に最新版のアプリケーションをダウンロードします。
-RELEASE を使用している場合には、
そのバージョンのリリース時にビルドされた package をダウンロードします。
この設定は PACKAGESITE
を上書きすることで変更できます。
たとえば、FreeBSD 8.1-RELEASE を使用している場合には、
pkg_add(1) を実行するとデフォルトで
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/
から packages をダウンロードします。
pkg_add(1) を使って FreeBSD 8-STABLE の packages
をダウンロードするには、
PACKAGESITE
環境変数を
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/
に設定してください。
package は .tgz
や .tbz
という拡張子を持つファイルとして配布されており、
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/
や FreeBSD DVD の /packages
ディレクトリにあります。
packages ディレクトリのレイアウトは、
/usr/ports
ツリーのものと同様です。
カテゴリごとにディレクトリがあり、
All
ディレクトリにはすべての package
があります。
package システムのディレクトリ構造は ports のレイアウトと同一です。 両者が組み合わさって package/port システムが構成されます。
pkg_info(1) は、インストールされている packages の一覧と説明を表示します。
#
pkg_info
colordiff-1.0.13 A tool to colorize diff output
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...pkg_version(1) は、インストールされている packages のバージョンを要約して表示します。 また、package のバージョンを、 現在の ports ツリーのバージョンと比較します。
#
pkg_version
colordiff =
docbook =
...2 列目の記号は、インストールされているバージョンの ローカル ports ツリーのバージョンに対する 新旧を表します。
記号 | 意味 |
---|---|
= | インストールされている package のバージョンは、 ローカル ports ツリーのものと一致しています。 |
< | インストールされている package のバージョンは、 ローカルにある ports ツリーのものより古いです。 |
> | インストールされている package のバージョンは、 ローカルにある ports ツリーのものより新しいです。 すなわち、ローカルの ports ツリーはおそらく古くなっています。 |
? | インストールされた package を ports インデックスの中に見つけることができません。 インストールされた port が Ports Collection から削除されたり、 名前が変更された場合などに起こります。 |
* | 複数のバージョンの package が存在します。 |
! | インストールされた package はインデックス中に存在しますが、何らかの理由で、 インストールされた package のバージョン番号をインデックス中のエントリと比較できません。 |
インストールされている package を削除するには、 pkg_delete(1) を使ってください。
#
pkg_delete xchat-1.7.1
pkg_delete(1) は package 名とバージョン番号の両方を必要とします。
すなわち、先ほどの例において
xchat-1.7.1
を
xchat
とした場合には動作しません。
pkg_version(1) を使ってインストールされている package
のバージョンを調べるか、ワイルドカードを使ってください。
#
pkg_delete xchat\*
上の例では、名前が xchat
で始まるすべての packages が削除されます。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。