Dauerhafte Änderung im postinst-Skript

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Livingston
Beiträge: 568
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Dauerhafte Änderung im postinst-Skript

Beitrag von Livingston » 25.11.2021 20:18:10

Nmorgn,
ich habe für mein privates Bootstick-Projekt ein kleines Script erstellt, das eine grub.cfg-Datei ohne Rückgriff auf /etc/grub.d/* und /etc/default/grub erstellt. Das ganze funktioniert tadellos, liegt in /usr/local/sbin und heißt myupdate-grub.
Wäre natürlich schön, wenn es bei jedem update des grub-Paketes aufgerufen würde, und auch verhindert werden könnte, dass der reguläre Aufruf von update-grub erfolgt.

Mir schwebt vor, in das postinst-Script reinzugrätschen. Wäre nur die Frage, ob postinst selbst nicht einem Upgrade zum Opfer fällt. Gibt es dafür eine dauerhafte Lösung? Bin ich vielleicht komplett auf dem Holzweg?

Nebenbei: Der Vorgang lässt sich für ein Kernelupdate leicht kontrollieren, indem man /etc/kernel/postinst.d/zz-update-grub entsprechend anpasst. grub stellt aber für sich selbst keine solche Konfigurationsmöglichkeit in /etc zur Verfügung.
$ <- user
# <- root. Wer meint, da müsse $sudo stehen, mache das bitte mit seinem (Ge-)wissen aus - aber nicht mit mir.

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

Re: Dauerhafte Änderung im postinst-Skript

Beitrag von JTH » 25.11.2021 20:43:29

Eins der Maintainer-Skripte (postinst und co.) zu überschreiben dürfte nicht möglich sein. Die kommen mit jedem zu installierenden und daher neu entpackten Paket (-update) neu mit. Ich kenne zumindest keine Hooks, um an der Stelle einzugreifen.

Wenn du dir sicher bist, dass dein eigenes update-grub das originale voll vertreten kann, könntest du das letztere einfach ersetzen. Das ginge z.B. in dem du das originale /usr/sbin/update-grub mit dpkg-divert aus dem Weg schiebst, damit es bei Upgrade von Debiangrub2-common nicht wieder „repariert“ wird. Dein eigenes update-grub sollte dann auch eben so heißen, ohne my am Anfang. Evtl musst du es noch nach /usr/sbin verlinken, ich bin mir nicht ganz sicher, ob der PATH für Maintainer-Skripte /usr/local/sbin enthält.
Manchmal bekannt als Just (another) Terminal Hacker :D

Benutzeravatar
Livingston
Beiträge: 568
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: Dauerhafte Änderung im postinst-Skript

Beitrag von Livingston » 25.11.2021 20:55:44

Der Ansatz gefällt mir, insbesondere klingt die man-page vielversprechend:
dpkg-divert is the utility used to set up and update the list of diversions.
File diversions are a way of forcing dpkg(1) not to install a file into its location, but to a diverted location.
Ich werde mal ein wenig rumtüfteln und melde in ein paar Tagen zurück, wie es gelaufen ist.
Danke Dir :)
$ <- user
# <- root. Wer meint, da müsse $sudo stehen, mache das bitte mit seinem (Ge-)wissen aus - aber nicht mit mir.

Antworten