BSD vs Linux。 ポートとは何ですか?

次に、 ベースシステムの次の2番目のカテゴリ:アドオンパッケージであるプログラム。 BSDの世界では、これは一般に「ポートシステム」と呼ばれます。 この名前は偶然に選択されたものではありませんでした従来、システムでプログラムを実行するには、最初にコンパイルする必要がありました。 そして、しばしばコンパイルの前にそれを完了する必要がありました。 システムには他のヘッダーファイルが必要な場合があります。 宣言された定数は異なる場合がありました。 一部の部品は、システムとの一貫性がないためにゼロから書き直される場合があり、言い換えると、OSおよび/または特定のシステム用にプログラムを「移植」する必要がありました。 移植システムの主な目標は、移植作業をすべて行うことです。 ただし、彼女がアセンブリとインストールを自動化し、彼女の名前で「アンインストール」などのサービスを提供するという事実は、 しかし、それは反映されていませんが、時間の経過とともに多くのことが起こると、港湾システムはその名前を超えて、今日見られる獣に変わりました。 FreeBSD Ports Collectionには10,000以上のパッケージが含まれています。 ポートの最も明らかな機能は、プログラムがソースからビルドされ、事前に組み立てられたバイナリがインストールされるだけではないことです。 これは、Linuxの観点からBSDを評価する人々を混乱させるもう1つの明らかな違いです。 しかし、それらがソースから収集されるという事実は、主要な目標、サードパーティの効果ではありません。 バイナリパッケージも利用できます—実際、それらはportsツリーからビルドされます !実際、ほとんどのLinuxユーザーはバイナリパッケージをインストールし、BSDユーザーはソースからビルドします。 一部には、これの理由はツールキットです。 ポートシステムは、ソースからビルドするという概念に基づいて設計されており、バイナリパッケージを収集してインストールする二次的な機会があります。 RPMやdpkgなどのLinuxバッチシステムは、バイナリの構築とインストールの概念に基づいて設計されていますが、ソースからの構築が考慮されています。 前述したように、歴史的に、Unixシステムではバイナリパッケージは支配的ではありませんでした。 したがって、パッケージ自体は後のものです。 従来、手動でアンインストールする必要がありましたが、Gentooは人気が高まっているLinuxディストリビューションです。 その利点の1つは、BSDポートと比較されることが多いportageシステムです。 おそらく最も顕著な類似点は、ソースからのアセンブリです。 これにより、多くのバイナリパッケージの問題が解消されます。 私自身は一度も使ったことはありませんが、それに関する情報とそれを使った友人の印象から、このシステムはどこからでも良いアイデアを取り入れ、それらを結びつけたと言えるでしょう。 今後数年間でその発展を観察することは興味深いでしょう。 ただし、GentooはまだBSDではなくLinuxですが、主要なLinuxディストリビューションのBSDスタイルに最も近いと主張しています。今、バイナリパッケージの利点に関して:今回(多くの時間)と通常必要なスペースよりも少ないソースの場合よりもパッケージをインストールします。 ソースからのアセンブリには、独自の利点があります。たとえば、ライブラリバージョン(バイナリパッケージで私を混乱させるもの)の跳躍を回避できます。 LinuxまたはBSDでは、パッケージをインストールするか、ソースからビルドできます。 しかし、システムは異なるように構成されているため、ユーザーは異なるように構成されているようです...それは対応です。ポートとRPMの違いはそれだけではないことをここで理解することが重要だと思いますポートはコンパイルされ、パッケージは単にインストールされます。 ポートは、インストールプロセスのビットとコンポーネントの全範囲をカバーするように設計されています。コーディング、追跡と依存関係、パッケージ、インストールとアンインストール、システムへのインストールに必要なローカル変更、構成「チップ」など。 RPMは単なるバイナリパッケージです。 すべての依存関係を自動的に取得する場合は、urpmiやapt-getなど、より高いレベルのツールが必要です。 また、これはバイナリであるため、ライブラリバージョンの競合、欠落しているコンパイラオプション、またはシステム上にビルドせずに発生するその他の制限に対処する必要があります。集中化されています。 Ports Treeは、構造化された巨大なディレクトリであり、宣言された変数、チェックサム、パッキングリストなどのMakefileを含むカテゴリのフォルダーが多数あります。 これらの各フォルダーは、これらのファイルによって記述される個別のプログラムです。 make



と入力make



、舞台裏で多くのブラックマジックが発生します。配布パッケージを見つけてダウンロードし、必要な変更をすべて行い、すべての依存関係を再帰的に見つけてインストールし、GNU configureまたはimakeまたはその他の準備プログラムを必要なオプションで呼び出します。必要なパラメーターなどでコンパイルを開始します。しかし、この大きなディレクトリ内のすべてのファイルは、FreeBSDプロジェクト自体によって管理されます。 たとえば、誰かがKDEを作成したとき、portsツリーに魔法のように表示されませんでした。 誰かがそのポートを作成するために必要な「接着剤」を書いてから、ファイルをFreeBSD CVSリポジトリにアップロードして、portsコレクションに表示する必要がありました。 繰り返しになりますが、portsコレクション内の他のすべての要素と連動するという確実性のレベルがあります。 ポートの外部で依存関係を宣言できないため、既存の依存関係すべてそこにあります。 おそらく中毒が消えるので、誰もソースをダウンロードできません。 3番目のプログラムの新しいバージョンがプログラムを破壊する可能性があり、そのプログラムに依存するものが誤動作する可能性があります。 もちろん、すべての問題を解決することはできません。 しかし、RPMのような分散型システムの場合よりも、「Bを必要とするBを必要とするAが欲しい」というインシデントははるかに少ないです。詳細については、ハンドブックのセクションを参照してください



1. BSD対Linux。 エントリー。

2. BSD vs Linux。 キャラクター。

3. BSD vs Linux。 「基本システム」とは何ですか?



All Articles