パッケージマネージャをどのように作成できますか?

パッケージマネージャをどのように作成できますか?

私は自分のLinuxディストリビューションを作成し(それを呼び出すことができれば)、最後にやりたいことは自分のパッケージマネージャを作成することですが、どうすればいいのかわかりません。 apt、yumなどのようなものをどのように作成できますか?これに関する良い資料は何ですか?

答え1

すべてのパッケージマネージャは、模倣するのがそれほど難しくない同じ方法で動作します。問題は実装の詳細です。

  1. RPMやDEBなどの独自のパッケージ形式を使用したくない場合は、単にtar.gzを使用してください。

  2. このtar.gzファイル内には、説明、ファイルリスト(ユーザーがアーカイブ全体を抽出せずにファイルを検索できるようにしたい場合)、および依存関係(簡単なファイルリストである可能性があります)を含むパッケージファイルと補助ファイルがあります。できます。ファイル)。

  3. 依存関係を構築することもロケット科学ではありません。lddまたは/およびを使用できますstrace

  • これで、Berkley DBまたはSQLite DBに保存できるパッケージファイルと依存関係のデータベースを作成する必要があります。

  • 次に、ユーザーが新しいパッケージをインストールしようとするたびに、これらの依存関係を検索する方法を見つける必要があります。

  • 最後にインストールされたファイルとパッケージのデータベースが必要です。

これらすべてのタスクには膨大な量のコードが含まれています。すでに利用可能なコードを使用する方が良いでしょう。

最後に、もちろんホイールを再構築してすべてのことを行うことができますが、それを修正して助けることができるオープンソースプロジェクトについて文字通り何千ものバグレポートが提出されており、しばらく維持する新しい曖昧なディストリビューションが実際に必要な人はありません。その後、削除します。時間が足りないか、さまざまな理由で動機が足りないからです。

関連情報