diff options
-rw-r--r-- | ja_JP.eucJP/books/handbook/ports/chapter.sgml | 1224 |
1 files changed, 467 insertions, 757 deletions
diff --git a/ja_JP.eucJP/books/handbook/ports/chapter.sgml b/ja_JP.eucJP/books/handbook/ports/chapter.sgml index b9335f44c2..18061d6504 100644 --- a/ja_JP.eucJP/books/handbook/ports/chapter.sgml +++ b/ja_JP.eucJP/books/handbook/ports/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Japanese Documentation Project - Original revision: 1.187 + Original revision: 1.247 $FreeBSD$ --> @@ -17,8 +17,9 @@ <para>FreeBSD の基本システムには数多くのシステムツールが含まれています。 しかしながら、サードパーティ製のアプリケーションをインストールしないと 実用的にはそれほどたくさんのことはできません。 - FreeBSD は、サードパーティ製のソフトウェアをインストールするために - Ports Collection と packages + FreeBSD は、サードパーティ製のソフトウェアの導入を支援するために、 + ソースコードをコンパイルしてインストールする Ports Collection と + コンパイル済みのバイナリをインストールする packages という相補的な 2 つの技術を提供しています。 どちらのシステムを用いても、お気に入りのアプリケーションの最新版を ローカルメディアやネットワーク上からインストールできます。</para> @@ -30,10 +31,19 @@ <para>packages を用いてサードパーティ製のソフトウェアをバイナリからインストールする方法</para> </listitem> <listitem> - <para>Ports Collection を用いてサードパーティ製のソフトウェアをコンパイルする方法</para> + <para>Ports Collection を用いてサードパーティ製のソフトウェアをソースコードからコンパイルする方法</para> </listitem> <listitem> - <para>インストールされた packages や ports を削除する方法</para> + <para>インストールした packages や ports を削除する方法</para> + </listitem> + <listitem> + <para>Ports Collection が用いるデフォルトの設定を変更する方法</para> + </listitem> + <listitem> + <para>お望みのソフトウェア package を探しだす方法</para> + </listitem> + <listitem> + <para>アプリケーションをアップグレードする方法</para> </listitem> </itemizedlist> </sect1> @@ -41,7 +51,7 @@ <sect1 id="ports-overview"> <title>ソフトウェアのインストール</title> - <para>すでに Unix システムを使ったことのある人ならば、 + <para>&unix; システムを使ったことのある人なら、 サードパーティ製ソフトウェアの典型的なインストール手順が 以下のようになることをご存知でしょう。</para> @@ -53,8 +63,8 @@ <step> <para>配布時のフォーマット (一般的には - &man.compress.1; または &man.gzip.1; で圧縮された tarball) - からソフトウェアを取り出す。</para> + &man.compress.1;, &man.gzip.1; または &man.bzip2.1; + で圧縮された tarball) からソフトウェアを取り出す。</para> </step> <step> @@ -97,9 +107,8 @@ FreeBSD に用意されている &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1; といった package 管理コマンドで、 - ダウンロードした package ファイルを扱うことができます。</para> - - <para>新しいアプリケーションをインストールするには、 + ダウンロードした package ファイルを扱うことができます。 + 新しいアプリケーションをインストールするには、 たった一つのコマンドを実行するだけです。</para> <para>FreeBSD port は、アプリケーションをソースコードからコンパイルする際の @@ -165,7 +174,7 @@ <para>packages は、通常最も多くのシステムで実行できるように、 非常に保守的な設定で構築されています。 port からインストールすることで、 - たとえば Pentium III や Athlon + たとえば Pentium IV や Athlon プロセッサに特化したコードを生成するような コンパイルオプションを指定できます。 </para> </listitem> @@ -218,6 +227,21 @@ <para>ports の更新状況を把握するために、 &a.ports; や &a.ports-bugs; を購読するとよいでしょう。</para> + <warning> + <para>アプリケーションをインストールする前に、 + そのアプリケーションに関連したセキュリティ上の問題がないことを + <ulink url="http://vuxml.freebsd.org/"></ulink> + で確認してください。</para> + + <para>また、 + インストールされているアプリケーションに既知の脆弱性がないことを自動的に調べる + <filename role="package">security/portaudit</filename> + をインストールしてもよいでしょう。 + このコマンドは、ビルド前の port についても調査します。 + インストールされている packages を確認する場合には、 + <command>portaudit -F -a</command> コマンドを使ってください。</para> + </warning> + <para>この章では、packages と ports を用いた FreeBSD 上での サードパーティ製ソフトウェアの インストール方法や管理方法について説明します。</para> @@ -237,7 +261,7 @@ <listitem> <para>FreeBSD ウェブサイトは、 利用可能なすべてのアプリケーションの最新の一覧を、検索できる形で - <ulink url="../../../../ports/index.html">http://www.FreeBSD.org/ports/</ulink> + <ulink url="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</ulink> において公開しています。 ports はカテゴリに分類されています。 アプリケーションは、(名前を知っているならば) 名前で検索でき、 @@ -265,6 +289,69 @@ その後、そのアプリケーションが ports で利用可能かどうかを FreeBSD サイトで調べて下さい。</para> </listitem> + + <listitem> + <para>port の正確な名前を知っていて、 + どのカテゴリに分類されているのかを知りたいだけなら、 + &man.whereis.1; コマンドで調べることができます。 + 単に <command>whereis <replaceable>file</replaceable></command> + と入力してください。<replaceable>file</replaceable> + の部分にはインストールしたいプログラム名を入れます。 + システム上でプログラムが見つかったら、 + そのプログラムのパスが次のように表示されます。</para> + + <screen>&prompt.root; <userinput>whereis lsof</userinput> +lsof: /usr/ports/sysutils/lsof</screen> + + <para>この表示は、<command>lsof</command> (システムユーティリティの一つ) が + <filename>/usr/ports/sysutils/lsof</filename> + というディレクトリにあることを示しています。</para> + </listitem> + + <listitem> + <para>また、Ports Collection に備わっている検索機能を利用して + port を検索する方法もあります。 + この検索機能を利用するには、カレントディレクトリが + <filename>/usr/ports</filename> である必要があります。 + そのディレクトリに移動したら、 + <command>make search key=<replaceable>プログラム名</replaceable></command> + と入力してください。 + <replaceable>プログラム名</replaceable>の部分には検索したいプログラム名を入れます。 + たとえば、<command>lsof</command> + を探したい場合には次のようにします。</para> + + <screen>&prompt.root; <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>make search name=lsof</userinput> +Port: lsof-4.56.4 +Path: /usr/ports/sysutils/lsof +Info: Lists information about open files (similar to fstat(1)) +Maint: obrien@FreeBSD.org +Index: sysutils +B-deps: +R-deps: </screen> + + <para>出力のうち特に注意して見なければならないのは + <quote>Path:</quote> という行です。 + この行は port がどこにあるかを示しています。 + 出力される他の情報は port + をインストールする際には必要となるものではありませんので、 + ここでは触れないでおきます。</para> + + <para>もっと詳しく検索するには、 + <command>make search key=<replaceable>string</replaceable></command> + と入力してください。 + <replaceable>string</replaceable> + の部分には検索したいテキストを入れます。 + port 名、コメント、説明文および依存情報が検索されます。 + 探しているプログラムの名前を知らない場合でも、 + ある目的に関連した ports の検索に利用できます。</para> + + <para>どちらの場合でも、 + 検索文字列中の大文字と小文字を区別せずに検索が行われるので、 + <quote>LSOF</quote> を検索した結果は、 + <quote>lsof</quote> と同じ検索結果になります。</para> + </listitem> + </itemizedlist> </sect1> @@ -337,22 +424,44 @@ local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz <screen>&prompt.root; <userinput>pkg_add -r <replaceable>lsof</replaceable></userinput></screen> <para>上の例では適当な package がダウンロードされた後、インストールされます。 - ユーザはこれ以外に作業をする必要はありません。 + ユーザはこのほかに何もする必要はありません。 + メインの配布サイトではなく + &os; Package ミラーサイトの package を使うには、 + <envar>PACKAGESITE</envar> + 環境変数に利用したいサイトを設定してください。 &man.pkg.add.1; は、<envar>FTP_PASSIVE_MODE</envar>, - <envar>FTP_PROXY</envar> および <envar>FTP_PASSWORD</envar> + <envar>FTP_PROXY</envar>, <envar>FTP_PASSWORD</envar> といった環境変数を参照する &man.fetch.3; を用いてファイルをダウンロードします。 ファイアウォールの内側であったり、 FTP/HTTP プロキシを使う場合には、 これらの環境変数を設定することになります。 - 完全なリストについては &man.fetch.3; をご覧ください。 + 環境変数の一覧については &man.fetch.3; をご覧ください。 また、上の例で <literal>lsof-4.56.4</literal> の代わりに <literal>lsof</literal> を使っていることに注意してください。 リモートフェッチ機能を使用する場合には、 - package のバージョン番号を取り除く必要があります。 + package のバージョン番号を取り除かなければなりません。 &man.pkg.add.1; は自動的に最新版のアプリケーションを取得します。</para> - <para>package は <filename>.tgz</filename> + <note> + <para>&os.current; または、&os.stable; を使用している場合、 + &man.pkg.add.1; は最新版のアプリケーションをダウンロードします。 + -RELEASE を使用している場合には、 + そのバージョンのリリース時にビルドされた package がダウンロードされます。 + この設定は + <envar>PACKAGESITE</envar> 環境変数を上書きすることで変更できます。 + たとえば、&os; 5.4-RELEASE を使用している場合には、 + &man.pkg.add.1; を実行するとデフォルトで + <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/</literal> + から packages をダウンロードします。 + もし、&man.pkg.add.1; を使って + &os; 5-STABLE の packages をダウンロードしたければ、 + <envar>PACKAGESITE</envar> 環境変数を + <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/</literal> + に設定してください。</para> + </note> + + <para>package は <filename>.tgz</filename> や <filename>.tbz</filename> という拡張子を持つファイルとして配布されており、 <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/"></ulink> @@ -407,7 +516,7 @@ docbook = ローカル ports ツリーのバージョンに対する 新旧を表します。</para> - <informaltable frame="none"> + <informaltable frame="none" pgwide="1"> <tgroup cols="2"> <thead> <row> @@ -433,7 +542,9 @@ docbook = (おそらくローカル ports ツリーは古くなっています)。</entry></row> <row><entry>?</entry><entry>インストールされた package を - ports インデックスの中に見つけることができません。</entry></row> + ports インデックスの中に見つけることができません + (インストールされた port が Ports Collection から削除されたり、 + 名前が変更された場合などに起こります)。</entry></row> <row><entry>*</entry><entry>複数のバージョンの package が存在します。</entry></row> @@ -501,9 +612,11 @@ docbook = <step> <para><username>root</username> ユーザ権限で、以下のように - <command>/stand/sysinstall</command> を実行してください。</para> + <command>sysinstall</command> + (5.2 より前の &os; では <command>/stand/sysinstall</command>) + を実行してください。</para> - <screen>&prompt.root; <userinput>/stand/sysinstall</userinput></screen> + <screen>&prompt.root; <userinput>sysinstall</userinput></screen> </step> <step> @@ -561,40 +674,66 @@ docbook = 先ほど紹介したセクションをご覧ください。</para> <step> - <para>まず <filename role="package">net/cvsup</filename> - port をインストールしてください。 - インストールについての詳細は、<link + <para>まず <filename role="package">net/cvsup-without-gui</filename> + package をインストールしてください。</para> + + <screen>&prompt.root; <userinput>pkg_add -r cvsup-without-gui</userinput></screen> + + <para>インストールについての詳細は、<link linkend="cvsup-install">CVSup のインストール</link> (<xref linkend="cvsup-install">) を参照してください。</para> </step> <step> - <para><username>root</username> ユーザ権限で、 - <filename>/usr/share/examples/cvsup/ports-supfile</filename> - を <filename>/root</filename> - や、あなたのホームディレクトリなどへコピーしてください。</para> - </step> + <para><command>cvsup</command> を実行してください。</para> - <step> - <para>次に <filename>ports-supfile</filename> を編集します。</para> - </step> + <screen>&prompt.root; <userinput>cvsup -L 2 -h <replaceable>cvsup.FreeBSD.org</replaceable> /usr/share/examples/cvsup/ports-supfile</userinput></screen> - <step> - <para><replaceable>CHANGE_THIS.FreeBSD.org</replaceable> を最寄りの + <para><replaceable>cvsup.FreeBSD.org</replaceable> を最寄りの <application>CVSup</application> サーバに変更してください。 ミラーサイトの完全なリストは <link linkend="cvsup-mirrors">CVSup サイト</link> (<xref linkend="cvsup-mirrors">) にあります。</para> - </step> - - <step> - <para><command>cvsup</command> を実行してください。</para> - <screen>&prompt.root; <userinput>cvsup -g -L 2 <replaceable>/root/ports-supfile</replaceable></userinput></screen> + <note> + <para> + 自分用の <filename>ports-supfile</filename> を使って、 + コマンドラインから <application>CVSup</application> + サーバを指定することを省略したいと思う方もいるでしょう。</para> + + <procedure> + <step> + <para>そのような場合には、 + まず <username>root</username> ユーザ権限で、 + <filename>/usr/share/examples/cvsup/ports-supfile</filename> + を <filename>/root</filename> + や、あなたのホームディレクトリなどへコピーしてください。</para> + </step> + + <step> + <para>次に <filename>ports-supfile</filename> を編集します。</para> + </step> + + <step> + <para><replaceable>CHANGE_THIS.FreeBSD.org</replaceable> を最寄りの + <application>CVSup</application> サーバに変更してください。 + ミラーサイトの完全なリストは <link + linkend="cvsup-mirrors">CVSup サイト</link> (<xref + linkend="cvsup-mirrors">) にあります。</para> + </step> + + <step> + <para>その後、以下のように + <command>cvsup</command> を実行してください。</para> + + <screen>&prompt.root; <userinput>cvsup -L 2 <replaceable>/root/ports-supfile</replaceable></userinput></screen> + </step> + </procedure> + </note> </step> <step> - <para>このコマンドを時間をおいて実行すると、 + <para>&man.cvsup.1; コマンドを時間をおいて実行すると、 最新の変更点がダウンロードされて、あなたの手元の Ports Collection に加えられます。 Ports Collection 全体が再度ダウンロードされることはありません。 @@ -628,10 +767,11 @@ docbook = <listitem> <para><filename>distinfo</filename> ファイル。 - このファイルには、その port を構築するために - ダウンロードする必要があるファイルのファイル名と、 - それらのファイルがダウンロードによって壊れていないか - チェックするためのチェックサム情報が含まれています。</para> + このファイルには、その port + を構築するためにダウンロードする必要があるファイルのファイル名と、 + それらのファイルがダウンロードによって壊れていないかを + (&man.md5.1; を使って) + 確認するためのチェックサム情報が含まれています。</para> </listitem> <listitem> @@ -672,95 +812,11 @@ docbook = このようなファイルを用いて特殊な状況にも対応しています。 これらのファイルについての詳細および ports の一般的な説明については、<ulink - url="../porters-handbook/index.html">port 作成者のためのハンドブック + url="&url.books.porters-handbook/index.html">port 作成者のためのハンドブック </ulink> をご覧下さい。</para> - <para>さて、Ports Collection が何のために使われるものなのか、 - それを理解するための予備知識はこれで十分なので、 - 最初の port をインストールする準備ができました。 - それには二つの方法があり、以下でそれぞれについて説明しています。 - </para> - <!-- 2000/07/16:hrs - strange translation --> - - <para>実際の作業に入る前に、 - インストールする port を選ぶ必要があります。 - 選ぶ方法はいくつかありますが、最も簡単なのは - <ulink url="../../../../ports/index.html">FreeBSD ウェブサイトの - ports リスト</ulink> を利用することでしょう。 - そこにリストされている ports や、 - サイトの検索機能を使って閲覧することができます。 - 各々の port には説明文が含まれていますので、 - インストールを決める前にその port - に関する説明を読むこともできます。 - </para> - - <para>もう一つの方法は、&man.whereis.1; コマンドを使うことです。 - 単に <command>whereis <replaceable>file</replaceable></command> - と入力してください。<replaceable>file</replaceable> - の部分にはインストールしたいプログラム名を入れます。 - もし、あなたのシステム上でプログラムが見つかれば、 - それがどこにあるのかが次のように表示されます。 - </para> - - <screen>&prompt.root; <userinput>whereis lsof</userinput> -lsof: /usr/ports/sysutils/lsof</screen> - - <para>この表示は、<command>lsof</command> (システムユーティリティの一つ) が - <filename>/usr/ports/sysutils/lsof</filename> - というディレクトリに見つかったことを示しています。 - </para> - - <para>また、Ports Collection の持つ検索機能を利用して - port を検索する方法もあります。 - この検索機能を利用するには、カレントディレクトリが - <filename>/usr/ports</filename> である必要があります。 - そのディレクトリに移動したら、 - <command>make search key=<replaceable>プログラム名</replaceable></command> - と入力してください。 - <replaceable>プログラム名</replaceable>の部分には検索したいプログラム名を入れます。 - たとえば、<command>lsof</command> - を探したい場合には次のようにします。</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make search name=lsof</userinput> -Port: lsof-4.56.4 -Path: /usr/ports/sysutils/lsof -Info: Lists information about open files (similar to fstat(1)) -Maint: obrien@FreeBSD.org -Index: sysutils -B-deps: -R-deps: </screen> - - <para>出力のうち特に注意して見なければならないのは - <quote>Path:</quote> という行です。 - この行は port がどこにあるかを示しています。 - 出力される他の情報は port - をインストールする際には必要となるものではありませんので、 - ここでは触れないでおきます。</para> - - <para>もっと詳細な検索をするには、 - <command>make search key=<replaceable>string</replaceable></command> - と入力してください。 - <replaceable>string</replaceable> - の部分には検索したいテキストを入れます。 - port 名、コメント、説明文および依存情報が検索されます。 - 探しているプログラムの名前を知らない場合でも、 - ある目的に関連した ports の検索に利用できます。</para> - - <para>どちらの場合でも、 - 検索文字列中の大文字と小文字を区別せずに検索が行われるので、 - <quote>LSOF</quote> を検索した結果は、 - <quote>lsof</quote> と同じ検索結果になります。</para> - - <note> - <para>ports をインストールするには、 - <username>root</username> としてログインする必要があります。</para> - </note> - - <para>インストールしたい port が見つかったら、 - 実際のインストールに移ることができます。 - port はソースコードからアプリケーションを構築する方法を提供しますが、 - 実際のソースコードは含んでいません。 + <para>port はソースコードからアプリケーションを構築する方法を + 提供しますが、実際のソースコードは含んでいません。 ソースコードは CD-ROM やインターネットから入手できます。 ソースコードはソフトウェア作者のお気に入りの形式で配布されます。 たいてい、tar と gzip で作成された圧縮アーカイブとして配布されますが、 @@ -768,7 +824,34 @@ R-deps: </screen> どのような形式で配布されているかに関わらず、 これらのプログラムのソースコードは <quote>distfile</quote> と呼ばれています。 - distfile は CD-ROM もしくはインターネット経由で入手できます。</para> + 以下では &os; port をインストールする 2 つの方法について説明します。</para> + + <note> + <para>ports をインストールするには、 + <username>root</username> としてログインする必要があります。</para> + </note> + + <warning> + <para>port をインストールする前に、 + Ports Collection が最新であることを確認してください。 + また、そのアプリケーションに関連したセキュリティ上の問題がないことを + <ulink url="http://vuxml.freebsd.org/"></ulink> + で確認してください。</para> + + <para> + アプリケーションをインストールする前に、 + <application>portaudit</application> を使って + セキュリティに関する脆弱性を自動的に調べることができます。 + このツールは Ports Collection (<filename + role="package">security/portaudit</filename>) に用意されています。 + 新しく port をインストールする前に、 + <command>portaudit -F</command> コマンドを実行すると、 + 最新の脆弱性に関するデータベースがダウンロードされます。 + セキュリティの検査およびデータベースの更新は、 + 日々のセキュリティチェックで行なわれます。 + 詳しくは、&man.portaudit.1; および &man.periodic.8; + のマニュアルページを参照してください。</para> + </warning> <sect3 id="ports-cd"> <title>CD-ROM からの ports のインストール</title> @@ -788,9 +871,9 @@ R-deps: </screen> <para>FreeBSD CD-ROM をドライブに入れ、 <filename>/cdrom</filename> にマウントしてください - (ほかのマウントポイントを指定すると、インストールに失敗します)。 - まず、インストールしたい port のディレクトリに移動してください。 - </para> + (ほかのマウントポイントを使用したければ、 + <makevar>CD_MOUNTPTS</makevar> 変数を設定してください)。 + まず、インストールしたい port のディレクトリに移動してください。</para> <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput></screen> @@ -863,10 +946,13 @@ R-deps: </screen> port をインストールしたあとで、 新しくインストールされたコマンドを用いる前に、 <command>rehash</command> コマンドを実行する必要があります。 - 基本システム付属のシェル (たとえば <command>tcsh</command>) や - ports から利用可能なシェル - (たとえば <filename role="package">shells/zsh</filename>) - の両方で、このコマンドを実行する必要が起きます。</para> + このコマンドは <command>tcsh</command> などのシェルで動作します。 + <command>sh</command> や + <filename role="package">shells/bash</filename> + などのシェルを使っているのであれば + <command>hash -r</command> を実行してください。 + 詳細については、 + あなたの使っているシェルのドキュメントをご覧ください。</para> </note> <note> @@ -935,18 +1021,123 @@ Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% を入手したか示す行だけです。</para> <para>ports は、<envar>FTP_PASSIVE_MODE</envar>, - <envar>FTP_PROXY</envar> および <envar>FTP_PASSWORD</envar> + <envar>FTP_PROXY</envar>, <envar>FTP_PASSWORD</envar> といった環境変数を参照する &man.fetch.1; を用いてファイルをダウンロードします。 ファイアウォールの内側であったり、 FTP/HTTP プロキシを使う場合には、 これらの環境変数を設定することなります。 - 完全なリストについては &man.fetch.3; をご覧ください。</para> + 環境変数の一覧については &man.fetch.3; をご覧ください。</para> + + <para>ネットワークに常時接続できないユーザのために + <command>make <maketarget>fetch</maketarget></command> + コマンドが用意されています。 + (ネットワークに接続している時に) このコマンドを + ports のトップディレクトリ + (<filename>/usr/ports</filename>) で実行してください。 + 必要なファイルがダウンロードされます。 + このコマンドは <filename>/usr/ports/net</filename> + といった、より下の階層のカテゴリにおいても使うことができます。 + ある port がライブラリやその他の ports に依存している場合には、 + それらの distfiles + はダウンロードされ<emphasis>ない</emphasis>ことに注意してください。 + port が依存しているものもダウンロードしたければ + <maketarget>fetch</maketarget> の代わりに + <maketarget>fetch-recursive</maketarget> を使って下さい。</para> + + <note> + <para>前述した <command>make <makevar>fetch</makevar></command> + と同じように、トップディレクトリで <command>make</command> + を実行するとすべての port がビルドされます。 + しかしながら ports の中には同時に存在できないものがあったり、 + 異なる ports の別のファイルが同じ名前で + インストールされる場合があることに注意してください。</para> + </note> + + <para>めったにないことかもしれませんが、 + <makevar>MASTER_SITES</makevar> (ファイルをダウンロードしてくる場所) + に書かれているサイト以外から tarball + を持ってくることが必要になる場合があります。 + そのような場合には以下のように + <makevar>MASTER_SITES</makevar> を変更してください。</para> + + <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput> +&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \ +ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen> + + <para>上の例では <makevar>MASTER_SITES</makevar> を + <hostid role="fqdn">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</hostid> + に変更しています。</para> + + <note> + <para>ports の中にはビルドオプションを指定できる + (または要求してくる) ものがあります。 + このオプションを指定することで、 + アプリケーションの機能の一部を有効もしくは無効にできます。 + また、セキュリティオプションを設定したり、 + その他のカスタマイズを行うことができます。 + このようなアプリケーションには + <filename role="package">www/mozilla</filename>, + <filename role="package">security/gpgme</filename> や + <filename role="package">mail/sylpheed-claws</filename> + などがあります。 + 利用可能なオプションがある場合にはメッセージが表示されます。</para> + </note> + </sect3> + + <sect3> + <title>ports ディレクトリの変更</title> + + <para>distfiles や ports + ディレクトリをデフォルトのものから変更したほうが有用な場合 + (もしくは変更しなければならない場合) があります。 + <makevar>PORTSDIR</makevar> 変数と + <makevar>PREFIX</makevar> 変数を変更することで、 + 違うディレクトリを使用することができます。 + たとえば、</para> + + <screen>&prompt.root; <userinput>make PORTSDIR=/usr/home/example/ports install</userinput></screen> + + <para>とすると、ports は <filename>/usr/home/example/ports</filename> + でコンパイルされ、すべて <filename>/usr/local</filename> + 以下にインストールされます。</para> + + <screen>&prompt.root; <userinput>make PREFIX=/usr/home/example/local install</userinput></screen> + + <para>この場合、コンパイルは <filename>/usr/ports</filename> + でおこない、 + <filename>/usr/home/example/local</filename> + にインストールします。</para> + + <para>もちろん、</para> + + <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen> + + <para>とすれば両者を組み合わせることが可能です + (省略せずに記述したらこのページに収めるには長すぎるのですが、 + 考え方は理解していただけたと思います)。</para> + + <para>あるいは、これらを環境変数に設定する方法もあります。 + どのようにすれば良いかについては、 + あなたの使っているシェルのマニュアルページを参照してください。</para> + </sect3> + + <sect3> + <title><command>imake</command> の使用</title> + + <para>(X Window System に含まれる) <command>imake</command> を使用する + ports の場合は <makevar>PREFIX</makevar> が機能せず、 + <filename>/usr/X11R6</filename> にインストールしようとします。 + また、Perl 関連の ports も同様に <makevar>PREFIX</makevar> を無視して + Perl ツリーにインストールします。 + これらの ports で <makevar>PREFIX</makevar> + がきちんと参照されるように変更するのは、ほとんど不可能です。</para> + </sect3> </sect2> <sect2 id="ports-removing"> - <title>インストールされた ports の削除</title> + <title>インストールした ports の削除</title> <indexterm> <primary>ports</primary> @@ -996,32 +1187,48 @@ Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% <primary>ports</primary> <secondary>ディスク容量</secondary> </indexterm> - <para>Ports Collection を使い続けると、 - 非常に膨大なディスク容量が消費されます。 - そのため、作業用ディレクトリを + <para>Ports Collection を使い続けていると、 + そのうちディスクを食いつぶしてしまうでしょう。 + このように ports ツリーのサイズは大きくなりがちなので、 + ports からソフトウェアをビルドしてインストールした後に、 + 常に、作業用の + <filename class="directory">work</filename> ディレクトリを <command>make <makevar>clean</makevar></command> - コマンドで削除できることを知っておくと良いでしょう。 + コマンドで削除するようにしましょう。 このコマンドは、ビルドやインストールされた - port の <filename>work</filename> ディレクトリを削除します。 - また、tar ファイルを <filename>distfiles</filename> - ディレクトリから削除してしまっても大丈夫でしょうし、 - インストールされた ports も必要なくなれば削除してもよいでしょう。 + port の <filename class="directory">work</filename> + ディレクトリを削除します。 + また、配布ソースファイルを <filename class="directory">distfiles</filename> + ディレクトリから削除したり、 + 必要なくなればインストールした ports を削除してもよいでしょう。 </para> - <para><filename>refuse</filename> ファイルを使って - port のカテゴリを制限することもできます。 + <para><filename>refuse</filename> ファイルを使って、 + 利用できる port のカテゴリを制限することもできます。 <application>CVSup</application> は、 このファイルにエントリされたカテゴリに属するファイルを更新しません。 - </para> + <filename>refuse</filename> ファイルに関するより詳しい説明は <xref + linkend="cvsup-refuse-file"> にあります。</para> </sect2> <sect2 id="ports-upgrading"> <title>ports のアップグレード</title> <indexterm> + <primary>portupgrade</primary> + </indexterm> + <indexterm> <primary>ports</primary> <secondary>アップグレード</secondary> </indexterm> + <note> + <para>Ports Collection を更新したら、port をアップグレードする前に + <filename>/usr/ports/UPDATING</filename> + ファイルに目を通してください。 + このファイルには + port をアップグレードする際にユーザが遭遇するであろう問題や、 + 追加で必要な作業などが記述されています。</para> + </note> <para>ports を最新の状態に維持し続けるのはとても大変です。 たとえば、port をアップグレードする作業は次のようになります。 @@ -1031,7 +1238,7 @@ Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% 5 つの ports のアップグレードを考えただけでも大変ですよね? このようにシステム管理者にとってアプリケーションの管理は大きな悩みの種ですが、 この問題を解決してくれるユーティリティがあります。 - たとえば <filename role="port">sysutils/portupgrade</filename> + たとえば <filename role="package">sysutils/portupgrade</filename> は、あなたの代わりにこれらの作業をすべて行ってくれます! 通常の port をインストールするように <command>make <makevar>install clean</makevar></command> @@ -1047,7 +1254,53 @@ Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% ports <filename>INDEX</filename> ファイルが調べられ、 更新の必要がある ports のダウンロード、ビルド、バックアップ、インストール、そしてクリーンアップが行われます。 - このようなユーティリティは他にも <filename>ports/sysutils</filename> + さまざまな利用状況に対応するため、 + <application>portupgrade</application> + にはたくさんのオプションがあります。 + 以下では重要なオプションについて紹介します。</para> + + <para>データベース上のすべてのアプリケーションではなく、 + ある特定のアプリケーションだけを更新したいのであれば、 + <command>portupgrade <replaceable>pkgname</replaceable></command> + を実行してください。 + アップグレードしたいアプリケーションに依存するすべての packages + を同時に更新したい場合には、<option>-r</option> + オプションを付けて <application>portupgrade</application> + を実行してください。 + アップグレードしたいアプリケーションが必要とするすべての + アプリケーションを更新したい場合には、 + <option>-R</option> オプションを使ってください。</para> + + <para>ports ではなく packages を用いてインストールを行ないたい場合には、 + <option>-P</option> オプションを使ってください。 + このオプションを使うと、<application>portupgrade</application> は + <envar>PKG_PATH</envar> に登録されているローカルディレクトリを検索します。 + ローカルに packages が見つからなければ、 + リモートサイトからダウンロードを試みます。 + packages をローカルに見つけることができず、 + リモートサイトからもダウンロードできない場合には、 + <application>portupgrade</application> + は ports からインストールを行ないます。 + ports を使用したくなければ、<option>-PP</option> + オプションを指定してください。</para> + + <para>また、ビルドやインストールを行なわず、 + distfiles (<option>-P</option> が指定されている場合は packages) + だけをダウンロードしたければ、 + <option>-F</option> オプションを指定してください。 + 詳細は &man.portupgrade.1; を参照してください。</para> + + <note> + <para>定期的に、もしくは <application>portupgrade</application> + が要求してきたら、package データベースの整合性を保つために + <command>pkgdb -F</command> を実行してください。 + package データベースの更新中に + <application>portupgrade</application> を中止しないでください。 + 整合性のないデータベースが作成されることがあります。</para> + </note> + + <para> + このようなユーティリティは他にも <filename>ports/sysutils</filename> ディレクトリにあるので、目的のものを探してください。</para> </sect2> </sect1> @@ -1085,7 +1338,7 @@ Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% <para>もし、アプリケーションのバージョンがわからなければ、 次のコマンドを実行してください。</para> - <screen>&prompt.root; <userinput>pkg_info | grep <replaceable>foopackage</replaceable></userinput></screen> + <screen>&prompt.root; <userinput>pkg_info | grep -i <replaceable>foopackage</replaceable></userinput></screen> <para>インストールされた packages の中から、名前に <replaceable>foopackage</replaceable> を含む package が表示されます。 @@ -1111,636 +1364,93 @@ Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% <para>ウェブサイトが存在すると、 URL が <literal>WWW:</literal> を含む行に表示されます。</para> </listitem> + + <listitem> + <para>(インターネットサーバのように) + システム起動時に立ち上げる必要のある port は、 + サンプルスクリプトを通常 + <filename>/usr/local/etc/rc.d</filename> にインストールします。 + このスクリプトを調べ、 + 必要があれば編集したりスクリプトの名前を変更してください。 + 詳細は <link + linkend="configtuning-starting-services">サービスの起動</link> + をご覧ください。</para> + </listitem> </itemizedlist> </sect1> - <sect1 id="ports-trouble"> - <title>トラブルシューティング</title> - - <para>このセクションでは、Ports Collection - について良く質問される質問と、 - いくつかの基本的なトラブルシューティングテクニック、 - そして <link linkend="ports-broken">port - がうまく動かない</link>場合にできることについて扱います。</para> - - <sect2 id="ports-questions"> - <title>質問と回答集</title> - - <qandaset> - <qandaentry> - <question> - <para>私はモデムについての議論を - しているのかと思っていました??!</para> - </question> - - <answer> - <para>なるほど。 - あなたはきっと、 - コンピュータの背面についているシリアルポートのことだと思ってしまったのでしょう。 - あるオペレーティングシステムから、 - 別のオペレーティングシステムへとプログラムを移植することを - <quote>porting</quote> というのですが、 - ここでわたしたちは <quote>porting</quote> - の結果という意味で <quote>port</quote> を使っています。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para id="ports-patch">パッチ (patch) とは何ですか?</para> - </question> - - <answer> - <para>パッチとは、 - あるバージョンから他のバージョンへどのように変更するかを - 示す、(通常は) 小さなファイルです。 - <quote>23 行目を削除</quote>、 - <quote>468 行目の後にこれらの 2 行を追加</quote>、 - または <quote>197 - 行目をこのように変更</quote> というような内容を含んでいます。 - これは、&man.diff.1; - という名前のプログラムで生成されます。</para> - </answer> - </qandaentry> - - <indexterm><primary>tarball</primary></indexterm> - <qandaentry> - <question> - <para id="ports-tarball">tarball とは一体何ですか?</para> - </question> - - <answer> - <para><filename>.tar</filename> または - <filename>.tar.gz</filename> という拡張子を持つファイルです - (<filename>.tar.Z</filename> - のようなバリエーションもありますし、 - DOS のファイルシステム用に - <filename>.tgz</filename> - と短縮される場合もあります)。</para> - - <para>これは基本的にファイルを一つにまとめた - (<filename>.tar</filename>) ディレクトリツリーです。 - 圧縮されている (<filename>.gz</filename>) 場合もあります。 - 元々 <emphasis>T</emphasis>ape - <emphasis>AR</emphasis>chives (訳注: テープアーカイブ) - (このため <command>tar</command> という名前なのです) - で使われていたものなのですが、 - インターネット上でプログラムのソースコードを配布するために - 広く使われている方法です。</para> - - <para>これらのファイルの中身を見たり、 - 展開したりすることもできます。FreeBSD - の基本システムに付属する Unix 標準の &man.tar.1; - コマンドを使ってみると次のようになります。</para> - - <screen>&prompt.user; <userinput>tar tvzf foobar.tar.gz</userinput> -&prompt.user; <userinput>tar xzvf foobar.tar.gz</userinput> -&prompt.user; <userinput>tar tvf foobar.tar</userinput> -&prompt.user; <userinput>tar xvf foobar.tar</userinput></screen> - </answer> - </qandaentry> - - <indexterm><primary>チェックサム</primary></indexterm> - <qandaentry> - <question> - <para id="ports-checksum">チェックサムとは何ですか?</para> - </question> - - <answer> - <para>これは、 - チェックしたいファイル中のすべてのデータを加えて生成した - 数値です。何か文字が書き換わっていたら、 - チェックサムが一致しなくなります。そのため、 - 単純な比較だけで違いを見つけることができるのです。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>今まで「CD-ROM からの ports のコンパイル」にあるようにして - ports をインストールできていたのですが、 - <application>kermit</application> のインストールをしようとするとうまくいきません。</para> - - <screen>&prompt.root; <userinput>make install</userinput> ->> cku190.tar.gz doesn't seem to exist on this system. ->> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.</screen> - - <para>なぜ cku190.tar.gz が見つからないのでしょうか? - 不良品の CDROM を買ってしまったのでしょうか?</para> - </question> - - <answer> - <para><link linkend="ports-cd">CD-ROM からの ports - のインストール</link>のセクションで説明されているとおり、 - ports の一部にライセンス上の制限から CDROM - には収録できない種類のものが存在します。 - <application>kermit</application> はその一例です。 - <application>kermit</application> のライセンス条件は tarball を CDROM - に収録することを禁じているため、 - 申し訳ありませんが手動で tarball を取得してください。</para> - - <para>質問にあるようなエラーメッセージが表示されるのは、 - あなたがそのときにインターネットへ接続していなかったことによります。 - 一度 <makevar>MASTER_SITES</makevar> のいずれかから - (<filename>Makefile</filename> の中に書いてあります) - ダウンロードしておけば、プロセスを再開することができます。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>kermit の tarball を入手しましたが、 - <filename>/usr/ports/distfiles</filename> に - ファイルを置こうとすると、 - 書き込み権がないというエラーがでます。</para> - </question> - - <answer> - <para>ports はダウンロードした tarball を - <filename>/usr/ports/distfiles</filename> - に置こうとしますが、システム管理者の多くはこのディレクトリに - リモートのファイルサーバやローカルの読み出し専用の CD-ROM - に対するシンボリックリンクを作成しています。 - このような場合には、以下のようにして distfiles - を格納するディレクトリを変更してください。</para> - - <screen>&prompt.root; <userinput>make DISTDIR=<replaceable>/local/dir/with/write/permission</replaceable> install</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>ports は、すべてを <filename>/usr/ports</filename> - に置いたときだけ動作するのでしょうか? - システムの管理者によると、私の個人的なファイルは - <filename>/u/people/guests/wurzburger</filename> - に入れなければならないのですが、 - これではうまくいかないように思います。</para> - </question> - - <answer> - <para><makevar>PORTSDIR</makevar> 変数と - <makevar>PREFIX</makevar> 変数を変更することで、 - 違うディレクトリを 使用することができます。 - たとえば、</para> - - <screen>&prompt.root; <userinput>make PORTSDIR=/u/people/guests/wurzburger/ports install</userinput></screen> - - <para>とすると、ports は - <filename>/u/people/guests/wurzburger/ports</filename> - でコンパイルされ、すべて <filename>/usr/local</filename> - 以下にインストールされます。</para> - - <screen>&prompt.root; <userinput>make PREFIX=/u/people/guests/wurzburger/local install</userinput></screen> - - <para>この場合、コンパイルは <filename>/usr/ports</filename> - でおこない、 - <filename>/u/people/guests/wurzburger/local</filename> - にインストールします。</para> - - <para>もちろん、</para> - - <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen> - - <para>とすれば両者を組み合わせることが可能です - (省略せずに記述したらこのページに収めるには長すぎるのですが、 - 考え方は理解していただけたと思います)。</para> - - <indexterm><primary>imake</primary></indexterm> - - <para>(X Window System に含まれる) &man.imake.1; を使用する - ports の場合は <makevar>PREFIX</makevar> が機能せず、 - <filename>/usr/X11R6</filename> の下へインストールしようとします。 - また、Perl 関連の ports も同様に <makevar>PREFIX</makevar> を無視して - Perl ツリーにインストールします。 - これらの ports で <makevar>PREFIX</makevar> - がきちんと参照されるように変更するのは、ほとんど不可能です。</para> - - <para>もし ports をインストールするたびにこれらを毎回タイプするのが気に入らないのであれば、 - これらを環境変数にセットしてしまうという手があります。 - どのようにすれば良いかについては、 - あなたの使っているシェルのマニュアルページを参照してください。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>わたしは FreeBSD の CD-ROM を持っていませんが、 - すべての tarball を システムに置いておきたいのです。 - そうすれば ports - をインストール するたびに毎回ダウンロードが終わるのを待たなくてすむでしょう。 - これを一度におこなう簡単な方法はありませんか?</para> - </question> - - <answer> - <para>Ports Collection 全体の tarball を持ってくるには、 - 次のようにします。</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make fetch</userinput></screen> - - <para>ports の下の一つのディレクトリの tarball - を持ってくるには、次のようにします。</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput> -&prompt.root; <userinput>make fetch</userinput></screen> - - <para>ports を一つだけ持ってくる方法は、 - もうお分かりでしょう。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>近くにある FreeBSD のミラーサイトから - tarball を持ってくる方がおそらく速いはずです。 - <makevar>MASTER_SITES</makevar> に書かれているサイト以外から持ってくるように - ports に指示する方法はありませんか?</para> - </question> - - <answer> - <para>もちろんあります。たとえば - <hostid role="fqdn">ftp.FreeBSD.org</hostid> が - <makevar>MASTER_SITES</makevar> に書かれている - サイトより近いとしたら、以下のようにしてください。</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput> -&prompt.root; <userinput>make MASTER_SITE_OVERRIDE=ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para><command>make</command> がダウンロードしようとする前に、 - どんなファイルが必要とするか知りたいのですが。</para> - </question> - - <answer> - <para><command>make fetch-list</command> とすると、ports - に必要なファイルの一覧を表示できます。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>ports のコンパイルを途中で止める方法はありますか? - 私はインストールをする前に - いろいろとソースコードを解析したいのですが、毎回 - <keycombo action="simul"> - <keycap>Ctrl</keycap> - <keycap>C</keycap> - </keycombo> - を打たなければならないのが少し面倒です。</para> - </question> - - <answer> - <para><command>make extract</command> を実行すると、 - ファイル転送とソースコードの展開まで行なったところで停止します。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>自分で ports を作ろうとしています。 - わたしの作ったパッチが正しく処理できることを確認できるように、 - コンパイルを止めたいのです。 - パッチのための <command>make extract</command> - のようなものはありませんか?</para> - </question> - - <answer> - <para>あります。<command>make patch</command> - があなたの望むものです。 - おそらく - <makevar>PATCH_DEBUG</makevar> - オプションも同様に役に立つことでしょう。 - あなたの努力に感謝いたします!!</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>あるコンパイルオプションはバグの原因になるという話を聞きました。 - 本当なのでしょうか? - どうやったら正しい設定で ports - をコンパイルできますか?</para> - </question> - - <answer> - <para>本当です。 - <command>gcc</command> の バージョン 2.6.3 - (FreeBSD 2.1.0 と 2.1.5 に付属している バージョン) では、 - <option>-O2</option> オプションを - <option>-fno-strength-reduce</option> オプションなしで - 使うと、バグのあるコードを出力します (ほとんどの ports は - <option>-O2</option> オプションを使いません)。 - コンパイルオプションは次のように定義<emphasis>すべき</emphasis>です。</para> - - <screen>&prompt.root; <userinput>make CFLAGS='-O2 -fno-strength-reduce' install</userinput></screen> - - <para>これを <filename>/etc/make.conf</filename> - に書いておくこともできますが、 - 残念なことにすべての ports - がこの指定を尊重してくれるわけではありません。 - もっとも確実なのは <command>make configure</command> - を実行し、ソースディレクトリの <filename>Makefile</filename> - を見て、手で修正することですが、 - ソースが多くのサブディレクトリに分かれていて、 - 各々に <filename>Makefile</filename> - がある場合は大変な仕事になります。</para> - - <para>FreeBSD の標準コンパイルオプションは非常に保守的ですので、 - 変更していなければ問題となることはないでしょう。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>ports がたくさんありすぎて、 - わたしの欲しいものがなかなか見つけられません。 - どんな ports が使えるのか、リストはどこかにありませんか?</para> - </question> - - <answer> - <para><filename>/usr/ports</filename> の中にある - <filename>INDEX</filename> ファイルを見てみましょう。 - また、あるキーワードで ports コレクションを検索することも可能です。 - たとえば以下のようにすれば、プログラミング言語 LISP に関連した - ports を探すことができます。</para> - - <screen>&prompt.user; <userinput>cd /usr/ports</userinput> -&prompt.user; <userinput>make search key=lisp</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para><literal>foo</literal> ports - のインストールを行うと、それのコンパイルは - すぐに停止して、<literal>bar</literal> ports - のコンパイルが始まってしまいます。一体どうして?</para> - </question> - - <answer> - <para><literal>foo</literal> ports が、 - <literal>bar</literal> ports - の提供する何らかの機能を必要としているからです。 - たとえば <literal>foo</literal> が画像を扱うもので - <literal>bar</literal> - がその画像処理に必要なライブラリを持っている場合などです。 - もしくは <literal>bar</literal> が - <literal>foo</literal> - をコンパイルするのに必要なツールなのかもしれません。 - <literal>bar</literal> がインストールされると、 - 自動的に <literal>foo</literal> のコンパイルが再開されます。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para id="ports-remove">ports から - <literal>grizzle</literal> - プログラムをインストールしましたが、まったく - ディスクスペースの浪費です。削除したいのですが、 - すべてのファイルがどこへインストールされたのかわかりません。 - 何か手がかりはありませんか?</para> - </question> - - <answer> - <para>大丈夫、次のように入力してください。</para> - - <screen>&prompt.root; <userinput>pkg_delete grizzle-6.5</userinput></screen> - - <para>もしくは、次のよう入力します。</para> - - <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/grizzle</replaceable></userinput> -&prompt.root; <userinput>make deinstall</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>ちょっと待ってください。 - 削除しようとするコマンドのバージョン番号を - 知っていなくてはならないのでしょうか? - あなたは、わたしがバージョン番号を - 覚えていると本気で思っているのですか?</para> - </question> - - <answer> - <para>そんなことはありません。 - バージョン番号は次のようにすればわかります。</para> - - <screen>&prompt.root; <userinput>pkg_info -I 'grizzle*'</userinput> -Information for grizzle-6.5: -grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up arcade game.</screen> - - <para>バージョン番号は、<command>pkg_info</command> または - <command>ls /var/db/pkg</command> と入力してもわかります。</para> - - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>ディスク容量のことなのですが、ports - のディレクトリは非常に膨大な容量を使うように見えます。 - 残しておいた方がよいのでしょうか? - それとも削除してしまって構わないのでしょうか?</para> - </question> - - <answer> - <para>はい。インストールが首尾よく終わり、 - もうソースコードが必要でないと思うなら、 - それらを残しておく理由はないでしょう。 - 一番確実な方法は、次のとおりです。</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make clean</userinput></screen> - - <para>これはすべての ports のサブディレクトリを調べ、 - 各 ports のスケルトン以外の削除をおこないます。</para> - - <tip><para>各サブディレクトリの <filename>Makefile</filename> - を再帰的に読み込まなくても削除をおこなえます。 - たとえば、次のようにすると - <filename>work/</filename> サブディレクトリを直接削除できます。 - <screen>&prompt.root; <userinput>find /usr/ports -depth -name work -exec rm -rf {} \;</userinput></screen></para> - </tip> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>これを試してみたのですが、tarball や ports - で使われたファイルが <filename>distfiles</filename> - ディレクトリに残っています。 - これも削除してしまっても大丈夫ですか?</para> - </question> - - <answer> - <para>はい。それを使った作業が終わったのであれば、 - 削除してしまっても大丈夫です。 - 手動でファイルを操作するか、 - もしくは <command>make distclean</command> - を使えば削除することができます。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>わたしはとてもとてもたくさんのプログラムを楽しみたいのです。 - 一度にすべての ports - をインストールする方法はありませんか?</para> - </question> - - <answer> - <para>次のようにしてください。</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make install</userinput></screen> - - <para>ports の中には、 - 同じ名前でインストールを行なうものがあるということに注意してください。 - 二つのグラフィック ports をインストールして、 - それらが両方とも - <filename>/usr/local/bin/plot</filename> - をインストールする場合などは明らかに問題となるでしょう。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>やってみました。 - 時間がとてもかかるだろうと思ったので、 - そのまま実行を続けさせて、わたしは寝ました。 - 翌朝コンピュータを見てみると、 - 三つ半の ports しか処理が終わっていませんでした。 - 何か悪かったのでしょうか?</para> - </question> - - <answer> - <para>ports の中には、 - わたしたちの決められないこと - (たとえば、あなたが A4 の 用紙に印刷したいのか、US - レターサイズの用紙に印刷したいのかなど) - について質問してくるものがあるからです。 - それらの質問には手動で答える必要があります。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>一日中モニタの前に座って過ごしたりしたくないのですが、 - 何か良いアイディアはありませんか?</para> - </question> - - <answer> - <para>では、あなたが寝に / 仕事に / - 公園にいく前に以下を実行してください。</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make -DBATCH install</userinput></screen> - - <para>これでユーザの入力を要求<emphasis>しない</emphasis>すべての ports - をインストールします。 - そして戻ってきてから次のように実行してください。</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make -DINTERACTIVE install</userinput></screen> - - <para>そして残りの作業を実行してください。</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>わたしたちは Ports Collection にある - <literal>frobble</literal> を使っています。 - ですが、わたしたちの必要に応じて ports - を変更したところがあるのです。 - 自分で package を作って、 - それをわたしたちのサイトのまわりに簡単に配布できるような方法がありますか?</para> - </question> - - <answer> - <para>もちろんあります。 - 変更点をパッチにする方法は知っていますよね?</para> - - <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/frobble</replaceable></userinput> -&prompt.root; <userinput>make extract</userinput> -&prompt.root; <userinput>cd work/frobble-2.8</userinput> -[あなたのパッチをあててください] -&prompt.root; <userinput>cd ../..</userinput> -&prompt.root; <userinput>make package</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>この ports の技術は本当に賢いですね。 - わたしはこれがどのようにして動いているのか知りたいのですが、 - その秘密とは何ですか?</para> - </question> - - <answer> - <para>秘密なんて一切ありません。 - <filename>/usr/ports/Mk/</filename> ディレクトリにある - <filename>bsd.port.mk</filename> と - <filename>bsd.port.subdir.mk</filename> - ファイルを見てください。</para> - - <para>(複雑なシェルスクリプトを嫌う読者は、 - このディレクトリにあるファイルを見ない方が良いでしょう。)</para> - </answer> - </qandaentry> - </qandaset> - </sect2> - - <sect2 id="ports-broken"> - <title>たすけて! port がうまく動かない!</title> + <sect1 id="ports-broken"> + <title>うまく動作しない ports に遭遇した場合には</title> <para>port がうまく動作しない状況に遭遇したら、 あなたにできることは次のようなことしかありません。</para> <orderedlist> - <listitem> - <para>自分で直しましょう! - "Ports" システムに関する詳細な情報は <ulink - url="../porters-handbook/index.html"> - port 作成者のためのハンドブック</ulink> にあります。 - このセクションを読むと、壊れてしまった port を直したり、 - 自分で作った port を提出したりできるようになります!</para> + <listitem> + <para>その port に対する修正案が提出されていないかどうかを + <ulink url="&url.base;/support.html#gnats">障害報告 + (Problem Report) データベース</ulink> で調べてください。 + もし提案されていれば、 + その修正を使うことができるかもしれません。</para> </listitem> <listitem> - <para>苦情を言いましょう — <emphasis>ただし電子メールで</emphasis>! - まず port の保守担当者に電子メールを送ってください。 + <para>port の保守担当者に対応してもらいましょう。 <command>make maintainer</command> と入力するか、 <filename>Makefile</filename> を直接読み、 保守担当者の電子メールアドレスを調べます。 メールを送る際には、port 名とバージョン番号 (<filename>Makefile</filename> の <literal>$FreeBSD:</literal> 行)、 - そしてエラーが出力されるまでの出力ログを忘れずに添付してください。 + そしてエラーが出力されるまでの出力ログを忘れずに添付してください。</para> + + <note> + <para>特定の保守担当者が存在せず、かわりに <ulink + url="&url.articles.mailing-list-faq;/article.html">メーリングリスト + </ulink> が保守している ports があります。 + そのような場合には、メールアドレスは + <email role="nolink">freebsd-listname@FreeBSD.org</email> + のようになります。 + 質問する際には、このことに気をつけてください。</para> + + <para>特に <email role="nolink">freebsd-ports@FreeBSD.org</email> + が保守している ports には、保守担当者が本当にいません。 + そのメーリングリストを購読する人々からなるコミュニティが、 + 修正や対応をおこなっています。 + もっとボランティアが必要です!</para> + </note> + + <para> 保守担当者から返信がなければ、&man.send-pr.1; - を使ってバグレポートを提出しても構いません。</para> + を使ってバグレポートを提出しても構いません (<ulink + url="&url.articles.problem-reports;/article.html"> + FreeBSD 障害報告の書き方</ulink> をご覧ください)。</para> + </listitem> + + <listitem> + <para>自分で直しましょう! + <quote>Ports</quote> システムに関する詳細な情報は <ulink + url="&url.books.porters-handbook/index.html"> + port 作成者のためのハンドブック</ulink> にあります。 + このセクションを読むと、壊れてしまった port を直したり、 + 自分で作った port を提出したりできるようになります!</para> </listitem> <listitem> <para>近くの FTP サイトから package を入手しましょう。 <quote>マスタ</quote> package コレクションは、 <hostid role="fqdn">ftp.FreeBSD.org</hostid> の - <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/" - >package のディレクトリ</ulink>にありますが、 - まずはあなたの地域のミラーサイトを<emphasis>最初に</emphasis>調べてください。 + <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/"> + package のディレクトリ</ulink> にありますが、 + まずはあなたの地域の <ulink + url="http://mirrorlist.FreeBSD.org/">ミラーサイト</ulink> + を<emphasis>最初に</emphasis>調べてください。 ソースからコンパイルすることを試みるより確実ですし、 時間もかかりません。 package をシステムにインストールするには、&man.pkg.add.1; を使います。 </para> </listitem> </orderedlist> - </sect2> </sect1> </chapter> |