ポートコレクション
Portsコレクション(Portsツリー、あるいは単にPorts)は、BSDベースのオペレーティングシステムであるFreeBSD、NetBSD、OpenBSDによって、ソフトウェアをインストールしたりバイナリパッケージを作成したりするための簡単な方法として提供される、makefileとパッチのセットです。これらは通常、パッケージ管理システムのベースであり、Portsがパッケージの作成を処理し、追加のツールがパッケージの削除、アップグレード、およびその他のタスクを管理します。BSDに加えて、 GentooのPortage、ArchのArch Build System(ABS)、CRUXのPorts、Void LinuxのTemplatesなど、いくつかのLinuxディストリビューションが同様のインフラストラクチャを実装しています。
バイナリ配布モデルと比較したPortsシステムの主な利点は、利用可能なリソースに応じてインストールを調整・最適化できることです。例えば、システム管理者は、64ビット版が利用できない、または64ビット版がマシンに最適化されていない場合でも、パッケージの32ビット版を簡単にインストールできます。一方、主な欠点はコンパイル時間です。これは非常に長くなる可能性があります。例えば、Portsを使用してFreeBSDシステムをフルインストールする場合、ハードウェアによっては数日かかることがあります。
FreeBSDポート
Jordan Hubbardは、 1994年8月21日にFreeBSD CVSリポジトリにport makeマクロをコミットしました。[ 1 ]彼のパッケージインストールスイートのMakefileは、1年前(1993年8月26日)にコミットされていました。[ 2 ]コアPortsフレームワークは、当初Hubbardと浅見智史によって数年間メンテナンスされていました。後に、この作業を処理するためにPorts Managementチームが結成されました
NetBSDのpkgsrc
NetBSDのpkgsrc portsコレクションの特徴は、移植性を重視し、NetBSD自体以外にも、他のBSD、SmartOS / illumos、macOS、[ 3 ] MINIX 3、Linux [ 4 ]、その他のUnix系OSなど、多くのオペレーティングシステムで使用できることです。pkgsrcは1997年8月に既存のFreeBSD portsシステムをベースに作成されました。四半期ごとのリリーススケジュールに従っており、2018年10月現在、22,000以上のパッケージが含まれています。1.4リリースで、DragonFly BSDはpkgsrcを公式パッケージ管理システムとして採用すると発表しました。 [ 5 ]しかし、 DragonFly BSDはリリース3.4でdportsと呼ばれる独自のports実装を構築し、 [ 6 ] 3.6で完全に切り替えました。開発はgit経由で行われます。[ 7 ]
OpenBSD ポート
元々ベースとしていたFreeBSD ポートとは対照的に、OpenBSD ポートシステムは、最終製品であるパッケージを作成するためのソースとして意図されています。ポートをインストールすると、まずパッケージが作成され、次にインストールされます。ポートは、メイクファイル、説明とインストールメッセージを含むテキストファイル、OpenBSD で動作するようにプログラムを調整するために必要なパッチ、そしてパッケージに含めるファイルをリストしたパッキングリストで構成されています。ポートツリーは、その機能の大部分を提供するために、ソースツリーと共有されている標準的なメイクファイルのセットを使用しています。この共有インフラストラクチャには、ポート開発者向けの多くのユーティリティ関数が含まれており、ポートを非常に簡単に作成できる場合が多いことを意味します
2007年10月下旬、OpenBSD開発者のニコライ・スタームは、リソース不足のため、-stable portsツリーはメンテナンス対象外とみなすべきであると発表しました。これにより、ユーザーはセキュリティアップデートを適用するために、事実上-current ports/baseツリーを実行せざるを得なくなりました。2009年、ロバート・ナギーとヤスパー・リーヴィス・アドリアーンセの監督の下、-stable portsツリーを復活させることが決定されました。[ 8 ]
OpenBSD のポートとパッケージの一覧を掲載している非公式の Web サイトが 3 つあります。
- OpenPorts.seは、2006年にports.openbsd.nuとして最初に発表されました[ 9 ]。これは、portsのツリー構造と更新を独自に解析し、特定のportの変更を追跡する機能を持つカスタム作成されたウェブサイトでしたが、より複雑なMakefileロジックの一部をサポートしていないという欠点があり、そのため、portsのツリー構造に関する複雑な知識と公式ツールの使用を必要とするパッケージの約15%が欠落していました。[ 10 ]プロジェクトは2023年1月に中止されました。[ 11 ]
- ports.su は2013年2月に発表され、公式sqlportsデータベース[ 12 ]をベースにしており、amd64プラットフォームで利用可能なすべてのパッケージとフレーバーの完全なコレクションを備えています。公式ツールをベースとしているため、「仮想」(非プライマリ)カテゴリがすぐに利用可能で、ライブラリ、ビルド、ランタイム依存関係に関する情報も利用可能です。ウェブサイトのソースはports-readmesポートをベースにしており、GitHubで簡単に入手できます。このプロジェクトは2018年11月以降更新されていません。
参照
- インストール時に事前コンパイルを行うAndroidランタイム
- MacPortsはmacOSで使用されている。名前とデザインはポートシステムに基づいている。
- Portage(ソフトウェア)は、 Gentoo Linuxで使用され、portsシステムに触発されたものです。
参考文献
- ^ 「ports/Mk/bsd.port.mk のCVSログ」 FreeBSDプロジェクト。2013年4月15日時点のオリジナルからアーカイブ。2018年5月26日閲覧
- ^ 「CVS log for src/usr.sbin/pkg_install/Makefile」 . FreeBSDプロジェクト.オリジナルから2013年4月14日アーカイブ。
- ^ 「Joyent パッケージドキュメント - macOS へのインストール」Joyent . 2018年10月6日時点のオリジナルよりアーカイブ。2018年10月10日閲覧。
- ^ 「Joyent パッケージドキュメント - Linux へのインストール」Joyent . 2018年10月6日時点のオリジナルよりアーカイブ。2018年10月10日閲覧。
- ^ Dillon, Matthew. 「PKGSRCは次のリリースから正式にサポートされる予定です」。2015年9月9日時点のオリジナルよりアーカイブ。2008年1月23日閲覧。
- ^ Sherrill, Justin. 「DragonFly 3.4 リリース計画」 . 2016年3月10日時点のオリジナルよりアーカイブ。2016年5月5日閲覧。
- ^ 「GitHub - DragonFlyBSD/DPorts: DragonFly BSD専用のアプリケーションビルドシステム」 GitHub . 2018年6月11日時点のオリジナルよりアーカイブ。 2014年7月8日閲覧。
- ^ Yodlowsky, William. 「4.6-stable ports」 . 2011年6月12日時点のオリジナルよりアーカイブ。2009年12月29日閲覧。
- ^ "ports.openbsd.nu - ports のフロントエンド" . OpenBSD Journal . 2006年8月9日. 2018年5月27日時点のオリジナルよりアーカイブ。2018年5月26日閲覧。
- ^ Espie, Marc (2013-06-07). 「Re: pkg_find(1)がないのはなぜですか?」 . 2022年4月10日時点のオリジナルよりアーカイブ。2018年5月26日閲覧。
- ^ “Time to say goodbye” . 2023年1月30日. 2008年2月14日時点のオリジナルよりアーカイブ。 2023年11月2日閲覧。
- ^ 「ports.su の紹介 — ports-readmes ミラーと ports 検索」 OpenBSD Journal 2013年5月2日。2018年5月27日時点のオリジナルよりアーカイブ。 2018年5月26日閲覧。