deb Paket bauen, Dateien im Paket nicht enthalten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Cordess
Beiträge: 177
Registriert: 09.01.2006 00:37:22

deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von Cordess » 05.03.2021 16:46:43

Also, ich habe mir jetzt einen Ordner nach den Vorgaben der grottigen Packaging Intro Anleitung erstellt.
https://wiki.debian.org/Packaging/Intro ... nPackaging

Also bspw.:

Code: Alles auswählen

programm_1.0/
In diesen Ordner habe ich dann für die Dateien, die ich installieren, also im Paket haben will, die Verzeichnisstruktur erstellt, die man auch sonst in einem Debiansystem hat.

D.h. ich habe folgende Verzeichnisse in diesem Ordner abgebildet:

Code: Alles auswählen

/usr/bin/
/etc/
Darin kamen dann die Dateien, die ich brauche, also durch das Paket installiert werden sollen:

Code: Alles auswählen

/usr/bin/programm
/etc/meinverzeichnis/config.xml
Anschließend wurden noch nach der grottigen Packaging Intro Anleitung das Debian Verzeichnis mit den ganzen nötigen Configdateien erstellt.

debian/source/format bekam hierbei den Inhalt

Code: Alles auswählen

3.0 (native)
anschließend habe ich

Code: Alles auswählen

dpkg-buildpackage -us -uc
ausgeführt.
Dieses hat mein programm_1.0_all.deb Paket erstellt.

Wenn ich das aber mit Ark öffne und mir die Archivdatei data.tar.gz ansehe, dann fehlen darin die Dateien und Verzeichnisse, die installiert werden sollten.
Also

Code: Alles auswählen

/usr/bin/programm
/etc/meinverzeichnis/config.xml
Das einzige was vorhanden ist, ist ein automatisch generierter Eintrag für

Code: Alles auswählen

/usr/share/doc/programm/changelog.gz
/usr/share/doc/programm/copyright
Kann mir jemand sagen woran das liegt und was da fehlt?
Ich dachte dpkg-buildpackage nimmt alles was sich in dem Ordner befindet auf und packt es in das deb Paket.
Muss ich die Dateien einzeln irgendwo spezifizieren?

PS:
Es ist schon eine Ewigkeit her als ich meine erste Pakete selber erstellt habe. Allerdings komme ich aus der Slackware Ecke. Da war das recht unkompliziert und bequem.

Cordess
Beiträge: 177
Registriert: 09.01.2006 00:37:22

Re: deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von Cordess » 05.03.2021 17:09:34

Cordess hat geschrieben: ↑ zum Beitrag ↑
05.03.2021 16:46:43
Muss ich die Dateien einzeln irgendwo spezifizieren?
So, ich habe es jetzt hingekriegt. Ich sag ja, die Packaging Intro Anleitung ist grottig und das war nicht der einzige Showstopper mit dem ich wegen dieser Anleitung mich heute herumärgern musste.

Zur Lösung:
Man muss, neben all den anderen Dateien im Debian Ordner auch noch eine programm.install Datei anlegen.
Und in dieser werden dann die Dateien angegeben inkl. Ordner, wo man sie hin haben will.

Für meinen Fall muss die also die Einträge:

Code: Alles auswählen

/usr/bin/programm
/etc/meinverzeichnis/config.xml
enthalten.

Cordess
Beiträge: 177
Registriert: 09.01.2006 00:37:22

Re: deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von Cordess » 05.03.2021 17:29:44

Bedauerlicherweise werden die in /etc/ installierten Dateien nicht wieder gelöscht, wenn man das Paket deinstalliert.
Ich muss dazu den Befehl

Code: Alles auswählen

dpkg --purge paketname
verwenden, damit das klappt.

Wie kann man das Paket so erstellen, dass die installierten Configdateien wieder automatisch entfernt werden, wenn man das Paket deinstalliert?
Ich möchte nämlich keine Configleichen im System haben.

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

Re: deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von JTH » 05.03.2021 17:45:30

