[geloest] Debian Pakete (deb Datei) bauen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
sharbich
Beiträge: 346
Registriert: 27.09.2013 21:12:40

[geloest] Debian Pakete (deb Datei) bauen

Beitrag von sharbich » 12.12.2021 13:50:52

Hallo Ihr Lieben,
ich möchte ein deb Paket erstellen. Folgendes habe ich gemacht

Code: Alles auswählen

sudo apt install build-essential cmake libreadline-dev libssl-dev liblzo2-dev libacl1-dev
git clone https://github.com/bareos/bareos.git
cd bareos
mkdir build
cd build
cmake -Dclient-only=yes -Dconfdir=/etc/bareos ../
make
Ich möchte jetzt nicht make install ausführen, sondern die deb Pakete bauen lassen. Könnt Ihr mir sagen wie ich das hinbekomme?

Gruß von Stefan Harbich
Zuletzt geändert von sharbich am 13.01.2022 12:09:38, insgesamt 1-mal geändert.

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Debian Pakete (deb Datei) bauen

Beitrag von JTH » 12.12.2021 14:05:55

Das Repository hat einen debian/-Ordner und ist damit anscheinend von Haus aus vorbereite, als Debian-Paket gebaut zu werden.

Vorausgesetzt, es enthält keine Fehler, ist das damit einfach:

Code: Alles auswählen

# Als root:
~# apt install dpkg-dev fakeroot
~# apt build-dep /absoluter/pfad/zum/ordner/mit/bareos

# Als sharbich:
bareos$ dpkg-buildpackage --no-sign -b
Fertig. Die gebauten Pakete liegen im Elternverzeichnis des bareos-Ordners.
Manchmal bekannt als Just (another) Terminal Hacker.

sharbich
Beiträge: 346
Registriert: 27.09.2013 21:12:40

Re: Debian Pakete (deb Datei) bauen

Beitrag von sharbich » 12.01.2022 16:05:59

Hallo,
ich versuche die aktuellen bareos Pakete durch folgende Schritte zu bauen. Leider klappt das nicht.

Code: Alles auswählen

# pt install dpkg-dev fakeroot
# git clone https://github.com/bareos/bareos
# apt build-dep /bareos
Nach dem letzten Befehl bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

root@pime01:~# apt build-dep /bareos
E: Nicht unterstützte Datei /bareos auf Befehlszeile angegeben
E: Es muss mindestens ein Paket angegeben werden, dessen Bauabhängigkeiten überprüft werden sollen.
Was mache ich falsch?

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Debian Pakete (deb Datei) bauen

Beitrag von JTH » 12.01.2022 16:24:31

Die erste Zeile hättest du dir im Normalfall sparen können.

Git als root zu benutzen ist nicht notwendig und eher von abzuraten. Code auschecken und dann das Paket selbst bauen geht auch als normaler Benutzer.

Du musst dem apt build-dep den korrekten Pfad übergeben. In deinem Fall fehlt wahrscheinlich ein Punkt vor dem Schrägstrich.
Manchmal bekannt als Just (another) Terminal Hacker.

sharbich
Beiträge: 346
Registriert: 27.09.2013 21:12:40

Re: Debian Pakete (deb Datei) bauen

Beitrag von sharbich » 12.01.2022 17:06:24

JTH hat geschrieben: ↑ zum Beitrag ↑
12.01.2022 16:24:31
Du musst dem apt build-dep den korrekten Pfad übergeben. In deinem Fall fehlt wahrscheinlich ein Punkt vor dem Schrägstrich.
Wenn ich das so mache erhalte ich folgende Meldung:

Code: Alles auswählen

Hinweis: Verzeichnis »./bareos« wird verwendet, um die Bauabhängigkeiten zu bekommen.
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
  apache2 apache2-bin apache2-data apache2-utils autoconf automake autopoint autotools-dev chrpath debhelper dh-autoreconf dh-strip-nondeterminism
  dwz gettext icu-devtools intltool-debian libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libarchive-zip-perl libcap-dev
  libdebhelper-perl libegl-dev libfile-stripnondeterminism-perl libgl-dev libgles-dev libgles2-mesa-dev libglx-dev libicu-dev libjansson-dev
  libjson-c-dev libpq-dev libpq5 libpthread-stubs0-dev libqt5test5 libsigsegv2 libtool libvulkan-dev libwrap0-dev libx11-dev libxau-dev libxcb1-dev
  libxdmcp-dev libxext-dev libxml2-dev m4 mtx po-debconf qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-tools qtchooser x11proto-core-dev
  x11proto-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev
0 aktualisiert, 59 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 22,3 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 100 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] 
Warum werden nun weitere Pakete installiert?

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Debian Pakete (deb Datei) bauen

Beitrag von JTH » 12.01.2022 18:15:43

