
Es gibt Skripte zum Erstellen von Debian-Paketen, die funktionieren. Ich muss sie ändern. In einem neuen speziellen Fall gibt es möglicherweise einige optionale Dateien, die ich in das Paket aufnehmen möchte.
Wenn ich sie zu package.install hinzufüge, fehlschlägt es, da nur diese Dateien nicht existieren. Wenn ich sie nicht zu package.install hinzufüge, werden sie nie in das Paket aufgenommen, selbst wenn sie existieren.
Um den Sonderfall zu bestimmen, habe ich eine spezielle Umgebungsvariable:SPECIFIC_CASE=CASE
Wie richte ich Skripte zur Debian-Paketerstellung ein, um im Einzelfall nach diesen Dateien zu suchen?
In der Datei rules
(die als Makefile konzipiert ist) habe ich Ziele:
copy_files:
override_dh_install:
override_dh_auto_install: (empty)
...list of other overrides...
install:
postbuild:
clean:
Antwort1
package
Bei den meisten Paketierungstools in Debian ist der Inhalt eines Pakets das, was sich debian/package
beim dpkg-deb
Ausführen darin befindet. Sie können Dateien dort auf jede beliebige Weise platzieren und müssen sich nicht darauf verlassen dh_install
(welches Tool die .install
Dateien verarbeitet).
Daher:
override_dh_install:
dh_install
install blah debian/package/wherever
und so weiter. Hier würden Sie Ihre bedingte Dateiverwaltung hinzufügen.
JedochEs ist wichtig zu erkennen, dass eine Verpackungsspezifikation (und das ist nicht spezifisch für Debian) konsistent sein sollte:dhAuf einer bestimmten Architektur sollte das Erstellen eines Pakets immer den gleichen Paketinhalt ergeben. Das Verpacken optionaler Inhalte umfasst normalerweise das Erstellen des Projekts, sodass alle Dateien generiert werden, und das anschließende Verteilen dieser Dateien in verschiedene Pakete, von denen nicht alle installiert werden müssen. (Diesdürfengroße Anstrengungen erfordern,z.Bder GCC-Build, der ein paar Tricks hat, damit der Compiler-Treiber alle verfügbaren Sprachen kennt, aber nicht alle installiert werden müssen.)