Das ist das ganz normale Verhalten von dpkg. Wenn du ein Paket deinstallierst, bleiben Konfigurationen erhalten. Nur wenn man es purget, werden auch die entfernt.

Alle Dateien unter /etc werden von dh_installdeb als conffiles registriert und haben deshalb obiges Verhalten. Wenn man das umgehen möchte – ob das eine gute Idee ist, sei dahingestellt – müsste man die Dateien von Hand im postinst nach /etc kopieren, ist dann allerdings im prerm auch manuell fürs Löschen verantwortlich. Andere Varianten erwähne ich mal bewusst nicht ;)
Zuletzt geändert von JTH am 05.03.2021 17:51:38, insgesamt 1-mal geändert.

Cordess
Beiträge: 177
Registriert: 09.01.2006 00:37:22

Re: deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von Cordess » 05.03.2021 17:49:56

JTH hat geschrieben: ↑ zum Beitrag ↑
05.03.2021 17:45:30
Das ist das ganz normale Verhalten von dpkg. Wenn du ein Paket deinstallierst, bleiben Konfigurationen erhalten. Nur wenn man es purget, werden auch die entfernt.
Ja und wie kann ich das ändern?

Gibt's da kein overwrite bei der Paketerstellung um auch die Configs loszuwerden?

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

Re: deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von JTH » 05.03.2021 17:57:07

Cordess hat geschrieben: ↑ zum Beitrag ↑
05.03.2021 17:49:56
Ja und wie kann ich das ändern?
Evtl. kann man dpkg so konfigurieren, aus einem remove immer, für jedes Paket ein purge zu machen. Aber das ist keine gute Idee.

Cordess hat geschrieben: ↑ zum Beitrag ↑
05.03.2021 17:49:56
Gibt's da kein overwrite bei der Paketerstellung um auch die Configs loszuwerden?
Meines Wissens nach nicht. Höchstens „manuell“ wie oben noch angehängt. Du willst damit halt das Grundkonzept von dpkg verändern, das ist nicht vorgesehen.

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

Re: deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von eggy » 05.03.2021 19:10:28

Was Du da vorhast, ist auf nem Debian so keine gute Idee: kann immer mal vorkommen, dass nen User sich Notizen in seinen Configs macht oder die grundsätzlich für später aufheben will, auch gibts Leute, die deinstallieren nen Paket mal kurzfristig, weil sie den Plattenplatz anderweitig nutzen wollen und wollen das am nächsten Tag dann wieder installieren, ohne alles neu einstellen zu müssen, ... daher sollte man da tunlichst die Finger von lassen.
Falls Du Dein Paket "offiziell" in Debian haben willst, werden sie Dir den Punkt aus genannten Gründen vermutlich gewaltig um die Ohren hauen, daher lieber gleich "richtig" machen
Aber falls Du das Paket nur für Dich baust: postrm script, siehe Kapitel 6 in der Policy
https://www.debian.org/doc/debian-polic ... ripts.html
Und befass Dich mal mit den dh overrides in der rules.
Das ist praktisch nen Makefile, für den Paketbau, siehe man dh, man debhelper und die darin genannten Ziele.
Die Policy und der new maintainer guide sind übrigens die besseren Startpunkte, da sollte alles nötige drin stehen.

Cordess
Beiträge: 177
Registriert: 09.01.2006 00:37:22

Re: deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von Cordess » 05.03.2021 22:43:54

eggy hat geschrieben: ↑ zum Beitrag ↑
05.03.2021 19:10:28
Aber falls Du das Paket nur für Dich baust: postrm script, siehe Kapitel 6 in der Policy
https://www.debian.org/doc/debian-polic ... ripts.html
Das ist nur für mich.
Ich möchte da etwas ergänzen, da es bei den offiziellen Debianpaketen fehlt.
Und befass Dich mal mit den dh overrides in der rules.
Das ist praktisch nen Makefile, für den Paketbau, siehe man dh, man debhelper und die darin genannten Ziele.
Die Policy und der new maintainer guide sind übrigens die besseren Startpunkte, da sollte alles nötige drin stehen.
Danke für die Tipps, vor allem den Hinweis mit dem new maintainer guide.

