次のためにDebianサーバー用のインストールISOを作成するように求められました。
- 特定のパッケージにはプレインストールが必要です。
- 特定のファイル(主にPythonモジュール)は特定のディレクトリに自動的に配置する必要があります。
ISOは、お客様がインストール後に追加の作業を行う必要をなくすために、これらの条件をお客様に提供しました。
現時点では、以下を使用して最初の条件を実装しています。SimpleCDD;ところで、2番目はどのように実装するのかわかりません。 (Simple-CDD HOWTOページに記載されている1つは、必要なファイルがprofile / NAME.extraにリストされていることです。これにより、ISOファイルの/ simple-cddに追加されます。ただし、インストール後はDebian独自のファイルシステムにこのファイルが必要です。
ベストアンサー1
質問2の場合は、*.deb
パッケージを作成してSimple-CDDに含めることができます。単にファイルを配布したり、スクリプトを使用してファイルを生成するのではなく、この方法を好む場合は、これらのファイルはパッケージによって「所有」されるからです。これは、あなたがdpkg -S $file
それが存在する理由を理解し、理解できることを意味します。
注:
*.deb
Simple-CDDにパッケージを追加する方法については、この回答を更新することを検討してください。
これを設定する基本的な方法はを使用することですが、このような単純なファイル配布などのマイナーなケースではより簡単であることがわかりましdh_make
た。cpack
展開するファイルをディレクトリに収集します。ディレクトリ構造を維持することをお勧めします。これに関連するすべての内容を見てみましょう。
.
配布したい場合/etc/myconfig
はコピーしてください./etc/myconfig
。./CMakeLists.txt
次のコンテンツにします。
cmake_minimum_required(VERSION 3.7)
project(foo)
# Repeat this for each directory or file you want to install
install(DIRECTORY etc
DESTINATION /
USE_SOURCE_PERMISSIONS
COMPONENT default
)
set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_NAME foo)
set(CPACK_PACKAGE_DESCRIPTION "Long description of what this package is"
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Short description")
set(CPACK_PACKAGE_VENDOR "The ones who installed your OS")
set(CPACK_PACKAGE_CONTACT "[email protected]")
set(CPACK_PACKAGE_VERSION "1.0")
set(CPACK_COMPONENT_ALL default)
set(CPACK_DEB_COMPONENT_INSTALL "ON")
include(CPack)
注:Debian Stretch以前は、コンポーネントのインストール時に
cpack
md5sumのみを生成するバグがありました。これにより、一部のツールが破損します。たとえば、これが私がここで使用する唯一の理由debsums
です。COMPONENT
このバグはBusterで修正されました。 Buster 以降を使用している場合は、COMPONENT
その行を削除できます。
- パッケージの構築
$ mkdir build && cd build
$ cmake ..
$ cpack
*.deb
ビルドディレクトリでファイルを見つけることができます。これはSimple-CDDに含めたいものです。
- パッケージの確認
これを実行してください:
$ dpkg --contents *.deb
含めるすべてのファイルを表示する必要があります。寸法も意味がなければなりません。インストールしてからdpkg -i *.deb
ターゲットを確認して、すべてが正常であることを確認することもできます。