FreeBSD には packages を管理するツールが複数あります。
sysinstall からシステムに packages をインストールしたり削除できます。 また、インストールされた packages や利用可能な packages の一覧を表示できます。 詳細については、項3.10.11 を参照してください。
この章では、コマンドラインの package 管理ツールについて説明します。
pkg_add(1) は、ローカルファイルやネットワーク上のサーバから FreeBSD ソフトウェア package を インストールするためのユーティリティです。
例 5-1. 手動で 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 [email protected]. 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
上の例では適当な package がダウンロードされた後、インストールされます。 ユーザはこのほかに何もする必要はありません。 メインの配布サイトではなく FreeBSD Package ミラーサイトの package を使うには、 PACKAGESITE 環境変数に利用したいサイトを設定してください。 pkg_add(1) は、FTP_PASSIVE_MODE, FTP_PROXY, FTP_PASSWORD といった環境変数を参照する fetch(3) を用いてファイルをダウンロードします。 ファイアウォールの内側であったり、 FTP/HTTP プロキシを使う場合には、 これらの環境変数を設定することになります。 環境変数の一覧については fetch(3) をご覧ください。 また、上の例で lsof-4.56.4 の代わりに lsof を使っていることに注意してください。 リモートフェッチ機能を使用する場合には、 package のバージョン番号を取り除かなければなりません。 pkg_add(1) は自動的に最新版のアプリケーションを取得します。
注意: 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 CD-ROM にあります。 FreeBSD 4-CD セット (または PowerPak など) の CD はすべて、 /packages ディレクトリに 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 ツリーのものと一致しています。 |
< | インストールされているバージョンは、 ローカル ports ツリーのものより古いです。 |
> | インストールされているバージョンは、 ローカル 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 とした場合には動作しません。 インストールされている package のバージョンは、 pkg_version(1) を使うと簡単に調べることができます。 バージョン番号のかわりにワイルドカードも使えます。
# pkg_delete xchat\*
上の例では、名前が xchat で始まるすべての packages が削除されます。
package に関するすべての情報は /var/db/pkg ディレクトリ以下に置かれています。 このディレクトリの下にあるファイルの中に、 インストールされたファイルの一覧やインストールされた各 package についての説明が含まれています。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <[email protected]> まで (英語で)
連絡してください。
本文書に関する質問については、<[email protected]> まで電子メールを (英語で)
送ってください。