Die Debian Doku ist leider ziemlich zerstreut und teils auch nicht mehr auf dem aktuellsten Stand und auch manchmal langatmig.
Mal wird das eine Tool genommen, mal das andere. Das ganze ist sicherlich auch historisch bedingt, aber der Zustand der Doku ist schon recht schlimm.

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

Re: deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von eggy » 06.03.2021 05:29:26

Cordess hat geschrieben: ↑ zum Beitrag ↑
05.03.2021 22:43:54
Mal wird das eine Tool genommen, mal das andere. Das ganze ist sicherlich auch historisch bedingt, aber der Zustand der Doku ist schon recht schlimm.
Es fehlt leider an allen Ecken an Manpower, und was die Paketierung angeht, da erarbeitet sich wohl jeder seinen persönlichen Workflow, dokumentiert den soweit er es verstanden hat, bekommt im newmaintainerprozess die Kanten abgeschliffen und bleibt dann dabei und bei der nächsten Generation ist das nächste Tool dran :mrgreen:

Wie gesagt, in der Policy steht ja eigentlich alles drin, und der new mainter guide ist nen guter Startplatz, man muss sich "nur" mal die Zeit nehmen das in Ruhe durchzuarbeiten.
Das wird schon, einfach dran bleiben und gegebenenfalls im Debian IRC oder auf der Mailingliste nachfragen, https://www.debian.org/doc/manuals/main ... tml#helpme

Und wenn Du ne Stelle in der Doku findest, die Überarbeitung braucht: einfach machen. Der nächste wird es Dir danken (als ich damals angefangen hab, war es noch vieeeeeeeeeeeel schlimmer - kannst Du dann auch sagen :mrgreen: )
Das Debianwiki ist öffentlich, da kannst Dir einfach nen Account machen. Gegen die Guides kann man in der Regel nen normalen Bugreport einreichen, da gibts entsprechende Pakete (maint-guide, maint-guide-de, debian-policy, ...). Und auch unser Wiki https://wiki.debianforum.de/ freut sich auch über neue Artikel, Deine normalen Acocuntdaten sollten schon funktionieren, falls nicht (das Wiki ist manchmal etwas eigen), kurze PM an unseren Häuptling feltel, der fixt sowas recht fix.

Cordess
Beiträge: 177
Registriert: 09.01.2006 00:37:22

Re: deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von Cordess » 06.03.2021 17:06:37

eggy hat geschrieben: ↑ zum Beitrag ↑
06.03.2021 05:29:26
Es fehlt leider an allen Ecken an Manpower, und was die Paketierung angeht, da erarbeitet sich wohl jeder seinen persönlichen Workflow, dokumentiert den soweit er es verstanden hat, bekommt im newmaintainerprozess die Kanten abgeschliffen und bleibt dann dabei und bei der nächsten Generation ist das nächste Tool dran :mrgreen:
Ja, so wird es wohl sein. :D
Wie gesagt, in der Policy steht ja eigentlich alles drin, und der new mainter guide ist nen guter Startplatz, man muss sich "nur" mal die Zeit nehmen das in Ruhe durchzuarbeiten.
Das wird schon, einfach dran bleiben und gegebenenfalls im Debian IRC oder auf der Mailingliste nachfragen, https://www.debian.org/doc/manuals/main ... tml#helpme
Ich werde sie mir mal durchlesen, sobald ich dazu komme.
Das Debianwiki ist öffentlich, da kannst Dir einfach nen Account machen.
Wie aktiv Ist das offizielle Wiki bezüglich der deutschen Sprache und gibt es eine Zusammenarbeit mit eurem Wiki, also werden die Artikel gegeneinander synchronisiert?
https://wiki.debian.org/de/FrontPage?ac ... StartSeite
https://wiki.debianforum.de/Netzwerk
Gegen die Guides kann man in der Regel nen normalen Bugreport einreichen, da gibts entsprechende Pakete (maint-guide, maint-guide-de, debian-policy, ...).
Wurde bei Debian eigentlich schon mal darüber nachgedacht die Guides alle in die Wiki zu packen um etwas Struktur in die Debian Doku zu bekommen?
Wenn man nämlich die Wiki zum zentralen Ort machen würde und die Benutzer dort einen Account anlegen können, den sie auch zum Reporten von Bugs nutzen können, würde das dem ganzen Projekt sicher gut tun. Und für diejenigen die die Doku lokal brauchen, könnte man Exportfunktionen schreiben.
Vielleicht wäre es auch möglich die Wiki mit Git zu verküpfen, so dass sich die Leute ihre lokale Wiki per git aktualisieren könnten.
Und auch unser Wiki https://wiki.debianforum.de/ freut sich auch über neue Artikel, Deine normalen Acocuntdaten sollten schon funktionieren, falls nicht (das Wiki ist manchmal etwas eigen), kurze PM an unseren Häuptling feltel, der fixt sowas recht fix.
Ja, das scheint zu funktionieren. Ich kann mich bei eurer Wiki jedenfalls mit den Forenaccountdaten einloggen.

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

