• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Selbstgebaute DEB-Paket löscht /opt

Hallo,

ich hab mir ein kleines Javaprogramm geschrieben, dass ich als .deb-Datei verteilen möchte. Die deb Datei macht eigentlich nicht viel mehr, als


  • die Programmdaten nach /opt/nbkr.net/jfeierabend abzulegen,
    eine .desktop Eintrag nach /usr/share/applications
    und ein Symlink von /usr/local/bin -> /opt/nbkr.net/programm/bin/jfeierabend.sh

zu erzeugen. Das funktioniert in dem ich beim erstellen des Paketes einfach die Ordnerstruktur entsprechend anlege:

Code:
cd paketroot
ls -R

.:
DEBIAN  opt  usr

./DEBIAN:
control

./opt:
nbkr.net

./opt/nbkr.net:
jfeierabend

./opt/nbkr.net/jfeierabend:
bin  lib

./opt/nbkr.net/jfeierabend/bin:
jfeierabend.sh

./opt/nbkr.net/jfeierabend/lib:
jfeierabend.jar  swt.jar

./usr:
local  share

./usr/local:
bin

./usr/local/bin:
jfeierabend

./usr/share:
applications

./usr/share/applications:
jfeierabend.desktop

und dann mittels
fakeroot dpkg-deb --build paketroot jfeierabend.deb
das Paket erstelle.

Soweit so gut, das Paket läst sich installieren, taucht im Menü auf usw. Wenn ich das Paket aber mittels "dpkg --purge programm" entferne, wird auch der Ordner /opt und /usr/local/bin gelöscht. Das ist nicht ganz im Sinne des Erfinders.

Auch kommt eine Fehlermeldung, dass /usr/local nicht gelöscht wird, weil es nicht leer ist.

Andere Debianpakete die ich ausprobiert habe (z.B. scummvm) bringen solche Fehlermeldungen nicht. Innerhalb der Pakete konnte ich aber keinen entscheidenen Unterschied feststellen.

Mir ist klar, warum die Fehlermeldung kommt und auch warum /opt gelöscht wird - nur wie verhindere ich dass? Kann ich irgendwas in das Paket schreiben, das bestimmt, welche Ordner von meinem Paket installiert wurden und welche nicht?

Gruß
nbkr[/list]
 
OP
nbkr
Ich hab eine Lösung gefunden. Scheinbar kennt apt / dpkg bestimmte Ordner die es nicht löscht und bei denen es sich auch nicht beschwert wenn sie nicht leer sind. Das wären z.B. /usr/bin /etc/ /usr/share usw. Ich erstelle nun eben eine Paket das die Programmdaten dorthin kopiert statt nach /opt. Dabei kann ich das Paket auch gleich für die Distribution anpassen. Mehr Arbeit, dafür geht das Paket sauberer ins System.
 
Oben