APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Warum Debian? Was muss ich vorher wissen? Wo geht's nach der Installation weiter?
Antworten
Benutzeravatar
jmar83
Beiträge: 299
Registriert: 20.06.2013 20:20:15

APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Beitrag von jmar83 » 16.05.2019 14:45:19

Hallo zusammen

Ich sollte ein APT-Repo erstellen, welches immer nur eine Version des Pakets beinhaltet, wo also immer nur über "apt-get install xyz" eine Vollinstallation oder ein Update* vorgenommen werden kann.

* Ist es überhaupt möglich, später, bei einer neueren Paket-Version, die bereits installierte und ältere Version per "apt-get install xyz" zu updaten?

Das Kreieren der .deb-Dateien klappt soweit gut. Was mir dabei aufgefallen ist, ist dass sich in der Datei "DEBIAN/control" die Versionsinformationen befinden. ("Version: 1.1.1-2") Nun sind aber in der APT-Repo-Verzeichnisstruktur unter der Datei "conf/distributions" auch noch irgendwelche Informationen enthalten, bei uns steht aktuell dort drin jedoch nix zur Version...

Fürs .deb-File nehme ich "dpkg -b ...", zu erstellen des APT-Repos das Tool "reprepro". (Kann ich soweit nur empfehlen, scheint relativ einfach zu sein damit: https://blog.packagecloud.io/eng/2017/0 ... -reprepro/)

...wie gesagt soll jeder Installer gleichzeitig ein Full-Installer (für die erste Installation) sein, und gleichzeitig auch als Updater fungieren können. Beim Update wird dann einfach die alte Version komplett mit der neuen ersetzt. (Vorher werden noch irgendwelche Dienste heruntergefahren etc.)

Gibt es zu diesem Fall irgendwelche best-practise-Ansätze? Evtl. kann mir jemand ein bisschen auf die Sprünge helfen damit...?

Für ein paar Tipps zum Thema wäre ich sehr dankbar.
Freundliche Grüsse, Jan

Benutzeravatar
jmar83
Beiträge: 299
Registriert: 20.06.2013 20:20:15

Re: APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Beitrag von jmar83 » 16.05.2019 14:49:17

-> Das der Update-Vorgang NACH dem Herunterladen per apt-getr über die Dateien "preinst" und/oder "postinst" entsprechend abgehandelt werden muss, ist mir soweit klar. (Z.B. Dienste installieren bei einer Full-Installation, jedoch herunterfahren beim Update (und danach wieder starten))

Es ist mir eher unklar, wie später, bei neueren Versionen, über "apt-get update" die Versionsinformationen zum neuen Paket geholt werden und ob dann ein erneutes "apt-get install xyz" ausreicht. Meines Wissens nach gibt es ja kein "apt-get upgrade PAKETNAME", sondern nur auf alles = "apt-get upgrade". (?)
Freundliche Grüsse, Jan

uname
Beiträge: 10011
Registriert: 03.06.2008 09:33:02

Re: APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Beitrag von uname » 16.05.2019 15:42:30

Also ich habe noch nie ein Repo erstellt. Es ist aber wohl so, dass der Client mit "apt-get update" die Liste der Pakete aktualisiert. Diese Liste basiert auf "Packages.gz". Diese Datei wiederum erzeugt man mit dpkg-scanpackages . Vielleicht mal in diese Richtung suchen.

https://debiananwenderhandbuch.de/dpkg- ... kages.html

Je Zeile in sources.list ein Packages.gz. Siehe Beispiel für Stretch amd64 main

Code: Alles auswählen

deb http://deb.debian.org/debian stretch main
Entspricht: http://deb.debian.org/debian/dists/stre ... ary-amd64/
(wie dists und binary-amd64 dazukommt weiß ich nicht ;-) )
In der Packages.gz stehen wiederum die Verweise auf die deb-Files mit Verzeichnis /pool/ wie http://deb.debian.org/debian/pool/

Ach ja. Mit "apt-get update" wird nur diese Liste aktualisiert. Die Pakete selbst aktualisierst du z. B. mit "apt-get dist-upgrade".

Benutzeravatar
jmar83
Beiträge: 299
Registriert: 20.06.2013 20:20:15

Re: APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Beitrag von jmar83 » 16.05.2019 16:42:58

Vielen Dank für Deinen Beitrag!
"Die Pakete selbst aktualisierst du z. B. mit "apt-get dist-upgrade""
...ja, aber dann sind es alle. Wie ich aber gerade gesehen habe, lässt sich "upgrade" auch auf einzelne Pakete anwenden:

