deb package und patchfile?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

deb package und patchfile?

Beitrag von toaster » 16.02.2007 10:06:44

Hallo Debianer,

ist es möglich, für ein bestimmtest deb package ein externes postinst Script anzugeben, ohne das package selbst zu verändern? Ich dachte da eventuell an die apt.conf oder so.

Hintergrund:
Ich habe hier ein händisch gepflegtes package. Dabei istalliere ich z.Zt. das package aus einem tgz Archiv. Danach setzte ich ein kleines patch-file drüber ... fertig.
Nun gibt es diese Software aber auch als deb package (ab etch sogar in stable). Ich kann natürlich das package aus den sources listen heraus installieren und danach mein patch drübersetzen. Aber wie sieht das mit einem sec-update aus?

Möglichkeiten:
1. Ich könnte das package pinnen und somit jede Veränderung unterbinden.

2. Etwas verrückter: Ich könnte ein update vom entspr. package per syslog feststellen und daraufhin ein script starten, welches mein patch einspielt.

3. ??

Nun, die schönste Lösung wäre eine Zeile in der apt.conf (oder irgendwo anders) in etwa wie folgt:
packagename postinst=/path/script

Hatte von euch schon mal einen änlichen Fall? Gibt es u.U. eine elegante Lösung? Oder was würdet ihr empfehlen? Wenn es keine allgemeine Lösung gibt, werde ich das package vermutlich pinnen und muß die upgrades selbst im Auge behalten.

Besten Dank und Gruß

Benutzeravatar
mragucci
Beiträge: 598
Registriert: 08.09.2004 03:21:24
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Endor
Kontaktdaten:

RE

Beitrag von mragucci » 12.03.2007 08:50:45

Das einfachste ist ein

Code: Alles auswählen

aptitude hold <paketname>
Ich will im Schlaf sterben - Wie mein Opa...
Und nicht weinend und schreiend wie sein Beifahrer!
-----
https://www.whisperedshouts.de

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Beitrag von toaster » 12.03.2007 09:58:54

aptitude habe ich noch nie verwendet ;) 'hold' ist aber sicher nix anderes als ein pinnen? Da steht nix genaues im manual.

Eigentlich steht dem pinnen ja auch nix etgegen, aber ich habe unendliches Vertrauen zur deb-group und führe per cron etwas in der Art 'apt-get -qq -y update && apt-get -qq -y upgrade && apt-get -qq autoclean || _log 3 "update failed"' aus ;) Sicher man kann darüber streiten, aber wartungsarme systeme find ich nett.

Ich sollte mir mal 'Post-Invoke' der apt.conf ansehen ... hatte jedoch noch keine Zeit.

Benutzeravatar
mragucci
Beiträge: 598
Registriert: 08.09.2004 03:21:24
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Endor
Kontaktdaten:

RE

Beitrag von mragucci » 12.03.2007 10:07:03

Code: Alles auswählen

aptitude hold paketname

ist das Gleiche wie

Code: Alles auswählen

echo packagename hold | dpkg --set-selections
und verhindert, dass ein Paket auf eine neuere Version gebracht wird. Das dürfte IMHO sicherer sein als ein Pinning (da afaik beim pinnen nur auf ein Debian-Release verwiesen werden kann?!?).

Mit anderen Worten: Das Teil wird einfach nicht mehr angefasst und bleibt in der momentan installierten Version erhalten bis du den hold-Status wieder entfernst.
Ich will im Schlaf sterben - Wie mein Opa...
Und nicht weinend und schreiend wie sein Beifahrer!
-----
https://www.whisperedshouts.de

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Re: RE

Beitrag von toaster » 12.03.2007 10:45:01

mragucci hat geschrieben: (da afaik beim pinnen nur auf ein Debian-Release verwiesen werden kann?!?).
Nein, Versionen sind auch möglich (z.bsp. Pin: "version 0.7.1-2). Hier ein kurzer und leichter Artikel. Aber das '--set-selections' ist sicherlich eleganter ... bin aber noch am lesen ;)

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Beitrag von toaster » 12.03.2007 12:10:08

Also 'Post-Invoke' ist leider nicht verwendbar, da es keine Argumente an das auswertende Script durchreicht.

Es heißt also pinnen oder eben halten. Aber eigentlich kann ich mir nicht vorstellen, das Post-Invoke mit Parametern sonst niemand braucht, zum loggen, zum patchen ... :(

Antworten