Debian(サーバー)をインストールした後に特定のファイルを特定のパスに自動的に配置する方法は?

Debian(サーバー)をインストールした後に特定のファイルを特定のパスに自動的に配置する方法は?

次のためにDebianサーバー用のインストールISOを作成するように求められました。

  1. 特定のパッケージにはプレインストールが必要です。
  2. 特定のファイル(主にPythonモジュール)は特定のディレクトリに自動的に配置する必要があります。

ISOは、お客様がインストール後に追加の作業を行う必要をなくすために、これらの条件をお客様に提供しました。

現時点では、以下を使用して最初の条件を実装しています。SimpleCDD;ところで、2番目はどのように実装するのかわかりません。 (Simple-CDD HOWTOページに記載されている1つは、必要なファイルがprofile / NAME.extraにリストされていることです。これにより、ISOファイルの/ simple-cddに追加されます。ただし、インストール後はDebian独自のファイルシステムにこのファイルが必要です。

ベストアンサー1

質問2の場合は、*.debパッケージを作成してSimple-CDDに含めることができます。単にファイルを配布したり、スクリプトを使用してファイルを生成するのではなく、この方法を好む場合は、これらのファイルはパッケージによって「所有」されるからです。これは、あなたがdpkg -S $fileそれが存在する理由を理解し、理解できることを意味します。

注:*.debSimple-CDDにパッケージを追加する方法については、この回答を更新することを検討してください。

これを設定する基本的な方法はを使用することですが、このような単純なファイル配布などのマイナーなケースではより簡単であることがわかりましdh_makeた。cpack

  1. 展開するファイルをディレクトリに収集します。ディレクトリ構造を維持することをお勧めします。これに関連するすべての内容を見てみましょう。.配布したい場合/etc/myconfigはコピーしてください./etc/myconfig

  2. ./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以前は、コンポーネントのインストール時にcpackmd5sumのみを生成するバグがありました。これにより、一部のツールが破損します。たとえば、これが私がここで使用する唯一の理由debsumsです。COMPONENTこのバグはBusterで修正されました。 Buster 以降を使用している場合は、COMPONENTその行を削除できます。

  1. パッケージの構築
$ mkdir build && cd build
$ cmake ..
$ cpack

*.debビルドディレクトリでファイルを見つけることができます。これはSimple-CDDに含めたいものです。

  1. パッケージの確認

これを実行してください:

$ dpkg --contents *.deb

含めるすべてのファイルを表示する必要があります。寸法も意味がなければなりません。インストールしてからdpkg -i *.debターゲットを確認して、すべてが正常であることを確認することもできます。

おすすめ記事