FreeBSD 10.2 RELEASE - ports・pkg - ports と pkg の違い FreeBSD でアプリケーション・ツール・ユーティリティプログラムをインストールするには ports もしくは pkg を使用します。
1 ports と pkg の違い ports と pkg について FreeBSD のハンドブックの記述をそのまま引用すると以下のようになります。 以下、引用 FreeBSD の pkg は、コンパイル済みのアプリケーションの全コマンド、 各種設定ファイルやドキュメントを含んでいます。 pkg コマンドでは、pkg install といったコマンドで、 pkg を扱うことができます。 FreeBSD port は、 アプリケーションをソースコードからコンパイルする際の処理を自動化するように設計されたファイルの集まりです。 port を構成するファイルは、 自動的にアプリケーションをダウンロードし、展開、パッチ作業、 コンパイル、そしてインストールを行うために必要な情報を含んでいます。 さらに ports システムは、FreeBSD のパッケージ管理コマンドで扱うことのできるパッケージを生成できます。 pkg と ports は依存関係を理解します。 pkg または port を用いてアプリケーションをインストールすると、 依存するライブラリがまだインストールされていない場合には、 最初にライブラリが自動的にインストールされます。 2 つの技術は類似していますが、 packages と ports にはそれぞれ独自の特徴があります。 それぞれのアプリケーションのインストールに対する必要要件に応じてどちらかを選択してください。 package の利点 ・一般的に、あるアプリケーションの package の tarball は、 ソースコードを含む tarball より小さなサイズとなります。 ・pkg はコンパイルの時間を必要としません。 このことは、遅いシステム上で Mozilla, KDE, または GNOME といった大きなアプリケーションを扱う場合に重要となります。 ・pkg を用いれば、 ソフトウェアのコンパイルに関する知識は必要ありません。 port の利点 ・pkg は、通常最も多くのシステムで実行できるように、 非常に保守的な設定で構築されています。 port からコンパイルすることで、 コンパイルオプションを指定できます。 ・アプリケーションのなかには、 どの機能をインストールするかをコンパイル時に設定するものがあります。 たとえば、Apache は多種多様な ビルトインオプションを設定できます。 ・設定を区別するために、同じアプリケーションに対して 複数の pkg が存在することがあります。 たとえば、Ghostscript は Xorg がインストールされているかどうかにより、 ghostscript package と ghostscript-nox11 package が選択可能となっています。 アプリケーションのコンパイルオプションが 1 つもしくは 2 つ以上になると、 複数の pkg を用意することは困難になります。 ・ライセンス条項で、 バイナリでの配布を禁止しているソフトウェアがあります。 このようなソフトウェアはソースコードで配布される必要があり、 エンドユーザがコンパイルしなくてはなりません。 ・バイナリ配布を信用していない人や、 潜在的な問題点を見つけ出すためにソースコードを読むことを好む人がいます。 ・カスタマイズしたパッチを適用するためには、 ソースコードが必要になります。 引用ここまで。 わたしなりに少しまとめると、ports にしかできないものがあるので、それは ports から取得するしかない。 簡単に安定したものをインストールしようとするなら pkg の方がいい。 また、使い方としては、ports よりも pkg の方が初心者に優しいと感じています。 ハンドブックの内容と違っているなと感じているのは、ダウンロードする際の量は、ports の方が pkg よりも小さいということです。 ネットの状況によっては、あえて ports を使うという手もあるかと思います。
FreeBSD の pkg は、コンパイル済みのアプリケーションの全コマンド、 各種設定ファイルやドキュメントを含んでいます。 pkg コマンドでは、pkg install といったコマンドで、 pkg を扱うことができます。 FreeBSD port は、 アプリケーションをソースコードからコンパイルする際の処理を自動化するように設計されたファイルの集まりです。 port を構成するファイルは、 自動的にアプリケーションをダウンロードし、展開、パッチ作業、 コンパイル、そしてインストールを行うために必要な情報を含んでいます。 さらに ports システムは、FreeBSD のパッケージ管理コマンドで扱うことのできるパッケージを生成できます。 pkg と ports は依存関係を理解します。 pkg または port を用いてアプリケーションをインストールすると、 依存するライブラリがまだインストールされていない場合には、 最初にライブラリが自動的にインストールされます。 2 つの技術は類似していますが、 packages と ports にはそれぞれ独自の特徴があります。 それぞれのアプリケーションのインストールに対する必要要件に応じてどちらかを選択してください。 package の利点 ・一般的に、あるアプリケーションの package の tarball は、 ソースコードを含む tarball より小さなサイズとなります。 ・pkg はコンパイルの時間を必要としません。 このことは、遅いシステム上で Mozilla, KDE, または GNOME といった大きなアプリケーションを扱う場合に重要となります。 ・pkg を用いれば、 ソフトウェアのコンパイルに関する知識は必要ありません。 port の利点 ・pkg は、通常最も多くのシステムで実行できるように、 非常に保守的な設定で構築されています。 port からコンパイルすることで、 コンパイルオプションを指定できます。 ・アプリケーションのなかには、 どの機能をインストールするかをコンパイル時に設定するものがあります。 たとえば、Apache は多種多様な ビルトインオプションを設定できます。 ・設定を区別するために、同じアプリケーションに対して 複数の pkg が存在することがあります。 たとえば、Ghostscript は Xorg がインストールされているかどうかにより、 ghostscript package と ghostscript-nox11 package が選択可能となっています。 アプリケーションのコンパイルオプションが 1 つもしくは 2 つ以上になると、 複数の pkg を用意することは困難になります。 ・ライセンス条項で、 バイナリでの配布を禁止しているソフトウェアがあります。 このようなソフトウェアはソースコードで配布される必要があり、 エンドユーザがコンパイルしなくてはなりません。 ・バイナリ配布を信用していない人や、 潜在的な問題点を見つけ出すためにソースコードを読むことを好む人がいます。 ・カスタマイズしたパッチを適用するためには、 ソースコードが必要になります。
・一般的に、あるアプリケーションの package の tarball は、 ソースコードを含む tarball より小さなサイズとなります。 ・pkg はコンパイルの時間を必要としません。 このことは、遅いシステム上で Mozilla, KDE, または GNOME といった大きなアプリケーションを扱う場合に重要となります。 ・pkg を用いれば、 ソフトウェアのコンパイルに関する知識は必要ありません。
・pkg は、通常最も多くのシステムで実行できるように、 非常に保守的な設定で構築されています。 port からコンパイルすることで、 コンパイルオプションを指定できます。 ・アプリケーションのなかには、 どの機能をインストールするかをコンパイル時に設定するものがあります。 たとえば、Apache は多種多様な ビルトインオプションを設定できます。 ・設定を区別するために、同じアプリケーションに対して 複数の pkg が存在することがあります。 たとえば、Ghostscript は Xorg がインストールされているかどうかにより、 ghostscript package と ghostscript-nox11 package が選択可能となっています。 アプリケーションのコンパイルオプションが 1 つもしくは 2 つ以上になると、 複数の pkg を用意することは困難になります。 ・ライセンス条項で、 バイナリでの配布を禁止しているソフトウェアがあります。 このようなソフトウェアはソースコードで配布される必要があり、 エンドユーザがコンパイルしなくてはなりません。 ・バイナリ配布を信用していない人や、 潜在的な問題点を見つけ出すためにソースコードを読むことを好む人がいます。 ・カスタマイズしたパッチを適用するためには、 ソースコードが必要になります。