Index: head/ja_JP.eucJP/books/handbook/ports/chapter.xml =================================================================== --- head/ja_JP.eucJP/books/handbook/ports/chapter.xml (revision 44404) +++ head/ja_JP.eucJP/books/handbook/ports/chapter.xml (revision 44405) @@ -1,1858 +1,1694 @@ アプリケーションのインストール - packages と ports この章では ports packages &os; の基本システムには数多くのシステムツールが含まれています。 &os; は、サードパーティ製のソフトウェアの導入を支援するために、 ソースコードをコンパイルしてインストールする Ports Collection と、 コンパイル済みのバイナリをインストールする packages という相補的な 2 つの技術を提供しています。 どちらのシステムを用いても、 ローカルメディアやネットワーク上からソフトウェアをインストールできます。 この章を読むと、以下のことがわかります。 packages と ports の違い &os; に移植されたサードパーティ製のソフトウェアの探し方 伝統的な package システムによってバイナリ package を管理する方法 pkgng を用いてバイナリ package を管理する方法 Ports Collection を用いてサードパーティ製のソフトウェアをソースコードから構築する方法 インストール後の設定のために、 アプリケーションとともにインストールされたファイルを探す方法 ソフトウェアのインストールに失敗した場合に、どうしたらよいか ソフトウェアのインストール &unix; システムでは、 サードパーティ製ソフトウェアの典型的なインストール手順は以下のようになります。 ソースコード、 またはバイナリ形式で配布されているソフトウェアを探し出し、 ダウンロードする。 配布時のフォーマットからソフトウェアを取り出す。 一般的には &man.compress.1;, &man.gzip.1; または &man.bzip2.1; で圧縮された tarball です。 INSTALL または README ファイル、あるいは doc/ サブディレクトのファイルからドキュメントを探しだし、 ソフトウェアのインストール方法を調べる。 ソース形式でソフトウェアが配布されている場合はコンパイルを行う。 ここでは、Makefile の編集、 または、configure スクリプトの実行を伴うことがあります。 ソフトウェアの動作を確認し、インストールする。 インストールしているソフトウェアパッケージが、 &os; を意識して移植されたものでなかったり、 &os; 上でテストされていなければ、 正しくインストールが行われ、適切に動くようにコードを調べ、 編集する必要があるかもしれません。 この文書を書いている時点では、&os.numports; を越えるサードパーティ製アプリケーションが利用可能です。 &os; は、あなたのかわりにこれらのインストールの手順を実行してくれる 2 つの技術を提供しています。 &os; の package は、コンパイル済みのアプリケーションの全コマンド、 各種設定ファイルやドキュメントを含んでいます。 &os; に用意されている &man.pkg.add.1; といった伝統的な package 管理コマンド、または新しい pkgng コマンドでは、pkg install といったコマンドで、 package を扱うことができます。 &os; port は、 アプリケーションをソースコードからコンパイルする際の処理を自動化するように設計されたファイルの集まりです。 port を構成するファイルは、 自動的にアプリケーションをダウンロードし、展開、パッチ作業、 コンパイル、そしてインストールを行うために必要な情報を含んでいます。 さらに ports システムは、&os; の package 管理コマンドで扱うことのできる packages を生成できます。 packages と ports は依存関係を理解します。 package または port を用いてアプリケーションをインストールすると、 依存するライブラリがまだインストールされていない場合には、 最初にライブラリが自動的にインストールされます。 2 つの技術は類似していますが、 packages と ports にはそれぞれ独自の特徴があります。 それぞれのアプリケーションのインストールに対する必要要件に応じてどちらかを選択してください。 package の利点 一般的に、あるアプリケーションの package の tarball は、 ソースコードを含む tarball より小さなサイズとなります。 packages はコンパイルの時間を必要としません。 このことは、遅いシステム上で Mozilla, KDE, または GNOME といった大きなアプリケーションを扱う場合に重要となります。 packages を用いれば、 ソフトウェアのコンパイルに関する知識は必要ありません。 port の利点 packages は、通常最も多くのシステムで実行できるように、 非常に保守的な設定で構築されています。 port からコンパイルすることで、 コンパイルオプションを指定できます。 アプリケーションのなかには、 どの機能をインストールするかをコンパイル時に設定するものがあります。 たとえば、Apache は多種多様な ビルトインオプションを設定できます。 設定を区別するために、同じアプリケーションに対して 複数の packages が存在することがあります。 たとえば、GhostscriptXorg がインストールされているかどうかにより、 ghostscript package と ghostscript-nox11 package が選択可能となっています。 アプリケーションのコンパイルオプションが 1 つもしくは 2 つ以上になると、 複数の packages を用意することは困難になります。 ライセンス条項で、 バイナリでの配布を禁止しているソフトウェアがあります。 このようなソフトウェアはソースコードで配布される必要があり、 エンドユーザがコンパイルしなくてはなりません。 バイナリ配布を信用していない人や、 潜在的な問題点を見つけ出すためにソースコードを読むことを好む人がいます。 カスタマイズしたパッチを適用するためには、 ソースコードが必要になります。 ports の更新状況を把握するために、 &a.ports; や &a.ports-bugs; を購読するとよいでしょう。 アプリケーションをインストールする前に、 そのアプリケーションに関連したセキュリティ上の問題がないことを http://vuxml.freebsd.org/ で確認するか、ports-mgmt/portaudit をインストールしてください。インストールしたら、 portaudit -F -a と入力して、 インストールされているアプリケーションに既知の脆弱性がないことを確認してください。 この章では、packages と ports を用いた &os; 上での サードパーティ製ソフトウェアのインストール方法や管理方法について説明します。 ソフトウェアの探し方 &os; 上で利用可能なアプリケーションのリストは常に増えています。 インストールするソフトウェアを探す方法はたくさん用意されています。 &os; ウェブサイトは、 利用可能なすべてのアプリケーションの最新の一覧を、検索できる形で http://www.FreeBSD.org/ja/ports/ において公開しています。 ports はアプリケーションの名前や、ソフトウェアのカテゴリで検索出来ます。 FreshPorts Dan Langille は、包括的な検索ユーティリティや Ports Collection にあるアプリケーションの変更点を追跡する FreshPorts.org を公開しています。 登録したユーザは、監視している ports がアップデートされた時に、 そのことを自動的にメールで知らせてくれるような、 カスタマイズ可能な監視リストを使うことができます。 Freecode アプリケーションの名前がわからなければ、Freecode.com のようなサイトでアプリケーションを探して下さい。 その後、そのアプリケーションが ports で利用可能かどうかを &os; サイトで調べて下さい。 Ports Collection がすでにインストールされていれば、 ports ツリーのローカルバージョンを調べることができます。 port がどのカテゴリに分類されているのかを知りたければ、 &man.whereis.1; コマンドで調べることができます。 whereis ファイル と入力してください。ファイル の部分にはインストールを考えているプログラム名を入れます。 &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof さらに、以下の例のように &man.echo.1; を使って調べることもできます。 &prompt.root; echo /usr/ports/*/*lsof* /usr/ports/sysutils/lsof この方法では /usr/ports/distfiles 以下にダウンロードされたファイル名にもマッチします。 また、Ports Collection に備わっている検索機能を利用して port を検索する方法もあります。 この検索機能を利用するには、 cd コマンドを用いて /usr/ports ディレクトリに移動し、make search name=プログラム名 と入力してください。 プログラム名 の部分には検索したいソフトウェアの名前を入れてください。 たとえば、lsof を探すには次のようにします。 &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.88.d,8 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: ler@lerctr.org Index: sysutils B-deps: R-deps: Ports Collection に用意されている検索のメカニズムでは、 インデックスファイルを利用して検索を行います。 もし INDEX が必要であるというメッセージが表示されたら、 make fetchindex を実行して、 最新のインデックスファイルをダウンロードしてください。 INDEX が用意されれば、 make search で検索を実行できるでしょう。 Path: という行は、 port がどこにあるかを示しています。 より絞られた情報を得るには、 quicksearch と呼ばれる機能を使ってください。 &prompt.root; cd /usr/ports &prompt.root; make quicksearch name=lsof Port: lsof-4.88.d,8 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) もっと詳しく検索するには、 make search key=string または make quicksearch key=string と入力してください。 string の部分には検索したいテキストを入れます。 プログラムの名前がわからない場合でも、 ある目的に関連した ports の検索に利用できるよう、 テキストの部分には、コメント、説明文および依存情報を入れることができます。 search および quicksearch を使う場合には、 検索文字列中の大文字と小文字を区別せずに検索が行われるので、 LSOF を検索した結果は、 lsof と同じ検索結果になります。 バイナリ packages の利用 現在 &os; は、新しい packages 管理ツールへと移行中です。 PKGng による &os; のサードパーティ製ソフトウェア管理の利用を検討してください。 この節では、伝統的なバイナリ packages の管理方法について説明します。 pkgng 形式に移行していないユーザ向けです。 この package 管理方法では、package データベース用ディレクトリの /var/db/pkg を、 インストールされたソフトウェアのバージョンや、 各アプリケーションとともにインストールされたファイルを管理するのに用います。 いくつかのユーティリティは、 この管理用のデータベースのディレクトリを用いて、 バイナリ package を管理します。 これらのコマンドの名前は pkg_ から始まります。 この節では、バイナリ package をインストールしたり、削除したり、 バイナリ package の情報を収集する方法の概要を説明します。 各コマンドには、 操作をカスタマイズするために多くのオプションが用意されています。 詳細や利用方法の例の一覧については、 マニュアルページをご覧ください。 package のインストール packages インストール pkg_add ローカルファイルやネットワーク上のサーバから &os; のバイナリ package をインストールするには、 &man.pkg.add.1; を使用してください。 &os; のメディアは、ローカル packages のソースを提供しているので、 ネットワーク接続をする必要はありませんが、 最新のバイナリ packages を含んでいない可能性があります。 package は &os; の package サーバで常に再構築されています。 package サーバからインストールする場合には、 &man.pkg.add.1; に (remote の意味) を付け加えてください。 このオプションを指定して実行すると、 自動的に適切なオブジェクトの形式とリリースを判断し、 package サーバから package をダウンロードしてインストールします。 ユーザはこのほかに何もする必要はありません。 pkg_add &prompt.root; pkg_add -r lsof この例では、lsof は、 バージョン番号を指定しないで用いられています。 リモートでダウンロードを行うときにバージョンは含まれないためです。 別の &os; FTP ミラーサイトを使うには、 PACKAGESITE 環境変数に利用したいサイトを設定してください。 &man.pkg.add.1; は、FTP_PASSIVE_MODE, FTP_PROXY, FTP_PASSWORD といった環境変数を使う &man.fetch.3; を用いてファイルをダウンロードします。 ファイアウォールの内側であったり、 FTP/HTTP プロキシを使う場合には、 これらの環境変数を設定することになります。 FTP に関連した環境変数の一覧については &man.fetch.3; をご覧ください。 &os.current; または、&os.stable; を使用している場合、 &man.pkg.add.1; は自動的に最新版のアプリケーションをダウンロードします。 -RELEASE を使用している場合には、 そのバージョンのリリース時にビルドされた package をダウンロードします。 この設定は PACKAGESITE を上書きすることで変更できます。 たとえば、&os; 9.1-RELEASE を使用している場合には、 &man.pkg.add.1; を実行するとデフォルトで ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.1-release/Latest/. から packages をダウンロードします。 &man.pkg.add.1; を使って &os; 9-STABLE の packages をダウンロードするには、 PACKAGESITE 環境変数を ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-stable/Latest/ に設定してください。 package は .tbz という拡張子を持つファイルとして配布されており、 や &os; DVD の /packages ディレクトリにあります。 packages ディレクトリのレイアウトは、 /usr/ports ツリーのものと同様です。 カテゴリごとにディレクトリがあり、 All ディレクトリにはすべての package があります。 package システムのディレクトリ構造は ports のレイアウトと同一です。 両者が組み合わさって package/port システムが構成されます。 packages の管理 packages 管理 インストールされている packages の一覧と説明を表示するには、&man.pkg.info.1; を使ってください。 pkg_info &prompt.root; pkg_info colordiff-1.0.13 Tool to colorize diff output docbook-1.4 Meta-port for the different versions of the DocBook DTD ... インストールされているすべての packages のバージョンを要約して表示し、 インストールされている package のバージョンを、 ローカルにインストールされている ports ツリーのバージョンと比較するには、&man.pkg.version.1; を使ってください。 pkg_version &prompt.root; pkg_version colordiff = docbook = ... 2 列目の記号は、インストールされているバージョンの ローカル ports ツリーのバージョンに対する 新旧を表します。 記号 意味 = インストールされている package のバージョンは、 ローカル ports ツリーのものと一致しています。 < インストールされている package のバージョンは、 ローカルにある ports ツリーのものより古いです。 > インストールされている package のバージョンは、 ローカルにある ports ツリーのものより新しいです。 すなわち、ローカルの ports ツリーはおそらく古くなっています。 ?インストールされた package を ports インデックスの中に見つけることができません。 インストールされた port が Ports Collection から削除されたり、 名前が変更された場合などに起こります。 *複数のバージョンの package が存在します。 !インストールされた package はインデックス中に存在しますが、何らかの理由で、 インストールされた package のバージョン番号をインデックス中のエントリと比較できません。 package の削除 pkg_delete packages 削除 インストールされている package を削除するには、 &man.pkg.delete.1; を使ってください。 &prompt.root; pkg_delete xchat-2.8.8_1 &man.pkg.delete.1; は package 名とバージョン番号の両方を必要とします。 そのため、先ほどの例において xchat-2.8.8_1xchat とした場合には動作しません。 &man.pkg.version.1; を使ってインストールされている package のバージョンを調べるか、ワイルドカードを使ってください。 &prompt.root; pkg_delete xchat\* 上の例では、名前が xchat で始まるすべての packages が削除されます。 <application>pkgng</application> によるバイナリ package の管理 pkgng は、&os; における伝統的な package 管理ツールの置き換えとなる次世代の管理ツールで、 バイナリ packages をより早く、 より簡単に管理できるようにする数多くの機能を提供します。 pkgngports-mgmt/portmasterports-mgmt/portupgrade などの port 管理ツールの置き換えではありません。 これらのツールは、 サードパーティ製ソフトウェアをバイナリ packages と Ports Collection の両形式からインストールできますが、 一方で pkgng はバイナリ packages のみをインストールします。 <application>pkgng</application> 入門 &os; 9.1 以降では、 pkgng とマニュアルページをダウンロードし、 インストールするためのブートストラップユーティリティが用意されています。 システムをブートストラップするためには、 以下を実行してください。 &prompt.root; /usr/sbin/pkg これより前のバージョンの &os; では、かわりに Ports Collection または packages を用いてインストールする必要があります。 port をインストールするには以下を実行してください。 &prompt.root; cd /usr/ports/ports-mgmt/pkg &prompt.root; make &prompt.root; make install clean package からインストールするには以下を実行してください。 &prompt.root; pkg_add -r pkg pkgng をインストールしたら、 以下のコマンドを実行して、 package データベースをこれまでの伝統的なフォーマットから新しいフォーマットへと変換する必要があります。 &prompt.root; pkg2ng このステップは、 サードパーティ製ソフトウェアがまだインストールされていないような、 新しくインストールされた直後のシステムでは必要ありません。 このステップは非可逆です。 一度 package データベースを pkgng フォーマットへと変換したら、伝統的な pkg_* ツールを使うべきではありません。 package データベースを変換する際には、 新しいバージョンへのデータ変換に伴ったエラーが出力されることがあります。 通常、これらのエラーは無視して構いませんが、 pkg2ng 終了後に表示される、 変換に失敗したサードパーティ製ソフトウェアの一覧については、 これらのソフトウェアを手動で再インストールする必要があります。 &os; のバージョンが 10.X より前であれば、 以下の行を /etc/make.conf に追加して、 &os; Ports Collection がソフトウェアの登録に、伝統的な package のフォーマットではなく、pkgng を用いるように設定してください。 WITH_PKGNG= yes pkgng package 管理システムでは、 ほとんどのコマンドに対して package リポジトリを使います。 デフォルトの package リポジトリは /usr/local/etc/pkg.conf または PACKAGESITE 環境変数で定義されます。 この環境変数は、設定ファイルを上書きします。 その他の pkgng の設定オプションは、pkg.conf(5) に記述されています。 pkgng の利用情報は、 pkg(8) マニュアルページや、 pkg を引数なしに実行すると表示されます。 pkgng コマンドの引数は、 コマンドに固有なマニュアルページに記述されています。 たとえば、pkg install のマニュアルページを読むには、 以下のコマンドのどちらかを実行してください。 &prompt.root; pkg help install &prompt.root; man pkg-install 以下の節では、pkgng を用いた通常のバイナリ package の管理について説明します。 各コマンドでは、カスタマイズのために、 多くのオプションが使われています。 詳細や、他の例については、 コマンドのヘルプやマニュアルページを参照してください。 インストールされている package の情報を入手する オプションを使用しないで pkg info を実行すると、 システムにインストールされているすべての package もしくは、 ある特定の package の情報が得られます。 たとえば、インストールされている pkgng の情報を調べるには、 以下のように実行してください。 &prompt.root; pkg info pkg pkg-1.1.4_1 package のインストールと削除 バイナリ package をインストールするには、 以下のコマンドを使ってください。 ここで packagename は、インストールする package の名前です。 &prompt.root; pkg install packagename このコマンドは、リポジトリデータを使用して、 インストールすべきソフトウェアのバージョン、および、 インストールされていない依存ソフトウェアがあるかどうかを調べます。 たとえば、curl をインストールするには以下を実行してください。 &prompt.root; pkg install curl Updating repository catalogue /usr/local/tmp/All/curl-7.31.0_1.txz 100% of 1181 kB 1380 kBps 00m01s /usr/local/tmp/All/ca_root_nss-3.15.1_1.txz 100% of 288 kB 1700 kBps 00m00s Updating repository catalogue The following 2 packages will be installed: Installing ca_root_nss: 3.15.1_1 Installing curl: 7.31.0_1 The installation will require 3 MB more space 0 B to be downloaded Proceed with installing packages [y/N]: y Checking integrity... done [1/2] Installing ca_root_nss-3.15.5_1... done [2/2] Installing curl-7.31.0_1... done Cleaning up cache files...Done 新しい package と依存関係から追加された package は、 インストール済み package 一覧に表示されます。 &prompt.root; pkg info ca_root_nss-3.15.5_1 The root certificate bundle from the Mozilla Project curl-7.31.0_1 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers pkg-1.1.4_6 New generation package manager 必要のなくなった packages は、 pkg delete を使って削除できます。 たとえば、以下のようにして削除できます。 &prompt.root; pkg delete curl The following packages will be deleted: curl-7.31.0_1 The deletion will free 3 MB Proceed with deleting packages [y/N]: y [1/1] Deleting curl-7.31.0_1... done インストールされている package のアップグレード pkg version を用いて古くなった packages を見つけることができます。 ローカルに ports ツリーがない場合には、 pkg-version(8) は、リモートリポジトリのカタログを利用します。 そうでなければ、ローカルの ports ツリーを使って package のバージョンを同定します。 pkg upgrade を実行すると、 インストールされている packages が最新のバージョンにアップグレードされます。 このコマンドは、インストールされているソフトウェアのバージョンと、 リポジトリのカタログから利用できるバージョンとを比較します。 比較が終わったら、 新しいバージョンが用意されているアプリケーションの一覧を表示します。 アップグレードを行うのであれば、 y を選択してください。 キャンセルする場合には、 n を選択してください。 インストールされている package の検証 時折、 サードウェア製のアプリケーションに脆弱性が見つかることがあります。 脆弱性を調べるために、 pkgng は、検証機能を持っています。 システムにインストールされているソフトウェアに既知の脆弱性がないかどうかを調べるには、 以下のように実行してください。 &prompt.root; pkg audit -F リーフ依存 ports の自動削除 package を削除すると、不必要な依存 ports が残されることがあります。 依存のために導入され、現在は不必要になった package は、 以下のようにすると自動的に検出され、削除されます。 &prompt.root; pkg autoremove Packages to be autoremoved: ca_root_nss-3.13.5 The autoremoval will free 723 kB Proceed with autoremoval of packages [y/N]: y Deinstalling ca_root_nss-3.15.1_1... done package データベースのバックアップ 伝統的な package 管理システムとは異なり、 pkgng には package データベースをバックアップするメカニズムがあります。 package データベースの内容を手動でバックアップするには、 以下を実行してください。以下の pkgng.db を適切なファイル名に置き換えてください。 &prompt.root; pkg backup -d pkgng.db さらに、pkgng は package データベースを毎日自動的にバックアップする &man.periodic.8; スクリプトを含んでいます。 この機能は、&man.periodic.conf.5; の中で、 daily_backup_pkgng_enableYES に設定すると有効になります。 スクリプトによる定期的な package データベースのバックアップを無効にするには、 &man.periodic.conf.5; の中で、 daily_backup_pkgdb_enableNO に設定してください。 過去にバックアップした package データベースの中身をリストアするには、以下を実行してください。 &prompt.root; pkg backup -r /path/to/pkgng.db 古くなった package の削除 デフォルトでは、pkgng はキャッシュディレクトリにバイナリ packages を保存します。 このディレクトリは、pkg.conf(5) の PKG_CACHEDIR 変数で定義されます。 pkg upgrade を使って packages をアップグレードする際には、 アップグレードされた package の古いバージョンは自動的には削除されません。 システムからこれらの古いバイナリ package を削除するには、 以下を実行してください。 &prompt.root; pkg clean package メタデータの変更 &os; Ports Collection では、メジャーバージョン番号が変更になることがあります。 これに対応するために、pkgng には、 package の情報をアップデートするコマンドが組み込まれています。 たとえば、lang/php5 が、 バージョン 5.4 を表すようになり、 lang/php5lang/php53 と名前を変更する必要があるような場合に、有用です。 上記の例の package の情報を変更するには、 以下のように実行してください。 &prompt.root; pkg set -o lang/php5:lang/php53 別の例として、lang/ruby18lang/ruby19 にアップデートするには、 以下のようにしてください。 &prompt.root; pkg set -o lang/ruby18:lang/ruby19 最後の例として、 libglut 共有ライブラリの情報を graphics/libglut から graphics/freeglut へと変更するには、 以下のように実行してください。 &prompt.root; pkg set -o graphics/libglut:graphics/freeglut package の情報を変更したら、 情報が変更された package に依存している packages を再インストールすることが重要となります。 依存 packages を再インストールするには、 以下のように実行してください。 &prompt.root; pkg install -Rf graphics/freeglut Ports Collection の利用 - このセクションでは、Ports Collection - を利用してプログラムをインストールしたり、 - システムから削除したりする基本的な手順について説明します。 - 利用可能な make のターゲットや環境変数についての詳細は - &man.ports.7; をご覧ください。 - - - &os; Ports プロジェクトは、2012 年にバージョン管理システムを - CVS から Subversion へと移行しました。 - 一般的な ports の利用において推奨される方法は - Portsnap です。 - ローカルで ports をカスタマイズしたい - (すなわち、ローカルで追加のパッチをメンテナンスしたい) - と考えているユーザは、直接 Subversion を使うとよいでしょう。 - CVSup のサービスは、 - 2013 年 2 月 28 日に廃止されました。 - - - - Ports Collection の準備 - - Ports Collection とは、/usr/ports + Ports Collection とは、/usr/ports 以下に置かれる Makefile, 修正パッチ、 説明文などの一連のファイルのことです。このファイルのセットは、 アプリケーションをコンパイルして &os; にインストールするのに用いられます。 - 以下では、&os; のセットアップ時に Ports Collection をインストールしなかった場合に、 - Ports Collection を準備する方法について示します。 + port を用いてアプリケーションをコンパイルできるようにするには、 + まず最初に Ports Collection をインストールする必要があります。 + &os; のインストール時に Ports Collection をインストールしなかった場合に、 + 以下の方法のどれかを用いてインストールしてください。 Portsnap を利用する方法 Portsnap は Ports Collection を取得するための速くて使いやすく、 多くのユーザに推奨されるツールです。 圧縮された Ports Collection のスナップショットを /var/db/portsnap にダウンロードしてください。 &prompt.root; portsnap fetch 初めて Portsnap を使う時は、 スナップショットをまず /usr/ports に展開してください。 &prompt.root; portsnap extract 上で示した Portsnap を初めて利用する際に行うコマンドを実行した後は、 以下のコマンドで - /usr/ports - をアップデートできます。 + /usr/ports + をアップデートしてください。 &prompt.root; portsnap fetch &prompt.root; portsnap update Subversion を用いる方法 - たとえば、ローカルで変更点をメンテナンスする状況のように、 - ports ツリーの管理が必要な場合には、 + ports ツリーの管理が必要な場合や、 + ローカルで変更点をメンテナンスする必要がある場合には、 Subversion を使って Ports Collection を取得する方法があります。 Subversion のより詳細な説明については、 Subversion Primer を参照してください。 Subversion を使って ports ツリーをチェックアウトする前に、 Subversion をインストールしておく必要があります。 ports ツリーがすでにインストールされていれば、 以下のようにして Subversion をインストールできます。 &prompt.root; cd /usr/ports/devel/subversion &prompt.root; make install clean ports ツリーがなければ、package から Subversion をインストールできます。 &prompt.root; pkg_add -r subversion package の管理に pkgng を使っているのであれば、代わりに以下のようにして Subversion をインストールできます。 &prompt.root; pkg install subversion ports ツリーをチェックアウトしてください。 - パフォーマンスを良くするため、以下のコマンドにおいて、 - svn0.us-east.FreeBSD.orgSubversion + パフォーマンスを良くするため、 + svn0.us-east.FreeBSD.org + を + Subversion ミラー - の中から地理的に近い場所にあるミラーに置き換えてください。 - コミッタの方々は、最初に Subversion - Primer を読んで、適切なプロトコルを選択してください。 + の中から地理的に近い場所にあるミラーに置き換えてください。 &prompt.root; svn checkout https://svn0.us-east.FreeBSD.org/ports/head /usr/ports Subversion - でチェックアウトした後、 - /usr/ports - をアップデートするには、以下を実行してください。 + で最初のチェックアウトを行ったら、必要に応じて + /usr/ports + をアップデートしてください。 &prompt.root; svn update /usr/ports - - sysinstall を利用する方法 + Ports Collection + はソフトウェアのカテゴリを表すディレクトリを持ち、 + 各カテゴリには、各アプリケーションのサブディレクトリがあります。 + ports スケルトンとも呼ばれる各サブディレクトリには、 + プログラムを &os; + 上で正しくコンパイルしてインストールする方法を提供するファイルのセットが含まれています。 + それぞれの port スケルトンには、 + 次のファイルおよびディレクトリが含まれています。 - ここでは、sysinstall - を利用してインストールメディアから Ports Collection - をインストールする方法について説明します。 - この方法では、リリース時の古い Ports Collection - がインストールされることに注意してください。 - もし、インターネットへの接続が可能であれば、 - これまでに説明した方法を使ってください。 - - - root ユーザ権限で、以下のように - sysinstall を実行してください。 - - &prompt.root; sysinstall - - - - スクロールダウンして Configure を選び、 - Enter を押してください。 - - - - スクロールダウンして Distributions を選び、 - Enter を押してください。 - - - - スクロールダウンして ports を選び、 - Space キーを押してください。 - - - - Exit までスクロールアップして、 - Enter を押してください。 - - - - CDROM や FTP といったインストールメディアを選択してください。 - - - - Exit までスクロールアップして、Enter - を押してください。 - - - - X を押して、 - sysinstall を終了してください。 - - - - - - <application>CVSup</application>/<application>csup</application> - から <application>portsnap</application> への移行 - - - 2013 年 2 月 28 日までに - ports ツリーの CVS - へのエクスポートは終了します。 - そのため、CVSup および - csup を用いて ports - ツリーをアップデートすることはできなくなります。 - - - - Portsnap への移行 - - 移行に際しては、 - /usr に約 - 1 GB のディスク容量と、 - さらに Portsnap - は約 150 MB のディスク容量を /var に必要とします。 - - - もし &man.cron.8; を使って - CVSup - csup を実行するなど、 - 自動的な ports のアップデートを行なっているのであれば、 - 停止してください。 - - - - 現在の ports ツリーを一時的に別の場所に移動します。 - - &prompt.root; mv /usr/ports /usr/ports.old - - - - 新しい ports ツリーを - Portsnap を使ってダウンロードして、 - /usr/ports - に展開してください。 - - &prompt.root; portsnap fetch extract - - - - distfiles および保存されている packages を新しい - port ツリーに移動してください。 - - &prompt.root; mv /usr/ports.old/distfiles /usr/ports -&prompt.root; mv /usr/ports.old/packages /usr/ports - - - - 古い ports ツリーを削除してください。 - - &prompt.root; rm -rf /usr/ports.old - - - - もし CVSup - を使用していたのであれば、アンインストールできます。 - - &prompt.root; pkg_delete -r -v cvsup-without-gui-\* - - pkgng のユーザは、 - 以下のコマンドを使って削除できます。 - - &prompt.root; pkg delete cvsup-without-gui - - - - - - - - ports のインストール - - - ports - インストール - - - port スケルトンは、アプリケーションを &os; - 上で正しくコンパイルしインストールする方法を提供するファイルのセットのことです。 - それぞれの port スケルトンには、次のファイルが含まれています。 - - Makefile。 - Makefile - にはアプリケーションのコンパイル方法やシステムのどこにインストールするかを指定する命令文が含まれています。 + Makefile: + このファイルにはアプリケーションのコンパイル方法やシステムのどこにインストールするかを指定する命令文が含まれています。 - distinfo。 + distinfo: このファイルには、その port を構築するためにダウンロードする必要があるファイルのファイル名と、 - それらのファイルがダウンロードによって壊れていないかを - (&man.sha256.1; を使って) - 確認するためのチェックサム情報が含まれています。 + チェックサム情報が含まれています。 - files。 + files: このディレクトリには &os; 上でプログラムをコンパイルし、 インストールするための修正パッチが含まれています。 このディレクトリには、その port の構築に必要なその他のファイルが入る場合もあります。 - pkg-descr。 + pkg-descr: このファイルにはプログラムに関する、より詳しい説明文が含まれます。 - pkg-plist。 + pkg-plist: これは、その port によってインストールされる全ファイルのリストです。 これにはプログラムを削除する際に、 どのファイルを削除すれば良いのかを ports システムに伝える役割もあります。 これらの他に pkg-message - といったファイルを含む ports もあります。 - ports システムは、 - このようなファイルを用いて特殊な状況にも対応しています。 + や特殊な状況に対応するためのファイルを含む ports もあります。 これらのファイルについての詳細および - ports の一般的な説明については、port + ports の一般的な説明については、 + port 作成者のためのハンドブック をご覧下さい。 - port は実際のソースコード (distfile とも呼ばれます) + port は実際のソースコード + (distfile とも呼ばれます) を含んではいません。 - ソースコードはソフトウェアの作者が好む形式で配布されます。 - 以下では port をインストールする 2 つの方法について説明します。 + port の構築の展開部で、ダウンロードされたソースは自動的に + /usr/ports/distfiles + に保存されます。 - - ports をインストールするには、 - root としてログインする必要があります。 - + + ports のインストール + + ports + installing + + + この節では、Ports Collection + を利用してプログラムをインストールしたり、 + システムから削除したりする基本的な手順について説明します。 + 利用可能な make のターゲットや環境変数についての詳細は + &man.ports.7; をご覧ください。 + - port をコンパイルする前に、 - Ports Collection が最新であることを確認してください。 - また、その port に関連したセキュリティ上の問題がないことを - http://vuxml.freebsd.org/ - で確認してください。ports-mgmt/portaudit - をインストールしているのであれば、 - 新しく port をインストールする前に、 - portaudit -F コマンドを実行して、 - 最新の脆弱性に関するデータベースをダウンロードしてください。 - セキュリティの検査およびデータベースの更新は、 - 日々のセキュリティチェックで行なわれます。 - 詳しくは、&man.portaudit.1; および &man.periodic.8; - のマニュアルページを参照してください。 + + いかなる port でも、構築する前には、 + 前節に書かれているように、Ports Collection をアップデートしてください。 + サードパーティ製のソフトウェアをインストールすると、 + セキュリティの脆弱性を引き起こす可能性があります。 + その port に関連したセキュリティ上の問題がないことを、まずは + http://vuxml.freebsd.org/ + で確認してください。または、ports-mgmt/portaudit + をインストールしているのであれば、新しい port をインストールする前に、 + portaudit -F -a を実行してください。 + 毎日のシステムのセキュリティ確認時に、 + 自動的にセキュリティの検査およびデータベースの更新を行うようにこのコマンドを設定できます。 + 詳しくは、portaudit および &man.periodic.8; + のマニュアルページを参照してください。 Ports Collection は、ネットワークに接続できることを想定しています。 - もし接続できなければ、distfile のコピーを - /usr/ports/distfiles - に手動で置いてください。 + また、superuser の権限も必要となります。 - まず、インストールしたい port のディレクトリに移動してください。 + freebsdmaill.com + の &os; Toolkit のようなサードパーティ製の DVD-ROM + 製品の中には distfiles を収録しているものがあります。 + これらを使うとインターネットへの接続がなくても + ports をインストールするのに使うことができます。 + DVD を /cdrom + にマウントしてください。 + ほかのマウントポイントを使用したければ、 + CD_MOUNTPTS 変数を設定してください。 + ディスク上に必要な distfiles が存在すると、 + 自動的に利用されます。port には DVD + への収録を許可しないライセンス条項を持つものがあります。 + これにはダウンロード前に登録を必要としたり、 + 再配布が禁止されているという理由があります。 + DVD に含まれていない port をインストールしたい場合には、 + ネットワークに接続する必要があります。 - &prompt.root; cd /usr/ports/sysutils/lsof + port をコンパイルしてインストールするには、 + インストールしたい port のディレクトリに移動してください。 + その後、プロンプトからまたは + make install と入力してください。 + すると、次のような出力が現われるはずです。 - port をコンパイルまたは - ビルド (build) するには、プロンプトから - make と入力してください。 - そうすると、次のような出力が現われるはずです。 - - &prompt.root; make ->> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. + &prompt.root; cd /usr/ports/sysutils/lsof +&prompt.root; make install +>> lsof_4.88D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. -===> Extracting for lsof-4.57 +===> Extracting for lsof-4.88 ... [extraction output snipped] ... ->> Checksum OK for lsof_4.57D.freebsd.tar.gz. -===> Patching for lsof-4.57 -===> Applying FreeBSD patches for lsof-4.57 -===> Configuring for lsof-4.57 +>> Checksum OK for lsof_4.88D.freebsd.tar.gz. +===> Patching for lsof-4.88.d,8 +===> Applying FreeBSD patches for lsof-4.88.d,8 +===> Configuring for lsof-4.88.d,8 ... [configure output snipped] ... -===> Building for lsof-4.57 +===> Building for lsof-4.88.d,8 ... [compilation output snipped] ... -&prompt.root; +===> Installing for lsof-4.88.d,8 - コンパイルが終了すると、プロンプトに戻ります。 - 次に make install - を使って、port のインストールを行ないます。 - - &prompt.root; make install -===> Installing for lsof-4.57 +===> Installing for lsof-4.88.d,8 ... [installation output snipped] ... ===> Generating temporary packing list -===> Compressing manual pages for lsof-4.57 -===> Registering installation for lsof-4.57 +===> Compressing manual pages for lsof-4.88.d,8 +===> Registering installation for lsof-4.88.d,8 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. +/usr/local/sbin/lsof &prompt.root; - プロンプトに戻ったら、 - インストールしたプログラムは実行できるようになっています。 - lsof は高い権限で動作するプログラムなので、 - セキュリティに関する警告が表示されます。ports - のコンパイルやインストール中に表示されるこれらの警告に注意してください。 + lsof は高い権限で動作するプログラムなので、 + インストールする時にセキュリティに関する警告が表示されます。 + インストールが終わったら、プロンプトが戻ります。 - コンパイル時に作成される作業用ディレクトリを削除すると良いでしょう。 + シェルによってはコマンドの実行ファイルを探す時間を短縮するために、 + 環境変数 PATH に登録されている + ディレクトリのコマンド一覧をキャッシュするものがあります。 + tcsh シェルを使っているのであれば、 + フルパスを指定することなく新しくインストールしたコマンドを利用できるように、 + rehash を実行してください。 + sh シェルを使っているのであれば + かわりに hash -r を実行してください。 + 詳細については、 + あなたの使っているシェルのドキュメントをご覧ください。 + + インストールの間に、作業用ディレクトリが作成されます。 このディレクトリにはコンパイル時に使用されるすべての一時ファイルが含まれています。 このディレクトリを削除することで、ディスク容量を節約でき、また port を新しいバージョンへアップデートする際に問題が起こる可能性を小さくします。 &prompt.root; make clean -===> Cleaning for lsof-4.57 +===> Cleaning for lsof-88.d,8 &prompt.root; - makemake install - および make clean - と三つに分けられた手順の代わりに、 - 最初から make install clean と実行することで、 - 余分な手順を二つ省くことができます。 + port を構築する際に、 + make install clean + と実行することで、 + これらの余分な手順を省くことができます。 + + + ports のインストールのカスタマイズ - - デフォルトでは、ユーザに port - のオプションを選択させる設定のため、 - make install - だけの実行では、ユーザとの対話が起こり長時間待たされることがあります。 - 依存する port の数が多い場合に、これを避けるには、まず最初に make + ports の中にはビルドオプションを指定できるものがあります。 + このオプションを指定することで、 + アプリケーションの機能の一部を有効もしくは無効にできます。 + また、セキュリティオプションを設定したり、 + その他のカスタマイズを行うことができます。 + このようなアプリケーションには + www/firefox, + security/gpgme や + mail/sylpheed-claws + などがあります。 + port に利用可能なオプションがある場合には、 + デフォルトでは、ユーザに port + のオプションをメニューから選択させる設定のため、 + 何度もユーザとの対話が起こり待たされることがあります。 + これを避けるには、まず最初に make config-recursive を実行して設定を一括で行い、その後 - make install - [clean] を実行してください。 - + make + install [clean] + を実行して port を構築してインストールしてください。 config-recursive を実行する際、 - &man.make.1; のターゲットである all-depends-list を実行すると、設定すべき ports の一覧を得ることができます。 多くの場合は、すべての依存 ports のオプションが定義され、 - ports オプションの &man.dialog.1; 画面が表示されなくなり、 - すべてのオプションが意図通りに設定されたことを確認できるまで + ports オプションの画面が表示されなくなり、 + すべてのオプションが設定されたことを確認できるまで make config-recursive を実行すると良いでしょう。 - - シェルによってはコマンドの実行ファイルを探す時間を短縮するために、 - 環境変数 PATH に登録されている - ディレクトリのコマンド一覧をキャッシュするものがあります。 - tcsh を使っているのであれば、 - フルパスを指定することなく新しくインストールしたコマンドを利用できるように、 - rehash を実行してください。 - sh シェルを使っているのであれば - かわりに hash -r を実行してください。 - 詳細については、 - あなたの使っているシェルのドキュメントをご覧ください。 - + port の構築後、再びこのメニューを表示させてオプションの追加や削除、 + 設定の変更を行う方法はたくさんあります。 + 一つ目は port のディレクトリに cd で移動し、 + make config + と入力する方法です。 + 別の方法は make showconfig + を使う方法です。 + 他の方法は make rmconfig + の実行です。 + このコマンドを実行すると選択されているすべてのオプションが削除され、 + 設定をもう一度やり直すことができます。 + これらの方法や他の方法についての詳細は、 + &man.ports.7; マニュアルで説明されています。 - &os; - Mall の &os; Toolkit のようなサードパーティ製の DVD-ROM - 製品の中には distfiles を収録しているものがあります。 - これらを Ports Collection で使うことができます。 - DVD-ROM を /cdrom にマウントしてください。 - ほかのマウントポイントを使用したければ、 - CD_MOUNTPTS 変数を設定してください。 - ディスク上に必要な distfiles が存在すると、 - 自動的に利用されます。 - - - port には DVD - への収録を許可しないライセンス条項を持つものがあります。 - これにはダウンロード前に登録を必要としたり、 - 再配布が禁止されているという理由があります。 - DVD に含まれていない port をインストールしたい場合には、 - ネットワークに接続する必要があります。 - - - ports は、FTP_PASSIVE_MODE, - FTP_PROXY, FTP_PASSWORD - といった環境変数を参照する &man.fetch.1; - を用いてファイルをダウンロードします。 - ファイアウォールの内側であったり、 + ports は、いくつかの環境変数を参照する &man.fetch.1; + を用いてソースファイルをダウンロードします。 + &os; システムがファイアウォールの内側であったり、 FTP/HTTP プロキシを使う場合には、 - これらの環境変数を設定することなります。 - 環境変数の一覧については &man.fetch.3; をご覧ください。 + FTP_PASSIVE_MODE, + FTP_PROXY, FTP_PASSWORD + の環境変数を設定することなります。 + 対応している環境変数の一覧については + &man.fetch.3; をご覧ください。 - ネットワークに常時接続できないユーザのために + インターネットに常時接続できないユーザのために make fetch コマンドが用意されています。 - (ネットワークに接続している時に) このコマンドを - /usr/ports で実行してください。 - 必要なファイルがダウンロードされます。 - このコマンドは /usr/ports/net - といった、より下の階層のカテゴリにおいても使うことができます。 + このコマンドを + /usr/ports + で実行してすべての distfiles をダウンロードするか、 + /usr/ports/net + といったカテゴリや、あるスケルトンにおいても実行できます。 ある port がライブラリやその他の ports に依存している場合には、 別のカテゴリの ports の distfiles はダウンロードされないことに注意してください。 - port が依存しているすべてをダウンロードしたければ、 - make - fetch-recursive + port が依存しているすべての distfiles をダウンロードしたければ、 + make fetch-recursive を使ってください。 - - トップディレクトリで make - を実行するとすべての port がビルドされます。 - しかしながら ports の中には同時に存在できないものがあったり、 - 異なる ports の別のファイルが同じ名前で - インストールされる場合があることに注意してください。 - - めったにないことかもしれませんが、 - デフォルトの MASTER_SITES - に書かれているサイト以外から tarball - を持ってくることが必要になる場合があります。 - そのような場合には以下のように - MASTER_SITES を変更してください。 + ローカルに distfiles のリポジトリがあるような場合に、 + MASTER_SITES 変数を変更することで + Makefile で指定されているダウンロードの場所を + 変更することができます。 + 設定する場合には、変更先を以下のようにして指定してください。 &prompt.root; cd /usr/ports/directory &prompt.root; make MASTER_SITE_OVERRIDE= \ -ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch +ftp://ftp.organization.org/pub/FreeBSD/ports/distfiles/ fetch - 上の例では MASTER_SITES を - ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ - に変更しています。 - - - ports の中にはビルドオプションを指定できるものがあります。 - このオプションを指定することで、 - アプリケーションの機能の一部を有効もしくは無効にできます。 - また、セキュリティオプションを設定したり、 - その他のカスタマイズを行うことができます。 - このようなアプリケーションには - www/firefox, - security/gpgme や - mail/sylpheed-claws - などがあります。 - 利用可能なオプションがある場合には、 - port をコンパイルする前にメニューが表示されます。 - - - - ports ディレクトリの変更 - WRKDIRPREFIX 変数と PREFIX 変数を変更することで、 作業ディレクトリやターゲットディレクトリをデフォルトのものから変更できます。 &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install - とすると、ports は /usr/home/example/ports - でコンパイルされ、すべて /usr/local + とすると、ports は /usr/home/example/ports + でコンパイルされ、すべて /usr/local 以下にインストールされます。 &prompt.root; make PREFIX=/usr/home/example/local install - この場合、port のコンパイルは /usr/ports + この場合、port のコンパイルは /usr/ports でおこない、 - /usr/home/example/local - にインストールします。 + /usr/home/example/local + にインストールします。そして - そして、 - &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install とすれば両者を組み合わせることが可能です。 - あるいは、これらを環境変数に設定する方法もあります。 + これらを環境変数に設定する方法もあります。 どのように環境変数を設定するかについては、 あなたの使っているシェルのマニュアルページを参照してください。 - - - ports の再構築 - - ports をコンパイルする際、ビルドオプションを設定するために - ncurses ベースのメニューが表示されることがあります。 - port の構築後、再びこのメニューを表示させてオプションの追加や削除、 - 設定の変更を行う方法はたくさんあります。 - 一つ目は port のディレクトリに cd で移動し、 - make config と入力する方法です。 - 別の方法は make showconfig - を使う方法です。 - 他の方法は make rmconfig - の実行です。 - このコマンドを実行すると選択されているすべてのオプションが削除され、 - 設定をもう一度やり直すことができます。 - これらの方法や他の方法についての詳細は、 - &man.ports.7; マニュアルで説明されています。 - インストールした ports の削除 ports 削除 - インストールされた ports および packages は、 - &man.pkg.delete.1; コマンドで削除できます。 + インストールされた ports は、 + &man.pkg.delete.1; コマンドで削除できます。 + &os; システムが pkg + を使うように設定されているのであれば、 + pkg delete を使って port を削除してください。 + これらのコマンドの使用例は、 および にあります。 - &prompt.root; pkg_delete lsof-4.57 + あるいは、port のディレクトリにて + make deinstall を実行することでも削除できます。 + &prompt.root; cd /usr/ports/sysutils/lsof +make deinstall +===> Deinstalling for sysutils/lsof +===> Deinstalling +Deinstallation has been requested for the following 1 packages: + + lsof-4.88.d,8 + +The deinstallation will free 229 kB +[1/1] Deleting lsof-4.88.d,8... done + + port が削除されるときに表示されるメッセージを読むことをお勧めします。 + もし削除した port に依存するアプリケーションがあった場合には、 + その情報が表示されますが、port の削除は行われます。 + そのようなケースでは、依存を直すためにアプリケーションを再インストールするとよいでしょう。 ports のアップグレード ports アップグレード まず最初に &man.pkg.version.1; コマンドを使って、 古くなってしまった ports の中で新しいバージョンにアップデート可能なものを Ports Collection からリストアップしてください。 &prompt.root; pkg_version -v <filename>/usr/ports/UPDATING</filename> を読む Ports Collection を更新したら、port をアップグレードする前に /usr/ports/UPDATING ファイルに目を通してください。 このファイルには port をアップグレードする際にユーザが遭遇するであろう問題や、 追加で必要な作業などが記述されています。 例えば、ファイル形式の変更や設定ファイルの場所の変更、 前のバージョンと互換性がなくなったことなどが書かれています。 もし、この節に書いてあることと UPDATING に書かれていることが矛盾している場合には、 UPDATING を優先してください。 portupgrade を用いた ports のアップグレード portupgrade portupgrade は、 インストールした ports のアップグレードを簡単に行なうためのユーティリティです。 ports-mgmt/portupgrade port から利用できます。 他の port と同じように make install clean でインストールしてください。 &prompt.root; cd /usr/ports/ports-mgmt/portupgrade &prompt.root; make install clean pkgdb -F を使って、 インストールされている ports を調べてください。 矛盾が検出された場合には修復してください。 アプリケーションをアップデートする前には、 この作業を定期的に行なうとよいでしょう。 システムにインストールされている port の中で古くなったものをすべてアップデートするには portupgrade -a を実行してください。 もし、すべての ports に対して個別にアップグレードするかどうかを確認したいのであれば、 を追加してください。 &prompt.root; portupgrade -ai ports で利用可能なすべてのアプリケーションではなく、 ある特定のアプリケーションだけを更新したいのであれば、 portupgrade pkgname を実行してください。 アップグレードするアプリケーションが依存しているすべての ports をまず先に更新したい場合には、 を使ってください。 &prompt.root; portupgrade -R firefox ports ではなく packages を用いてインストールを行ないたい場合には、 オプションを使ってください。 このオプションを使うと、portupgradePKG_PATH に登録されているローカルディレクトリを検索し、 ローカルに packages が見つからなければ、 リモートサイトからダウンロードを試みます。 packages をローカルに見つけることができず、 リモートサイトからもダウンロードできない場合には、 portupgrade は ports からインストールを行ないます。 ports を使用したくなければ、 オプションを指定してください。 &prompt.root; portupgrade -PP gnome2 また、ビルドやインストールを行なわず、 distfiles ( が指定されている場合は packages) だけをダウンロードしたければ、 オプションを指定してください。 詳細は &man.portupgrade.1; を参照してください。 <application>portmaster</application> を用いた ports のアップグレード portmaster インストールした ports のアップグレードを行うためのもう一つのユーティリティが ports-mgmt/portmaster です。 portmaster は、 他の ports に依存せずに、base システムのツールのみを使うように設計されています。 このアプリケーションは、 どの ports をアップグレードすべきかの判断を、 /var/db/pkg/ の情報を使って行います。 port をインストールするには以下のようにしてください。 &prompt.root; cd /usr/ports/ports-mgmt/portmaster &prompt.root; make install clean Portmaster は、ports を 4 つのカテゴリに分類します。 Root ports: 他の port に依存せず、他の port からも依存されません。 Trunk ports: 他の port に依存しませんが、他の port から依存されています。 Branch ports: 他の port に依存し、他の port からも依存されています。 Leaf ports: 他の port に依存しますが、他の port からは依存されません。 オプションを使うと、 インストールした ports やアップデート可能な port の一覧が表示されます。 &prompt.root; portmaster -L ===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports ... ===>>> Branch ports (Have dependencies, are depended on) ===>>> apache22-2.2.3 ===>>> New version available: apache22-2.2.8 ... ===>>> Leaf ports (Have dependencies, not depended on) ===>>> automake-1.9.6_2 ===>>> bash-3.1.17 ===>>> New version available: bash-3.2.33 ... ===>>> 32 leaf ports ===>>> 137 total installed ports ===>>> 83 have new versions available 以下のコマンドを使って、 インストールされているすべての ports をアップデートできます。 &prompt.root; portmaster -a portmaster のデフォルトの設定では、 インストールされている port を削除する前にバックアップ用の package が作成されます。 このバックアップは、新しいバージョンのインストールに成功すると削除されます。 を使うと、 portmaster はバックアップを自動的に削除しません。 を追加すると、 portmaster をインタラクティブモードで使用できます。 このモードでは、各 port をアップグレードするかどうかの選択を対話的に行うことがでます。 アップグレードの過程でエラーに遭遇した場合には、 を使ってすべての ports のアップグレードや再構築を行なってください。 &prompt.root; portmaster -af portmaster を使ってシステムに新しい ports をインストールしたり、新しい port のコンパイルやインストール前に依存するすべての port をアップグレードできます。 &prompt.root; portmaster shells/bash 詳細については &man.portmaster.8; を参照してください。 ports とディスク容量 ports ディスク容量 Ports Collection を使い続けていると、 そのうちディスクを食いつぶしてしまうでしょう。 ports をビルドしてインストールした後、 make clean は作業用の work ディレクトリを削除します。 以下のコマンドで Ports Collection を掃除することができます。 &prompt.root; portsclean -C 時間が経つにつれ distfiles ディレクトリには、古くなったソースファイルがたまっていきます。 次のコマンドで、どの ports からも使われていない distfiles を削除できます。 &prompt.root; portsclean -D システムにインストールされている port から使われていない distfiles をすべて削除するには、以下のコマンドを使ってください。 &prompt.root; portsclean -DD portsclean ユーティリティは ports-mgmt/portupgrade ツール群の一部です。 ports-mgmt/pkg_cutleaves port は、 必要なくなった ports を削除する作業を自動化します。 インストール後の作業 バイナリ package もしくは port のどちらを用いてソフトウェアをインストールするかに関わらず、 サードパーティ製のアプリケーションの多くは、 インストール後にある程度の設定を必要とします。 以下のコマンドや場所の情報は、 アプリケーションとともに何がインストールされたかを知るための助けとなるでしょう。 多くのアプリケーションでは、 デフォルトの設定ファイルが、少なくとも一つは /usr/local/etc にインストールされます。 この設定ファイルを確認し、 必要に応じてシステムの要求に合うように編集してください。 ドキュメントが付属しているアプリケーションは、 ドキュメントを /usr/local/share/doc にインストールします。また、 多くのアプリケーションは、マニュアルページもインストールします。 これらのドキュメントは、 アプリケーションを使い続ける前に見ておくべきものです。 ある種のアプリケーションでは、 サービスを実行するためには、 アプリケーションの起動前に、 /etc/rc.conf に追加する必要があります。 これらのアプリケーションでは、通常、 スタートアップスクリプトが /usr/local/etc/rc.d にインストールされます。詳細は、 サービスの起動 をご覧ください。 &man.csh.1; のユーザは、 rehash を実行して、 シェルの PATH のバイナリリストを再構築してください。 伝統的な package システムを使用しているシステムでは、 &man.pkg.info.1; を使って、インストールされたファイル、 マニュアルページ、およびバイナリを調べることができます。 pkgng を使用しているシステムでは、 かわりに pkg info を使ってください。 うまく動作しない ports に遭遇した場合には うまくコンパイルできなかったりインストールできない port に遭遇したら、 あなたにできることは次のようなことしかありません。 その port に対する修正案が提出されていないかどうかを 障害報告 (Problem Report) データベース で調べてください。 もし提案されていれば、 その修正によって問題を解決できるかもしれません。 port の保守担当者に対応してもらいましょう。 make maintainer と入力するか、 Makefile を直接読み、 保守担当者の電子メールアドレスを調べます。 メールを送る際には、port 名とバージョン番号 (Makefile$FreeBSD: 行)、 そしてエラーが出力されるまでの出力ログを忘れずに添付してください。 特定の保守担当者が存在せず、かわりに メーリングリスト が保守している ports があります。 そのような場合には、メールアドレスは freebsd-listname@FreeBSD.org のようになります。 質問する際には、このことに気をつけてください。 特に ports@FreeBSD.org が保守している ports には、保守担当者が本当にいません。 そのメーリングリストを購読する人々からなるコミュニティが、 修正や対応をおこなっています。 もっとボランティアが必要です! 保守担当者から返信がなければ、&man.send-pr.1; を使ってバグレポートを提出してください ( &os; 障害報告の書き方 をご覧ください)。 自分で直しましょう! Ports システムに関する詳細な情報は port 作成者のためのハンドブック にあります。 このセクションを読むと、壊れてしまった port を直したり、 自分で作った port を提出したりできるようになります! かわりに &man.pkg.add.1; を使って package をインストールしてください。