Wie kann man nach der Installation von Debian (Server) bestimmte Dateien automatisch in bestimmten Pfaden haben?

Wie kann man nach der Installation von Debian (Server) bestimmte Dateien automatisch in bestimmten Pfaden haben?

Ich wurde gebeten, ein Installations-ISO für den Debian-Server zu erstellen, das Folgendes enthält:

  1. Bestimmte Pakete müssen darauf vorinstalliert sein.
  2. Bestimmte Dateien (meistens Python-Module) müssen automatisch in bestimmten Verzeichnissen lokalisiert werden.

Kunden erhalten ISOs und diese Bedingungen dienen dazu, ihnen nach der Installation jegliche weiteren Maßnahmen zu ersparen.

Derzeit habe ich die erste Bedingung erreicht, indem ichEinfaches CDD; beim zweiten weiß ich jedoch nicht, wie ich das erreichen kann. (Eine Sache, die auf der Simple-CDD HOWTO-Seite erwähnt wird, ist, dass die benötigten Dateien in den Profilen/NAME.extra aufgelistet werden könnten.damit sie in der ISO-Datei zu /simple-cdd hinzugefügt werden, aber ich brauche diese Dateien im Dateisystem von Debian selbst, nachdem es installiert ist).

Antwort1

Für Frage Nr. 2 könnten Sie ein *.debPaket erstellen und dieses in Simple-CDD einbinden. Wenn Sie dies dem einfachen Bereitstellen von Dateien oder deren Generierung mit einem Skript vorziehen, da die Dateien einem Paket „gehören“. Das bedeutet, dass Sie dpkg -S $fileverstehen können, warum sie vorhanden sind.

Hinweis: Erwägen Sie, diese Antwort mit Anweisungen zum Hinzufügen eines *.debPakets zu Simple-CDD zu aktualisieren

Die native Möglichkeit, dies einzurichten, wäre mit dh_make, aber ich finde cpackes für triviale Fälle wie die einfache Dateibereitstellung wie diese einfacher.

  1. Sammeln Sie die Dateien, die Sie bereitstellen möchten, in einem Verzeichnis. Ich schlage vor, die Verzeichnisstruktur beizubehalten. Ich mache das alles relativ zu , .wenn Sie also bereitstellen möchten /etc/myconfig, kopieren Sie es nach ./etc/myconfig.

  2. Erstellen Sie ./CMakeLists.txtmit folgendem Inhalt:

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)

Hinweis: In Debian Stretch und früheren Versionen cpackgab es einen Fehler, bei dem nur MD5-Summen für die Installation einer Komponente generiert wurden. Dadurch wurden einige Tools wie beschädigt debsums. Das ist der einzige Grund, warum ich es COMPONENThier verwende. Dieser Fehler wurde in Buster behoben. Wenn Sie Buster oder höher verwenden, können Sie jede Zeile mit COMPONENTdarin löschen.

  1. Stellen Sie Ihr Paket zusammen
$ mkdir build && cd build
$ cmake ..
$ cpack

Sie finden eine *.debDatei in Ihrem Build-Verzeichnis. Diese sollten Sie in Ihr Simple-CDD aufnehmen.

  1. Überprüfen Sie Ihr Paket

Führen Sie Folgendes aus:

$ dpkg --contents *.deb

Sie sollten alle Dateien sehen, die Sie einschließen möchten. Die Größe sollte auch sinnvoll sein. Sie können auch erwägen, diese zu installieren und dpkg -i *.debdann in Ihren Zielspeicherorten nachzuschauen, um sicherzustellen, dass alles in Ordnung ist.

Antwort2

Sie haben herausgefunden, wie Sie mit Simple-CDD zusätzliche Dateien auf der CD versenden können. Jetzt können Sie ein Archiv irgendeiner Art (oder sogar ein richtiges Paket) versenden und es /targetmit einemvordefinierte Dateimit einemPost-Installationsskriptum sie an die richtige Stelle zu bringen.

Sie müssen nicht alle Optionen voreinstellen, sondern nur die, die Sie dem Benutzer, der die Installation durchführt, vorenthalten möchten.

verwandte Informationen