Code: Alles auswählen

root@deployment:~/deployment/Temp# apt-get upgrade apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
apache2 is already the newest version (2.4.25-3+deb9u7).
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Gerade ausprobiert, kannte ich bisher noch nicht.
Freundliche Grüsse, Jan

Benutzeravatar
jmar83
Beiträge: 299
Registriert: 20.06.2013 20:20:15

Re: APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Beitrag von jmar83 » 17.05.2019 14:18:00

Na ja, nun müsste man halt irgendwo (?) die Versionsinformationen hinterlegen, entweder

a.) in der Datei "DEBIAN/control" im Installer

oder

b.) auf Ebene der APT-Repo-Verzeichnisstruktur


...wobei ich persönlich denke, dass beim Erstellen der APT-Repo-Verzeichnisstruktur die Informationen aus "DEBIAN/control" automatisch extrahiert werden. Es wird ja nicht der APT-Repo-Verzeichnisstruktur die Versionsinformationen verpasst, sondern dem Paket (also der .deb-Datei) selbst.
Freundliche Grüsse, Jan

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

Re: APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Beitrag von eggy » 18.05.2019 18:13:13

Die Versionsnummer wird beim Paketbau aus der debian/changelog extrahiert. Die Einträge dafür kannst Du per Hand anlegen oder via dch.
Sieht dann so aus (changelog aus Beispielpaket "hello"):

Code: Alles auswählen

hello (2.10-1) unstable; urgency=low

  * New upstream release.
  [...]

 -- Santiago Vila <sanvila@debian.org>  Sun, 22 Mar 2015 11:56:00 +0100

hello (2.9-2) unstable; urgency=low

  * Apply patch from Reuben Thomas to fix i18n of default message.
   [...]
dpkg-buildpackage baut mit diesen Infos dann das deb, hier z.B. hello_2.10-1_amd64.deb, wie Du siehst, wird der oberste Eintrag genutzt.
Mit dpkg-scanpackages erzeugt man anschliessend die Packages-Datei, die dann auch die Versionen der vorliegenden Pakete kennt.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22029
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Beitrag von KBDCALLS » 18.05.2019 19:20:39

Debianreprepro mit Signieren und allem was dazugehört für Pakete und Sourcen , auch udeb wenns sein muß.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
jmar83
Beiträge: 299
Registriert: 20.06.2013 20:20:15

Re: APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Beitrag von jmar83 » 20.05.2019 19:41:05

Hallo zusammen!!

Auch euch beiden vielen Dank für die Beiträge! :-)

@eggy: Dann braucht's also doch noch ein wenig mehr als ein simples "dpkg -b ..."... wobei es von unserer Anwendung keine Update-Pakete geben soll, die neuste Version soll immer Updater und Full-Installer gleichzeitig sein. Idealerweise kann man dann, bei einem Update, statt "apt-get install ..." den Befehel "apt-get upgrade ..." eingeben. Wobei mir aktuell nicht ganz klar ist, ob das überhaupt so geht. (Sollte doch zumindest theoretisch möglich sein?)

@KBDCALLS: Apropos "udeb": Zwar findet man bei Google alles möglich darüber (nur keine vernünftige Anleitung), hier habe ich allerdings was gefunden:

https://unix.stackexchange.com/question ... b-packages

...nämlich dass damit kein Upgrade und auch keine Deinstallation möglich ist. Ist das korrekt so? In diesem Fall ist es definitiv kein Thema für meine Leute und mich.
Zuletzt geändert von jmar83 am 21.05.2019 09:26:54, insgesamt 1-mal geändert.
Freundliche Grüsse, Jan

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22029
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Beitrag von KBDCALLS » 20.05.2019 22:55:03

udeb sind im Grunde Pakete mit identischem Inhalt wie deb nur das die wesentlich kleiner sind weil der Dokukram nicht paketiert wird damit sie auf Installationsmedien weniger Platz beanspruchen. Finden also nur währen der Installation verwendung.

Hier der Link "Debian-Leitfaden für Neue Paketbetreuer"
findet sich aber auch alles im Repository.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
jmar83
Beiträge: 299
Registriert: 20.06.2013 20:20:15

Re: APT-Repos erstellen für Installer, welcher gleichzeitig auch updaten kann?

Beitrag von jmar83 » 21.05.2019 09:26:34

Vielen Dank!!
Freundliche Grüsse, Jan

Antworten