Paket erstellen, das Dateien anderer Pakete überschreibt

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Paket erstellen, das Dateien anderer Pakete überschreibt

Beitrag von armin » 20.05.2005 20:42:26

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/
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 20.05.2005 23:58:31

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.
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.


Gruß gms[/quote]

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 21.05.2005 00:54:17

Hi!

Oh, wieder mal nicht ordentlich gelesen :oops:
Danke!

Ja, das ist die Frage. Das ist halt alles nicht so wirklich sauber. Vor allem, da auch noch Hotplug Skripte überschrieben werden :?

Bye
Trigger
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

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

Beitrag von KBDCALLS » 21.05.2005 09:53:28

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:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 21.05.2005 10:46:54

dpkg-divert oder Conflicts: and Provides:.

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 21.05.2005 11:17:58

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

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  
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?
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 23.05.2005 17:46:28

Jemand Ahnung? :D
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 23.05.2005 19:25:13

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

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 24.05.2005 08:21:08

Stimmt schon :)
Werde es bei Gelegenheit testen.
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

Antworten