Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] [gelöst] debiankonformes Paket für ein Shellscript bauen  (Read 2925 times)

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
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
Code: [Select]
$ mkdir lvmsnap
$ cd lvmsnap
$ mkdir lvmsnap-1.0
$ cd lvmsnap-1.0

Vorlage erstellt
Code: [Select]
$ 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
Code: [Select]
$ rm debian/*.ex debian/*.EX
$ rm debian/README.Debian
$ rm debian/README.source

Dann die beiden Dateien editiert
Code: [Select]
$ vi copyright
$ vi control

Ein Verzeichnis erstellt wo mein Bashscript liegt
Code: [Select]
$ mkdir lvmsnap-1.0/bin
$ cp run_lvmsnap.sh lvmsnap-1.0/bin

Das Paket bauen, leider ohne Erfog
Code: [Select]
$ 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
Code: [Select]
$ 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 :-((
« Last Edit: 2015/12/09, 21:24:49 by bluelupo »

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Re: debiankonformes Paket für ein Shellscript bauen
« Reply #1 on: 2015/12/09, 21:24:02 »
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:
Code: [Select]
1.0

..statt ursprünglich...
Code: [Select]
3.0 (quilt)

DeKa

  • Guest
Re: [gelöst] debiankonformes Paket für ein Shellscript bauen
« Reply #2 on: 2015/12/10, 17:47:05 »
Hi @bluelupo,
willst du per Script die Verschlüsselung deines systems anstoßen?

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Re: [gelöst] debiankonformes Paket für ein Shellscript bauen
« Reply #3 on: 2015/12/10, 19:30:07 »
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

  • Guest
Re: [gelöst] debiankonformes Paket für ein Shellscript bauen
« Reply #4 on: 2015/12/10, 20:17:10 »
Respekt, da hast du ja super Arbeit geleistet.