Merge the following from the English version:

1.113 -> 1.114 books/handbook/ports/chapter.sgml

Submitteg by:	Ryusuke Suzuki <ryusuke@nucl.sci.hokudai.ac.jp>
Reference:	[doc-jp-work 793]
This commit is contained in:
Hideyuki KURASHINA 2004-01-10 15:27:46 +00:00
parent 18e46c1599
commit 1986a2d6aa
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=19578

View file

@ -2,48 +2,282 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.113
Original revision: 1.114
$FreeBSD$
-->
<chapter id="ports">
<title>アプリケーションのインストール: Ports Collection</title>
<para><emphasis>改訂: &a.jim;、
1999 年 11 月 22 日</emphasis></para>
<para><emphasis>原作: さまざまな人々</emphasis></para>
<title>アプリケーションのインストール - packages と ports</title>
<sect1>
<title>この章では</title>
<para>FreeBSD Ports Collection を利用することで、
非常に幅広いアプリケーションのコンパイルとインストールを
最小限の労力で行なうことができます。</para>
<para>FreeBSD の基本システムだけでは、
それほどたくさんのことを行うことはできません。
もしあなたがオペレーティングシステムの開発者であれば、
FreeBSD の基本システムにはあなたの望むすべてがあるでしょう。
しかし、そのような利用を考えていなければ、
&mdash; ウェブサーバ、メールリーダ、
KDE または GNOME のようなグラフィカル環境、
といったソフトウェアをインストールしようと思うでしょう。</para>
<para>それは普通<link linkend="ports-skeleton">スケルトン</link>と呼ばれる、
アプリケーションを FreeBSD
上でコンパイルしインストールするために必要となる最小限のファイルのセットで構成されてます。
</para>
<para>すでに Unix システムを使ったことのある人ならば、
サードパーティ製ソフトウェアの典型的なインストール手順が
以下のようになることをご存知でしょう。</para>
<para>やってみたことのある方はよくご存知でしょうが、
オープンな規格とは全くの誇大広告であって、
あるプログラムを異なるバージョンの Unix 上で動作させることは退屈で手間のかかる仕事です。
求めているプログラムが自分のシステムでうまくコンパイルでき、
正しいところにインストールできて完璧に動作するとしたらとてもラッキーなのですが、
あいにくこれは滅多にないことなのです。
ほとんどのプログラムについてあなたは髪を掻きむしることになるでしょうし、
かなりのプログラムでは、白髪混じりの頭になってしまったり、
あるいは慢性の脱毛症にすらなってしまうかもしれません…。</para>
<!-- 2000/07/16:hrs - strange translation -->
<procedure>
<step>
<para>ソースコード、またはバイナリ形式で
配布されているソフトウェアをダウンロードする。</para>
</step>
<para>Ports Collection の基本的なアイディアは、
適切に動作させるために必要な複雑な手順のすべてを取り除き、
インストールを簡単で楽な作業にすることにあります。
Ports Collection を利用すれば、大変な作業は必要ありません。
Ports Collection に含まれる ports は、
単に <command>make install</command>
と入力するだけでインストールできるのです。</para>
<step>
<para>配布時のフォーマット (一般的には
&man.compress.1; または &man.gzip.1; で圧縮された tarball)
からソフトウェアを取り出す。</para>
</step>
<step>
<para>ドキュメントを探しだし
(おそらく <filename>README</filename> ファイル、あるいは
<filename>doc/</filename> サブディレクト中のファイル)、
ソフトウェアのインストール方法を調べる。</para>
</step>
<step>
<para>ソース形式でソフトウェアが配布されている場合はコンパイルを行う。
ここでは、<filename>Makefile</filename> の編集、
または、<command>configure</command> スクリプトの実行、
あるいは他の作業を伴うことがある。 </para>
</step>
<step>
<para>ソフトウェアの動作を確認し、インストールする。</para>
</step>
</procedure>
<para>すべてがうまくいったならば、インストール作業は以上です。
もしインストールしているソフトウェアパッケージが、
FreeBSD を意識して移植されたものでなければ、
適切に動くようコードを調べ、編集する必要があるかもしれません。</para>
<para>あなたが望むのであれば、FreeBSD 上へのソフトウェアのインストールに
<quote>従来</quote> の方法を使い続けることができます。
しかしながら、FreeBSD は
インストール時にかかるたくさんの労力を軽減する 2 つの技術、
すなわち packages と ports を提供しています。
この文書を書いている時点では、
4,000 を越えるサードパーティ製アプリケーションがこれらの方法で
利用可能となっています。</para>
<para>FreeBSD package では、いかなるアプリケーションに対しても
ダウンロードする必要のあるファイルはただ一つです。
package には、コンパイル済みのアプリケーションの全コマンド、
各種設定ファイルやドキュメントが含まれています。
FreeBSD に用意されている
&man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1;
といった <literal>pkg_*</literal> コマンドで、
ダウンロードした package ファイルを扱うことができます。</para>
<para>新しいアプリケーションをインストールするには、
たった一つのコマンドを実行するだけです。</para>
<para>FreeBSD port は、アプリケーションをソースコードからコンパイルする際の
処理を自動化するように設計されたファイルの集まりです。</para>
<para>プログラムをコンパイルする時のことを思い出して下さい。
通常、とてもたくさんの手順
(展開、パッチ作業、コンパイル、インストール)
を踏まなくてはなりません。
port を構成するファイルは、
これらすべての作業をあなたの代わりに行うために必要な情報を含んでいます。
いくつかの簡単なコマンドを実行すると、
自動的にアプリケーションのソースコードがダウンロードされ、展開、
パッチ作業、コンパイル、そして、インストール作業が行われます。</para>
<para>さらに ports システムは、<literal>pkg_*</literal> コマンドで
扱うことのできる packages を生成することもできます。</para>
<para>packages と ports は<emphasis>依存関係</emphasis>を理解します。
ある特定のライブラリに依存する
アプリケーションをインストールするとします。
また、アプリケーションとライブラリは FreeBSD ports や packages によって
入手可能であるとします。
アプリケーションを追加するために
<command>pkg_add</command> コマンドまたは ports システムを用いると、
インストールされていないライブラリが検出され、
先に依存するライブラリがインストールされます。</para>
<para>2 つの技術が非常に類似していて、
なぜ FreeBSD がわざわざ両者を採用しているのか不思議に思うでしょう。
packages と ports にはそれぞれ独自の特徴があり、
どちらを使うかはあなたの好みによります。</para>
<itemizedlist>
<title>package の利点</title>
<listitem>
<para>一般的に、あるアプリケーションの package の tarball は、
ソースコードを含む tarball より小さなサイズとなります。</para>
</listitem>
<listitem>
<para>packages はコンパイル作業を必要としません。
このことは、<application>Mozilla</application>,
<application>KDE</application>,
または <application>GNOME</application>
といった大きなアプリケーションで重要となります。
特にシステムが遅い場合にはなおさら重要です。</para>
</listitem>
<listitem>
<para>packages を用いれば、
ソフトウェアのコンパイルに関する知識は必要ありません。</para>
</listitem>
</itemizedlist>
<itemizedlist>
<title>ports の利点</title>
<listitem>
<para>packages は、通常最も多くのシステムで実行できるように、
非常に保守的な設定で構築されています。
port からインストールすることで、
たとえば 686 プロセッサに特化したコードを生成するような
コンパイルオプションを指定できます。 </para>
</listitem>
<listitem>
<para>packages のなかには、コンパイル時に
プログラムの機能を決めるようなオプションを設定するものがあります。
たとえば、<application>Apache</application> は多種多様な
ビルトインオプションを設定できます。
port から構築することで、デフォルトオプションではなく、
自分でオプションを設定することができます。</para>
<para>設定を区別するために、同じアプリケーションに対して
複数の packages が存在することがあります。
たとえば、<application>Ghostscript</application> は
X11 サーバーがインストールされているかどうかにより、
<filename>ghostscript</filename> package と
<filename>ghostscript-nox11</filename> package
が選択可能となっています。
packages でもこのような方法が可能ですが、
アプリケーションのコンパイルオプションが
さらに用意されている場合は困難となります。</para>
</listitem>
<listitem>
<para>ライセンス条項で、
バイナリでの配布を禁止しているソフトウェアがあります。
それらはソースコードで配布されなくてはいけません。</para>
</listitem>
<listitem>
<para>バイナリ配布を信用していない人もいます。
ソースコードがあれば、少なくともソースコードを読んで
(理論的には) 潜在的な問題点を自分で見つけ出すことができます。</para>
</listitem>
<listitem>
<para>ローカルなパッチがある場合、
それを適用するためにソースコードが必要になります。</para>
</listitem>
<listitem>
<para>ソースコードを手元に置いておきたい人たちもいます。
彼らは、退屈したときに眺めたり、あちこち解析してみたり、
ソースコードを借用したり (もちろん、
ライセンスが許せばの話ですが) するのです。</para>
</listitem>
</itemizedlist>
<para>この章では、packages と ports を用いた FreeBSD 上での
サードパーティ製ソフトウェアの
インストール方法や管理方法について説明します。</para>
</sect1>
<sect1>
<title>アプリケーションの探し方</title>
<para>どんなアプリケーションをインストールするにしても、
まずあなたが何を望んで、
またその名前がなんというのかを理解している必要があります。</para>
<para>FreeBSD 上で利用可能なアプリケーションのリストは常に増えています。
現在 4,000 以上ものアプリケーションが
packages または ports として利用可能です。
あなたの望むものは多くの方法で探すことができます。</para>
<itemizedlist>
<listitem>
<para>FreeBSD ウェブサイトは、
利用可能なすべてのアプリケーションの検索できる最新の一覧を
<ulink url="http://www.FreeBSD.org/ports/">http://www.FreeBSD.org/ports/</ulink>
で公開しています。
アプリケーションの名前はカテゴリに分類されており、
(名前を知っているならば) 名前で検索できます。
また、カテゴリ中の利用可能な
すべてのアプリケーションを表示させることもできます。</para>
</listitem>
<listitem>
<para>Dan Langille は
<ulink url="http://www.freshports.org/">http://www.freshports.org/</ulink>
で FreshPorts を公開しています。
FreshPorts は ports ツリー中のアプリケーションの変更を追跡します。
一つまたはそれ以上の ports を <quote>監視</quote> することができ、
変更があるとメールで更新情報を送ってくれます。</para>
</listitem>
<listitem>
<para>ご希望のアプリケーションの名前がわからなければ、
FreshMeat
(<ulink url="http://www.freshmeat.net/">http://www.freshmeat.net/</ulink>)、
または、AppWatch
(<ulink url="http://www.appwatch.com/">http://www.appwatch.com/</ulink>)
のようなサイトでアプリケーションを探して下さい。
その後、そのアプリケーションが ports で利用可能かどうかを
FreeBSD サイトで調べて下さい。</para>
</listitem>
</itemizedlist>
</sect1>
<sect1>
<title>packages システムの利用</title>
<sect2>
<title>package のインストール</title>
<para>インストールするアプリケーションを決めたら、
package ファイルをダウンロードしてインストールすることになります。</para>
<para>これを行う方法はいくつかあります。</para>
<example>
<title>さまざまな方法によるダウンロードとインストール</title>
<para></para>
</example>
</sect2>
<sect2>
<title>package の削除</title>
<para></para>
</sect2>
<sect2>
<title>package の更新</title>
<para></para>
</sect2>
<sect2>
<title></title>
<para></para>
</sect2>
</sect1>
<sect1 id="ports-using">
@ -407,82 +641,6 @@ Receiving xchat-1.3.8.tar.bz2 (305543 bytes): 100%
の結果という意味で <quote>port</quote> を使っています。</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>わたしは、標準に含まれないプログラムのインストールには
packages を使うものだと思っていたのですが。</para>
</question>
<answer>
<para>そのとおり。
通常は packages が最も手早くて簡単な方法です。</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>それでは、どうして面倒な ports があるのですか?</para>
</question>
<answer>
<para>いくつかの理由があります。</para>
<orderedlist>
<listitem>
<para>ライセンス条項に、
バイナリではなくソースコードでの配布を求めているソフトウェアがあるためです。</para>
</listitem>
<listitem>
<para>バイナリ配布を信用していない人もいます。
ソースコードがあれば少なくとも、
ソースコードを読んで、(理論的には)
潜在的な問題点を自分で見つけ出すこともできるはずです。</para>
</listitem>
<listitem>
<para>ローカルなパッチを入手した場合、
それを自分で追加するためにソースコードが必要になります。</para>
</listitem>
<listitem>
<para>プログラムがいかにコンパイルされるべきかについて、
あなたはパッケージを作った人とは異なる見解を持っているかもしれません。
どんな最適化オプションをつけるべきかとか、
デバッグバージョンを作ってから それを strip
するべきだとか、いや、そうするべきでない、などなど、
確固たる見解を持っている人もいるでしょう。</para>
</listitem>
<listitem>
<para>package は通常、非常に保守的な設定で構築されています。
もし port に特定のプロセッサ用のコードを使うコンパイルオプションがあったり、
特定の拡張ボードを有効化するオプションがあれば、
package を作成している人でなくとも、
あなた自身が port を使ってそれらを有効にし、
設定の異なるたくさんの package を作成することができます。</para>
<para>これの例外は、用紙のサイズです。
異なる用紙のサイズに対応している package の場合、
用紙サイズ毎に複数の package が提供されることがあります。</para>
</listitem>
<listitem>
<para>ソースコードを手元に置いておきたい人たちもいます。
彼らは、退屈したときに眺めたり、あちこち解析してみたり、
ソースコードを借用したり (もちろん、
ライセンスが許せばの話ですが) するのです。</para>
</listitem>
<listitem>
<para>あなたがソースコードを持っていなければ、
それはソフトウェアとは言えませんね!
<!-- smiley -->;-)</para>
</listitem>
</orderedlist>
</answer>
</qandaentry>
<qandaentry>
<question>