さて、さまざまなソフトウェアの依存関係をn回追跡し、さまざまな人々がすべての異なるLinuxディストリビューションに対して行う作業を複製しようとした後、さまざまなソフトウェアをバンドルするより良い方法があるかどうか知りたいです簡単に配布できるように、1 つの .rpm または .deb ファイルにまとめます。
これを行うための私の現在のセットアップは、さまざまなツールのフランケンシュタイン モンスターですが、主に Vagrant と libguestfs です (実際にはどのディストリビューションにも同梱されていないため、Fedora で実行されているソースから構築されていますvirt-diff
)。私が現在行っている手順は次のとおりです。
- Vagrant ボックスを使用するか、ライブ CD から作成してベース OS を起動します。
- をエクスポートし
.vmdk
て呼び出しますbase-image
。 - 以前のイメージの正確なレプリカをスピンアップし、町に行きます。パッケージ マネージャーまたはその他の手段を使用して、必要なすべての部分をダウンロード、コンパイル、およびインストールします。もう一度、 をエクスポートし
.vmdk
て呼び出しますnon-base-image
。 - libguestfs を持つ Fedora ゲスト OS で両方の基本イメージを使用できるようにします。
- を使用
virt-diff
して 2 つの画像を比較し、そのデータを というファイルにダンプしますdiff
。 - いくつかの ruby スクリプトを実行
diff
して、必要な情報が含まれている別の形式に変換します/var
。 guestfish
別のスクリプトを実行して、一連のコマンドを含むコマンド スクリプトを生成しcopy-out
ます。- スクリプトを実行し
guestfish
ます。 - 実行できない
diff
ため、別のスクリプトを実行してシンボリックリンクを再生成します。guestfish
- 結果のフォルダー構造を .deb または .rpm ファイルに変換して出荷します。
これを行うためのより良い方法があるかどうかを知りたいです。あなたはあると思うだろうが、私はそれを理解していない.