Re: deb Paket bauen, Dateien im Paket nicht enthalten

Beitrag von eggy » 06.03.2021 21:49:08

Cordess hat geschrieben: ↑ zum Beitrag ↑
06.03.2021 17:06:37
Wie aktiv Ist das offizielle Wiki bezüglich der deutschen Sprache und gibt es eine Zusammenarbeit mit eurem Wiki, also werden die Artikel gegeneinander synchronisiert?
"euer" Wiki ist auch Dein Wiki.

Und das offizielle Debian Wiki ist ebenfalls aller Leute Wiki.
Ich denk, es gibt immer mal wieder einzelne Leute, die vielleicht an beiden Stellen nen Account haben und Kleinigkeiten die Ihnen auffallen fixen oder was sie Schreiben hier und da einstellen. Aber im Großen und Ganzen vermutlich eher "nö".
Cordess hat geschrieben: ↑ zum Beitrag ↑
06.03.2021 17:06:37
Wurde bei Debian eigentlich schon mal darüber nachgedacht die Guides alle in die Wiki zu packen um etwas Struktur in die Debian Doku zu bekommen?
Wenn man nämlich die Wiki zum zentralen Ort machen würde und die Benutzer dort einen Account anlegen können, den sie auch zum Reporten von Bugs nutzen können, würde das dem ganzen Projekt sicher gut tun. Und für diejenigen die die Doku lokal brauchen, könnte man Exportfunktionen schreiben.
Vielleicht wäre es auch möglich die Wiki mit Git zu verküpfen, so dass sich die Leute ihre lokale Wiki per git aktualisieren könnten.
Drüber nachgedacht ganz sicher. Ich hätt nen bissel Angst vor Vandalismus und anderen Leuten hinterherräumen kann schon extrem zeitaufwendig werden. Ist vermutlich der Grund, dass das so gehandhabt wird. Dass die Qualität des Wikis dort sehr durchwachsen ist, hast ja selbst festgestellt. Auf die "offizielle" Doku wird da mehr geachtet.
Die meisten Sachen sollten schon länger in nem Git sein, meist steht's im Paket/Paketbeschreibung/Metadaten wo es gehostet ist, https://salsa.debian.org/dbnpolicy/policy z.B.
Sonst einfach mal auf https://salsa.debian.org/ suchen, da sollte da das meiste zu finden sein
Und über die Seiten der entsprechenden Teams findet man auch viel: https://wiki.debian.org/Teams
Cordess hat geschrieben: ↑ zum Beitrag ↑
06.03.2021 17:06:37
Ja, das scheint zu funktionieren. Ich kann mich bei eurer Wiki jedenfalls mit den Forenaccountdaten einloggen.
nicht "euer". "unser". also auch Deins :mrgreen:

Antworten