Paket erstellen, das Dateien anderer Pakete überschreibt
Paket erstellen, das Dateien anderer Pakete überschreibt
Hi!
Ich bin gerade dabei Initng [1] in ein Debianpaket zu packen. Das klappt auch soweit, es gibt jedoch ein größeres Problem: Dieses Projekt überschreibt zum Beispiel /sbin/halt. Da diese Datei zum SysVinit-Paket gehört gibt das logischerweise Probleme.
Das es hierfür keine optimale Lösung gibt ist mir klar. Meine Frage: Ist es irgendwie möglich das elegant (also ohne --force-overwrite) zu lösen (am besten, so dass apt-get die Datei installieren könnte)? So dass man quasi den Benutzer informiert, dass Dateien eines anderen Pakets überschrieben werden, der dies abnickt, man die Dateien sichert und bei der Deiinstallation eventuell wieder einspielt? Und das ganze nätürlich noch ohne das Paket dessen Datei überschrieben wird zu deiinstallieren?
Könnte mir ja gut vorstellen, dass es dafür keine offizielle Methode gibt, aber vielleicht besteht ja doch Hoffnung.
Ein Tipp wie man - trotz --force-overwrite - ein Backup machen könnte wäre schonmal ein Anfang
Thx
Trigger
[1] http://initng.thinktux.net/
Ich bin gerade dabei Initng [1] in ein Debianpaket zu packen. Das klappt auch soweit, es gibt jedoch ein größeres Problem: Dieses Projekt überschreibt zum Beispiel /sbin/halt. Da diese Datei zum SysVinit-Paket gehört gibt das logischerweise Probleme.
Das es hierfür keine optimale Lösung gibt ist mir klar. Meine Frage: Ist es irgendwie möglich das elegant (also ohne --force-overwrite) zu lösen (am besten, so dass apt-get die Datei installieren könnte)? So dass man quasi den Benutzer informiert, dass Dateien eines anderen Pakets überschrieben werden, der dies abnickt, man die Dateien sichert und bei der Deiinstallation eventuell wieder einspielt? Und das ganze nätürlich noch ohne das Paket dessen Datei überschrieben wird zu deiinstallieren?
Könnte mir ja gut vorstellen, dass es dafür keine offizielle Methode gibt, aber vielleicht besteht ja doch Hoffnung.
Ein Tipp wie man - trotz --force-overwrite - ein Backup machen könnte wäre schonmal ein Anfang
Thx
Trigger
[1] http://initng.thinktux.net/
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams
wenn du das Conflicts field nicht setzt, sollte es das sein was du möchtest. Die Frage ist aber, was passiert wenn das sysvinit Paket danach irgendwan upgedatet wird.man deb-control hat geschrieben: Replaces: <package list>
List of packages files from which this one replaces. This is
used for allowing this package to overwrite the files of another
package and is usually used with the Conflicts field to force
removal of the other package, if this one also has the same
files as the conflicted package.
Gruß gms[/quote]
- KBDCALLS
- Moderator
- Beiträge: 22447
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Das ließe sich doch auf Hold setzen.
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:
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.
- godsmacker
- Beiträge: 902
- Registriert: 16.03.2003 21:50:26
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: Chemnitz
-
Kontaktdaten:
Danke, werde mich mit beschäftigen!
Edit: Ich habe zu dpkg-divert unter debiananwenderhandbuch.de folgendes gefunden: "Mittels dpkg-divert „markierte“ Dateien werden bei einem späteren Update nicht von Dateien aus einem aktuelleren Paket überschrieben."
Gilt das nur für fremde Pakete, oder auch für meine eigenes Paket, falls dieses die Datei nochmal updated?
Wenn mein preinst-Skript so aussieht
mein Paket aber vorher schon installiert war, wird doch die "gesicherte" Version bei einem Update mit meiner alten Version überschrieben, oder sehe ich das falsch?
Edit: Ich habe zu dpkg-divert unter debiananwenderhandbuch.de folgendes gefunden: "Mittels dpkg-divert „markierte“ Dateien werden bei einem späteren Update nicht von Dateien aus einem aktuelleren Paket überschrieben."
Gilt das nur für fremde Pakete, oder auch für meine eigenes Paket, falls dieses die Datei nochmal updated?
Wenn mein preinst-Skript so aussieht
Code: Alles auswählen
if [ install = "$1" -o upgrade = "$1" ]; then
dpkg-divert --package smailwrapper --add --rename \
--divert /usr/sbin/smail.real /usr/sbin/smail
fi
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams
Nö, Ahnung habe ich keine, aber warum testest du nicht einfach ein Upgrade deines Pakets. Du brauchst ja nur die Versionsnummer erhöhen und eine Datei verändern, die als dpkg-divert markiert ist und dann das Paket installieren.
Das ganze ist eine Aktion, die sicher keine 5 Minuten dauern sollte.
Gruß
gms
Das ganze ist eine Aktion, die sicher keine 5 Minuten dauern sollte.
Gruß
gms