sharbich hat geschrieben: ↑ zum Beitrag ↑
12.01.2022 17:06:24

Code: Alles auswählen

Hinweis: Verzeichnis »./bareos« wird verwendet, um die Bauabhängigkeiten zu bekommen.
[…]
Warum werden nun weitere Pakete installiert?
Das ist die Aufgabe von apt build-dep – beachte, der Befehl heißt nicht apt build-deb. Ausgeschrieben hieße das „build-dependencies“, auf Deutsch „Abhängigkeiten zu Bauen“. Siehe man apt-get zu build-dep.
Manchmal bekannt als Just (another) Terminal Hacker.

sharbich
Beiträge: 346
Registriert: 27.09.2013 21:12:40

Re: Debian Pakete (deb Datei) bauen

Beitrag von sharbich » 12.01.2022 19:15:49

Hallo,
okay das habe ich nun verstanden. Lieben Dank für Deine Hilfe. Beim letzten Befehl:

Code: Alles auswählen

# Als sharbich:
bareos$ dpkg-buildpackage --no-sign -b
kommt aber wieder eine Fehlermeldung:

Code: Alles auswählen

sharbich@pime01:/tmp/bareos# dpkg-buildpackage --no-sign -b
dpkg-buildpackage: Fehler: Datei debian/changelog kann nicht geöffnet werden: No such file or directory
Die Datei changelog im Debian Ordner existiert nicht.

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: Debian Pakete (deb Datei) bauen

Beitrag von eggy » 12.01.2022 19:48:36

Schau Dir fürs changelog mal dch aus den devscripts an, Details in der manpage, --create und später -i sind für Dich vermutlich am interessantesten

sharbich
Beiträge: 346
Registriert: 27.09.2013 21:12:40

Re: Debian Pakete (deb Datei) bauen

Beitrag von sharbich » 12.01.2022 19:59:26

eggy hat geschrieben: ↑ zum Beitrag ↑
12.01.2022 19:48:36
Schau Dir fürs changelog mal dch aus den devscripts an, Details in der manpage, --create und später -i sind für Dich vermutlich am interessantesten
Tut mir leid, da muss ich leider passen. Ich bin nun total verwirrt. Ich glaube wir haben uns total miss verstanden. Was habe ich gemacht und was wollte ich erreichen:

1. Ich wollte auf mein Raspberry PI4 die Software bareos-filedaemon installieren. Mit dem Befehl "apt-get install bareos-filedaemon" hat das auch funktioniert. Allerdings in der Version 16.x.y.z

Ich wollte aber die aktuelle Version 21.x.y.z haben

2. Also habe ich versucht über das git diese zu installieren. Genau da hänge ich jetzt und bekomme die deb Pakete nicht gebaut.

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: Debian Pakete (deb Datei) bauen

Beitrag von eggy » 12.01.2022 20:12:39

Dir fehlt die Datei debian/changelog, richtig? Die hat nen bestimmtes Format. Jetzt kann man die per Hand basteln, oder einfach nen Tool nehmen, das einem die Arbeit erleichtert. "apt-get install devscripts", dann kurz manpage lesen "man dch", ich vergess nämlich immer welche initialen Werte man setzen kann, aber das sollte dadrinstehn, und eh ich Dir alles vorkau, kannst auch kurz selbst reinsehn, geht schneller (für uns beide :mrgreen: ), dann "dch --create und-evtl-noch-irgendwas-was-ichvergessenhab" und die Datei ist da. Später, wenn Du auf die nächste Version updaten willst, alte Datei nehmen und "dch -i".

edit: nachtrag, https://www.debian.org/doc/manuals/main ... #changelog da steht wie es aussehen muss
edit2: bzw https://www.debian.org/doc/debian-polic ... gchangelog

sharbich
Beiträge: 346
Registriert: 27.09.2013 21:12:40

Re: Debian Pakete (deb Datei) bauen

Beitrag von sharbich » 13.01.2022 12:09:11

Hallo,
lieben Dank für die Unterstützung. Nachdem ich die Datei changelog im Debian Ordner erstellt habe konnte ich alle bareos*.deb Pakete bauen.
Lieben Gruß von Stefan Harbich

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: [geloest] Debian Pakete (deb Datei) bauen

Beitrag von eggy » 13.01.2022 16:58:57

:THX:

Der Vollständigkeit halber sei noch auf lintian verwiesen, falls Du mal nen Paket bauen willst, bei dem es drauf ankommt, dass es so "sauber" wie möglich ist, weil Du es weitergeben oder nach Debian bringen willst.

Da wären dann -i und -I die Zauberworte nach denen man in der Manpage suchen will.

Beispiele (auf irgendeins der Pakete klicken, da dann auf die Fehlermeldungen): https://lintian.debian.org/sources
Manual: https://lintian.debian.org/manual/index.html

Antworten