[gelöst] debiankonformes Paket für ein Shellscript bauen

Started by bluelupo, 2015/12/09, 18:00:59

Previous topic - Next topic

bluelupo

Hallo zusammen,

ich würde gerne ein debiankonformes Paket bauen für ein selbst erstelltes Bashscript (Name: run_lvmsnap.sh). Das Pakete sollte auch auf beliebigen anderen Systemen einspielbar sein und nicht nur lokal.

Folgendes habe ich bisher getan:

Arbeitsverzeichnis erstellt

$ mkdir lvmsnap
$ cd lvmsnap
$ mkdir lvmsnap-1.0
$ cd lvmsnap-1.0


Vorlage erstellt

$ dh_make -s -p lvmsnap_0.1 -c gpl --createorig
Maintainer name  : Michael Singer
Email-Address    : info@bluelupo.net
Date             : Wed, 09 Dec 2015 17:33:43 +0100
Package Name     : lvmsnap
Version          : 0.1
License          : gpl3
Type of Package  : Single
Hit <enter> to confirm:
Currently there is no top level Makefile. This may require additional tuning.
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the lvmsnap Makefiles install into $DESTDIR and not in / .


Überflüssige Dateien entfernt

$ rm debian/*.ex debian/*.EX
$ rm debian/README.Debian
$ rm debian/README.source


Dann die beiden Dateien editiert

$ vi copyright
$ vi control


Ein Verzeichnis erstellt wo mein Bashscript liegt

$ mkdir lvmsnap-1.0/bin
$ cp run_lvmsnap.sh lvmsnap-1.0/bin


Das Paket bauen, leider ohne Erfog

$ dpkg-buildpackage -S -us -uc
dpkg-buildpackage: Quellpaket lvmsnap
dpkg-buildpackage: Quellversion 0.1-1
dpkg-buildpackage: Quelldistribution unstable
dpkg-buildpackage: Quellen geändert durch Michael Singer <info@bluelupo.net>
dpkg-source --before-build lvmsnap-1.0
fakeroot debian/rules clean
dh clean
   dh_testdir
   dh_auto_clean
   dh_clean
dpkg-source -b lvmsnap-1.0
dpkg-source: Information: Quellformat »3.0 (quilt)« wird verwendet
dpkg-source: Information: lvmsnap wird unter Benutzung des existierenden ./lvmsnap_0.1.orig.tar.xz gebaut
dpkg-source: Warnung: ausführbarer Modus 0750 von »bin/run_lvmsnap.sh« wird im Diff nicht dargestellt werden
dpkg-source: Information: lokale Änderungen erkannt, die veränderten Dateien sind:
lvmsnap-1.0/bin/run_lvmsnap.sh
dpkg-source: Information: Sie können die lokalen Änderungen mit dpkg-source --commit integrieren
dpkg-source: Fehler: Abbruch aufgrund unerwarteter Änderungen in den Originalquellen, siehe /tmp/lvmsnap_0.1-1.diff.BSzW1n
dpkg-buildpackage: Fehler: Fehler-Exitstatus von dpkg-source -b lvmsnap-1.0 war 2



Hier mein Baum des Arbeitsverzeichnisses

$ tree lvmsnap/
lvmsnap/
├── lvmsnap_0.1.orig.tar.xz
└── lvmsnap-1.0
    ├── bin
    │   └── run_lvmsnap.sh
    └── debian
        ├── changelog
        ├── compat
        ├── control
        ├── copyright
        ├── docs
        ├── rules
        └── source
            └── format


Was habe ich hier falsch gemacht? Ich komme an dieser Stelle einfach nicht weiter :-((

bluelupo

Ich hab' die Lösung gefunden Dank einer meisterhaften Lehrstunde von agaida. Die Probleme lagen in der Datei lvmsnap/lvmsnap-1.0/debian/source/format.

Die enthält jetzt schlicht und einfach ein:

1.0


..statt ursprünglich...

3.0 (quilt)

DeKa

Hi @bluelupo,
willst du per Script die Verschlüsselung deines systems anstoßen?

bluelupo

Hi DeKa,

nein, das ist ein Backupscript das die vorhandenen Logical Volumes via eines Snapshots sichert. Zuerst wird der Snapshot mit lvcreate erstellt, das passiert in Sekundenbruchteilen und danach wird mit dd auf ein Ziellaufwerk gesichert. Somit habe ich eine 1:1 Kopie von jedem LV. Zusätzlich wird noch der MBR und bei einem verschlüsselten System der LUKS-Header mitgesichert. Man kann damit auch einzelne LV's sichern, ein Auswahl davon oder alle LV's sichern.

Dies funktioniert auch mit einem verschlüsseltem System (dm-crypt/LUKS) das mit dem LogicalVolumeManager (lvm2) läuft.

Das ganze Shellscript hat so um die 600 Codezeilen und sich seit Jahren bei mir bewährt und mich mehrmals vor einem totalen Datenverlust gerettet.

DeKa