1. FreeBSD 11.1 RELEASE - ports・pkg - ports と pkg の違い

 
 FreeBSD でアプリケーション・ツール・ユーティリティプログラムをインストールするには ports もしくは package を使用します。
1. ports と package の違い

1. ports と package の違い

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