Ports

Portsとは、FreeBSD、NetBSD、OpenBSDといったBSD系オペレーティングシステムにおいて、ソフトウェアインストールバイナリパッケージの作成を効率化するために利用される、Makefileとパッチの集合体です。Portsは、ソフトウェアのコンパイルからインストールまでを自動化し、利用可能なハードウェアリソースに合わせて最適化されたソフトウェア環境を構築することを可能にします。通常、Portsはパッケージ管理システムの基礎として機能し、パッケージの追加、削除、更新などの管理を支援します。

BSD系OS以外にも、LinuxディストリビューションであるGentooのPortageArch [[Linux]]のArch Build System (ABS)、CRUXのPorts、Void LinuxのTemplatesなど、同様のコンセプトを持つシステムが存在します。

Portsの利点と欠点



Portsの主な利点として、利用可能なハードウェアリソースに応じたソフトウェアインストールの柔軟な調整と最適化が挙げられます。例えば、64ビット環境で最適化されていない32ビットバイナリを使用している場合でも、Portsを利用することで64ビット版のソフトウェアを容易にコンパイルしインストールすることが可能です。これにより、システム管理者は特定の環境に合わせてソフトウェアをカスタマイズし、最適なパフォーマンスを得ることができます。

一方で、Portsの欠点として、パッケージのコンパイルに時間がかかることが挙げられます。特に、Portsコレクション全体をインストールする場合、システムの性能によっては数日を要することもあります。

FreeBSD Ports



FreeBSD Portsは、1994年8月21日にジョーダン・ハバード氏によってFreeBSD CVSリポジトリにコミットされた、port make macrosが起源です。ハバード氏が作成したパッケージインストールスイートであるMakefileは、その1年前の1993年8月26日にコミットされました。初期のPortsフレームワークは、ハバード氏とSatoshi Asami氏によって保守されていましたが、後にPorts Management Teamが結成され、管理を引き継ぎました。

NetBSDのpkgsrc



NetBSDのpkgsrcは、移植性を重視して設計されたPortsコレクションです。NetBSDだけでなく、他のBSD派生OS、SmartOS/illumos、macOS、MINIX 3、Linuxなど、多くのオペレーティングシステムで利用できるのが特徴です。pkgsrcは、1997年8月に既存のFreeBSD Portsシステムを基に作成されました。四半期ごとのリリーススケジュールで提供されており、2018年10月時点では22,000を超えるパッケージが含まれています。DragonFly BSDは、当初pkgsrcを公式パッケージ管理システムとして採用していましたが、後に独自のdportsを開発しました。しかし、その後pkgsrcへと完全に移行しました。DragonFly BSDのPorts開発はGitを通じて行われています。

OpenBSD Ports



OpenBSD Portsシステムは、FreeBSD Portsとは異なり、最初にPortsをインストールしてパッケージを作成し、その後パッケージをインストールするという手順を踏みます。このため、パッケージの作成に使用するソースとなることを目的としています。Portsは、Makefile、説明やインストールメッセージが記載されたテキストファイル、OpenBSDで動作するプログラムを調整するためのパッチ、そしてパッケージに含まれるファイルをリスト化したパッキングリストで構成されています。Portsツリーは、標準的なMakefileのセットを使用していますが、その機能の大部分はソースコードのツリーと共有されています。これらの共有基盤には、Ports開発者にとって有用な機能が多数含まれており、Portsの作成が比較的容易になるというメリットがあります。

2007年10月、OpenBSDの開発者であるNikolay Sturm氏は、-stable Portsツリーはリソース不足のためメンテナンスされていないと発表しました。これにより、セキュリティアップデートのためには-current Ports/base treeを使用することが推奨されました。2009年には、Robert Nagy氏とJasper Lievisse Adriaanse氏の監督の下で、-stable Portsツリーの復活が決定しました。

OpenBSD Ports関連ウェブサイト



OpenBSD Portsとパッケージに関する非公式ウェブサイトがいくつか存在します。

OpenPorts.se: 2006年にports.openbsd.nuとして発表された、Portsツリー構造とアップデートを独自に解析するカスタムウェブサイトです。Portsの変更を追跡する機能がありますが、複雑なMakefileロジックをサポートしていないため、Portsツリー構造と公式ツールに関する深い知識を必要とするパッケージの約15%は省略されています。
ports.su: 2013年2月に公開された、公式sqlportsデータベースを基にしたウェブサイトです。amd64プラットフォームで利用可能なすべてのパッケージとフレーバーの完全なコレクションを提供しています。公式ツールに基づいているため、仮想カテゴリも利用可能であり、ライブラリ、ビルド、ランタイムの依存関係に関する情報も確認できます。このウェブサイトのソースコードはports-readmes portに依存しており、GitHubで入手できます。

関連項目



Android Runtime - インストール時に事前コンパイルを行います。
MacPorts
Portage - Gentoo Linuxで利用されるPortsシステムに影響を受けたシステムです。

外部リンク



OpenBSD Porter's Handbook
OpenBSD ports
The OpenBSD ports manpage
FreeBSD Ports
pkgsrc: The NetBSD Packages Collection
* The ideas behind Compile

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。