サイレントインストール用にDebian ISOにパッケージを追加する方法

サイレントインストール用にDebian ISOにパッケージを追加する方法

私はここのマニュアルに従っています:Debian インストーラ/修正/CD

まず、mytest.debというdebファイルを作成しました。次にbsdtarDebian ISO(debian-10.1.0-amd64-netinst.iso)をBuster-isoというディレクトリに置き、すべてのファイルを書き込み可能に設定し、mytest.debファイルを次のパスに入れますpool/main/m/

その後、次の設定ファイルを作成しましたapt-ftparchive

# config-deb

Dir {
    ArchiveDir "buster-iso";
};

# Sets the top of the .deb directory tree.
TreeDefault {
   Directory "pool/";
};

# The location for a Packages file.                
BinDirectory "pool/main" {
   Packages "dists/buster/main/binary-amd64/Packages";
};

# We are only interested in .deb files (.udeb for udeb files).                                
Default {
   Packages {
       Extensions ".deb";
    };
};

を実行し、マニュアルに示されているapt-ftparchive generate config-debように、次の3つのコマンドを実行します(名前が私が使用したファイル名と一致するようにわずかに変更します)。また、mytest.debがdists/buster/main/binary-amd64/Packagesおよびに存在することを確認しましたmd5sum.txt

その後、ディレクトリ全体を再び新しいISOファイルに変換しました(またマニュアルに従って)。さらに、新しく作成されたISOのサイズは、元のISOと比較して正しく増加します。しかし、このDebianをインストールしたとき、私のdebパッケージは期待どおりにインストールされませんでした。

私のシステムでdebファイルのインストール(使用)をテストしましたが、dpkg -i mytest.deb正常に動作します。この deb ファイルの階層は非常に単純であり、usr/localファイルmytest.tar.gzはこのパスにあります。/usr/local/mytest.tar.gz新しいDebian ISOをインストールするときは、このファイルがすでに存在することを望みます。しかし、そこにはありません。

たぶん間違ったパスが使用されており、インストール中に他のプログラムがそのパスを上書きした可能性があります。私がマニュアルに何かを間違って理解したのではないでしょうか?どんな助けでも大変感謝します。

答え1

ISOにパッケージを正常に追加しました。これがlinkディレクティブのすべてです。ご覧のとおり説明の追加その結果、カスタムパッケージを手動でインストールできますが、インストールイメージには自動的にインストールされません。

パッケージを自動的にインストールするには、追加の変更が必要です。インストーラにパラメータを追加することも可能です(確認する必要があります)。他の可能性としては、タスク選択(tasksel)にパッケージを追加するか、「必須」に設定することがあります。

答え2

私は同じ問題を抱えており、今後誰でも役立つことを願っています。ファイルにパッケージハブ/プールが追加されましたが、インストールは呼び出されませんでした。

これはいくつかの方法で達成できます。

  1. debconfプリセットの使用 欠点:プリセットを変更するたびにinitrd.gzを解凍して再圧縮するには、いくつかの追加手順が必要です。

  2. シンプルなCDD 欠点:初めてライブシステムで設定する必要があり、そこから解凍したISOから変更することができます。

関連情報