FreeBSD 12.3 RELEASE - ports・pkg - 概要

 クラウディア
1. 概要
2. ports と pkg の違い

1. 概要

 「FreeBSD」で、アプリケーション・ツール・ユーティリティプログラムをインストールするには、「ports」というしくみを使用するか、「pkg」コマンドを使用します。

2. ports と pkg の違い

 「ports」と「pkg」について、「FreeBSD」のハンドブックの記述をそのまま引用すると以下のようになります。  以下、引用(引用元「第4章 アプリケーションのインストール - packages と ports 4.2. ソフトウェアのインストール」)
FreeBSD port は、 アプリケーションをソースコードからコンパイルする際の処理を自動化するように設計されたファイルの集まりです。 port を構成するファイルは、 自動的にアプリケーションをダウンロードし、展開、パッチ作業、 コンパイル、そしてインストールを行うために必要な情報を含んでいます。

ソフトウェアが、すでに FreeBSD に移植され、 FreeBSD 上で試験されていなければ、 適切にインストールが行われ、動作するように、 編集する必要があるかもしれません。

しかしながら、 24,000 を越えるサードパーティ製アプリケーションが FreeBSD に移植されています。 可能な場合は、これらのアプリケーションをコンパイル済みの packages としてダウンロードできます。

package は、package 管理コマンドで扱うことができます。

packages と ports は依存関係を理解します。 package または port を用いてアプリケーションをインストールすると、 依存するライブラリがまだインストールされていない場合には、 最初にライブラリが自動的にインストールされます。

FreeBSD の package は、コンパイル済みのアプリケーションの全コマンド、 各種設定ファイルやドキュメントを含んでいます。 pkg コマンドでは、pkg install といったコマンドで、 package を扱うことができます。

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 の更新状況を把握するために、 FreeBSD ports メーリングリスト や FreeBSD ports bugs メーリングリスト を購読するとよいでしょう。

 引用ここまで。

 わたしなりに少しまとめると、「ports」にしかできないものがあるので、それは「ports」から取得するしかない。
 簡単に安定したものをインストールしようとするなら「pkg」の方がいい。

 また、使い方としては、「ports」よりも「pkg」の方が初心者に優しいと感じています。

 案外に差を感じるのは、ダウンロードする際の量は、「ports」の方が「pkg」よりも小さいということです。
 ネットの状況によっては、あえて「ports」を使うという手もあるかと思います。