[Debian] Saubere Programm-Deinstallationsmethode(n)?

ZuluDC

assimiliert
Saubere Programm-Deinstallationsmethode(n)?

Auf der Suche nach einer eigentlich wirklich sauberen Installation...(oder besser gesagt: "sauber gehaltenen Installation"?) sind mir einige Fragen aufgekeimt.

- Installiert man ein .deb-Packet mittels "dpkg -i packetname.deb" weiss ich dann nicht mal wie ich es wieder löschen kann. War da nicht was mit dem -purge switch?
- Installiert man ein Packet mittels "apt-get install packetname" kann man es wieder löschen durch "apt-get remove". Wie mir scheint bleiben dann aber Reste übrig wie config-files, versteckte Ordner etc.
- Installiert man etwas, dass z.B als tar.gz daher kommt ist ja meist "./configure && make && make install" angesagt. Wie aber nachher wieder löschen, wenn man das Programm nimmer haben will? Hab da mal was von checkinstall gelesen und irgendwo noch davon, dass eine saubere Deinstallation ginge wenn der Programmierer das makefile sauber geschustert habe.

Also ich hab einfach mal "apt-get install checkinstall" als root in der konsole eingegeben und dann fasselte da irgendwas von den Abhängigkeiten einer lib_bla_blubber oder so und dann noch das altbekannte "apt-get -f install". Das hab ich dann natürlich ausgeführt...hab ich ja schon x-mal gemacht. Nachher aber wieder "apt-get install checkinstall" eingetippselt und dann traf mich fast der Schlag:
Meldung: /var/lib/dpkg Fehler in Zeile 12826 der Datei status (so in etwa hiess es)
dpkg war von nun an ausser Gefecht, habs dann aber ziemlich unzimperlich durch die status-old ersetzt (weil ich in der Zeile ned raffte was da falsch sein soll)...nun funzt es wieder :) Ok, ich gebs ja zu: Neandertaler-Methoden (vielleicht sind darum die Neandertaler ausgestorben *gg*).

Jetzt bin ich aber wiedermal abgedriftet: Es ging ja um ne sauber Installation- oder Deinstallationsroutine bei möglichst allen Arten von Installroutinen. Damit meine ich aber auch, dass die configs und restliche Überbleibsel weggeputzt werden - sozusagen mit Perwoll gewaschen.

Ist das Wunschdenken oder funzt das nur bei der "apt-get install packetname"-Methode, wenn man noch Hand anlegt nach "apt-get remove packetname" und andere Restkrümmel manuell beseitigt.

Gibts da evtl. für jede ganz oben erwähnte Install-Methode eine allgemein gültige Vorgehweise (die ja auch einigermassen nachvollziehbar sein sollte ohne erst gleich 5 Semester in Linux Shellprogrammierung absolvieren zu müssen)?

Was ist übrigens mit deborphan und orphaner...funzt das echt problemlos?...wie findet man ansonsten noch Restmüll auf dem Rechner (z.B "find -name *~*") mittels der konsole....etc. Gibt evtl. noch spezielle Störenfriede bei der ganzen Sache (ausser dem Idioten, der 50cm vor dem Bildschirm sitzt *lach*)

Also Tuxigemeinde: Ruhig hier reinposten...kann auch RPM's betreffen obwohl ich diesen Thread hier als einen debianischen ausgegeben habe...ich seh das ned so eng :) Ein sauberes System wollen wir doch alle denk ich mal.
 
Zuletzt bearbeitet:
Hallo ZuluDC,

ich glaube ich kann dir bei deinem Problem recht gut weiterhelfen, da ich mich mit selbigen Thema bereits ausgiebig beschäftigt habe.

- Installiert man ein .deb-Packet mittels "dpkg -i packetname.deb" weiss ich dann nicht mal wie ich es wieder löschen kann. War da nicht was mit dem -purge switch?
- Installiert man ein Packet mittels "apt-get install packetname" kann man es wieder löschen durch "apt-get remove". Wie mir scheint bleiben dann aber Reste übrig wie config-files, versteckte Ordner etc.

Also wenn du ein .deb Paket mit dpkg -i installierst hast, dann gibt es folgende Möglichkeiten dieses Paket wieder zu löschen:

dpkg -r oder dpkg --remove --> Damit kannst du das Paket löschen. Die Konfigurationsdateien bleiben erhalten.
dpkg -P oder dpkg --purge --> Damit kannst du ein Paket komplett löschen. Alles, auch die Konfigurationsdateien, wird gelöscht.

Natürlich bleiben Reste (Konfigurationsdateien) usw. übrig, wenn du ein Paket aus dem Debiantree mit apt-get remove löscht. Der richtige Befehl hierfür lautet apt-get --purge remove!

- Installiert man etwas, dass z.B als tar.gz daher kommt ist ja meist "./configure && make && make install" angesagt. Wie aber nachher wieder löschen, wenn man das Programm nimmer haben will? Hab da mal was von checkinstall gelesen und irgendwo noch davon, dass eine saubere Deinstallation ginge wenn der Programmierer das makefile sauber geschustert habe.

Also bei einem Archiv mit einem Quellcode kannst du nur hoffen, dass die Entwickler auch ein Makefile fürs deinstallieren (meist make uninstall) beigelegt haben, ansonsten kannst du das Zeug selbst suchen und manuell löschen. Es ist daher auch sinnvoller, wenn man aus dem Quellcode ein Debian Paket macht. Das kann man dann bequem installieren und deinstallieren!

Also ich hab einfach mal "apt-get install checkinstall" als root in der konsole eingegeben und dann fasselte da irgendwas von den Abhängigkeiten einer lib_bla_blubber oder so und dann noch das altbekannte "apt-get -f install". Das hab ich dann natürlich ausgeführt...hab ich ja schon x-mal gemacht. Nachher aber wieder "apt-get install checkinstall" eingetippselt und dann traf mich fast der Schlag:
Meldung: /var/lib/dpkg Fehler in Zeile 12826 der Datei status (so in etwa hiess es)
dpkg war von nun an ausser Gefecht, habs dann aber ziemlich unzimperlich durch die status-old ersetzt (weil ich in der Zeile ned raffte was da falsch sein soll)...nun funzt es wieder :) Ok, ich gebs ja zu: Neandertaler-Methoden (vielleicht sind darum die Neandertaler ausgestorben *gg*).

Niemals was mit -f installieren! Wenn ein Paket sagt, dass es ein anderes Paket braucht, dann braucht es das auch!

Ist das Wunschdenken oder funzt das nur bei der "apt-get install packetname"-Methode, wenn man noch Hand anlegt nach "apt-get remove packetname" und andere Restkrümmel manuell beseitigt.

apt-get --purge remove Paketname
Das einzigste was übrig bleibt, sind Konfigurationsdatein in den Homeverzeichnissen. Die kann man nicht entfernen, da ja root nicht darüber entscheiden darf, ob jetzt User xyz seine Konfigurationsdateien behalten oder nicht behalten will.

Was ist übrigens mit deborphan und orphaner...funzt das echt problemlos?...wie findet man ansonsten noch Restmüll auf dem Rechner (z.B "find -name *~*") mittels der konsole....etc. Gibt evtl. noch spezielle Störenfriede bei der ganzen Sache (ausser dem Idioten, der 50cm vor dem Bildschirm sitzt *lach*)

Deborphan (orphaner) funktionierte bei mir bisher problemlos. Eine andere Möglichkeit Restmüll zu finden, ist durch das Programm debfoster. Da wählst du bei jedem installieren Paket aus, ob du es noch brauchst. So kannst du am Ende sichergehen, dass du auch wirklich alles brauchst, was du am Rechner hast. Falls du ein Paket bei debfoster nicht mehr brauchst, kannst du es mit allen Abhängigkeiten komplett löschen (sogar Konfigurationsdateien)!

Gruß Viper
 
Wow!!! Ist ja genial :) Viper hat wieder mal zugeschlagen *gg*

Thanks für Deine ausführliche Antwort. Bist ja schon fast ein wandelndes Debian-Lexikon. Einfach sagenhaft...von Dir kann man wirklich was lernen *megafreu*

Also wenn ich richtig verstanden habe löschen folgende Befehle ziemlich alles (ausser evtl. noch Kleinigkeiten nicht im Homeverzeichnis):
apt-get --purge remove packetname
dpkg -P packetname.deb oder dpkg --purge packetname.deb

Nun...das mit "./configure && make && make install" scheint also ein bisschen mit Vorsicht zu geniessen zu sein (ausser eben 'saubere' makefiles und make uninstall funzt oder man weiss schon bissel Bescheid und findet heraus wo sich das ganze Zeug auch verstreut). Oder aber man lernt wie man deb-Packete baut...öehm...ich glaub das riecht jetzt nach RTFM ;)

[little OT]
Ich hab da mal was von einem Programm gehört...heisst alien...hier wird darüber was geschrieben...damit soll man RPM's in deb-Packete wandeln können und umgekehrt. Hat das vielleicht schon jemand gemacht? Funzt das auch einigermassen, sofern man es nur für kleinere Sachen verwendet? (ich geh mal davon aus, dass man dass wirklich nur bei kleineren Proggs verwenden sollte und solchen, die man einfach umsverrecken nicht als deb-Packet im www findet)?
[/little OT]

Zu apt-get -f install: Das wende ich erst immer an, wenn mir die konsole auch erzählt, dass ich das ruhig eintippseln könne. Ich habe das bis jetzt immer so verstanden, dass wenn ich ein Packet installieren will und Abhängigkeiten bestehen (die mir auch angezeigt werden), man die noch abhängigen Packete installieren sollte. Da das aber nicht immer geht, weil die angezeigten abhängigen Packete nicht mehr den gleichen Namen tragen oder schon in anderen Version vorliegen oder was auch immmer...merkt dann meist Debian worauf man hinaus will und bietet dann diese Option 'apt-get -f install' an (ich verwende es wirklich nur dann und auch immer ohne jeglichen Packetnamen hintenrangehängt...also wirklich nur so wie es hier steht:'apt-get -f install'). Das hat mir echt schon oft geholfen. Ich verwende nur noch Sarge, vielleicht liegt es auch daran, Sid traue ich nicht (mehr) so über den Weg. Oder aber vielleicht kommt es auch drauf an wie genau man es verwendet...?

Jetzt hab ich gerade debfoster mal draufgebügelt:

In der konsole...

dpkg: Ernste Warnung: Dateilisten-Datei des Paketes »libzlib-ruby1.8« fehlt, nehme an, dass das Paket derzeit keine Dateien installiert hat.
79891 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke debfoster (aus .../debfoster_2.5-4_i386.deb) ...
Richte debfoster ein (2.5-4) ...

Meine praktizierte NeandertalerMethode zeigt da erste Auswirkungen *gg*. Das Packet libzlib-ruby1.8 ist jedenfalls installiert.

Oha...jetzt sehe ich gerade, dass ich debfoster schon mal irgendwann schnell getestet habe...das ist das Tool, dass viele Fragen stellt...hehe

Noch was...synaptic ist ja auch wirklich sehr hilfreich, wenn man nicht alle Programmnamen im Kopf hat oder nur aus Langeweile mal wieder was installieren will mittels der klick&go-Methode (...ich weiss...da fasselt der ZuluDC was von einem sauberem System...wohlüberlegte Installation...und wirft hinten drein noch ein klick&go gegen die Langeweile *lol*). Ob das echt im Endeffekt einen Unterschied macht ob man aptitude, dselect oder synaptic verwendet?

So...jetzt aber fertig gelabbert!

Eines noch zum Schuss: Ein grosses Schankedön an Dich Viper für all die Mühe die Du Dir gibst beim Beantworten von Fragen! Das hat sicherlich schon vielen Anderen auch schon geholfen...nicht nur meiner Wenigkeit. Wirklich...C O O L :)
 
Also wenn ich richtig verstanden habe löschen folgende Befehle ziemlich alles (ausser evtl. noch Kleinigkeiten nicht im Homeverzeichnis):
apt-get --purge remove packetname
dpkg -P packetname.deb oder dpkg --purge packetname.deb

Korrekt.

Nun...das mit "./configure && make && make install" scheint also ein bisschen mit Vorsicht zu geniessen zu sein (ausser eben 'saubere' makefiles und make uninstall funzt oder man weiss schon bissel Bescheid und findet heraus wo sich das ganze Zeug auch verstreut). Oder aber man lernt wie man deb-Packete baut...öehm...ich glaub das riecht jetzt nach RTFM ;)

Schau mal auf www.debianforum.de! *g*

[little OT]
Ich hab da mal was von einem Programm gehört...heisst alien...hier wird darüber was geschrieben...damit soll man RPM's in deb-Packete wandeln können und umgekehrt. Hat das vielleicht schon jemand gemacht? Funzt das auch einigermassen, sofern man es nur für kleinere Sachen verwendet? (ich geh mal davon aus, dass man dass wirklich nur bei kleineren Proggs verwenden sollte und solchen, die man einfach umsverrecken nicht als deb-Packet im www findet)?
[/little OT]
Alien ist sone Sache. Es funktioniert erstaunlich gut. Selbst die ATI Grafikkartentreiber konnte ich vom rpm in deb umwandeln... Naja aber trotzdem ist es "unsauber". Im übrigen findet man fast jedes Programm, dass man als rpm findet, auch als Quellcode. Und da würde ich immer den Quellcode (und das bauen eines deb. Pakets) bevorzugen!

Zu apt-get -f install: Das wende ich erst immer an, wenn mir die konsole auch erzählt, dass ich das ruhig eintippseln könne. Ich habe das bis jetzt immer so verstanden, dass wenn ich ein Packet installieren will und Abhängigkeiten bestehen (die mir auch angezeigt werden), man die noch abhängigen Packete installieren sollte. Da das aber nicht immer geht, weil die angezeigten abhängigen Packete nicht mehr den gleichen Namen tragen oder schon in anderen Version vorliegen oder was auch immmer...merkt dann meist Debian worauf man hinaus will und bietet dann diese Option 'apt-get -f install' an (ich verwende es wirklich nur dann und auch immer ohne jeglichen Packetnamen hintenrangehängt...also wirklich nur so wie es hier steht:'apt-get -f install'). Das hat mir echt schon oft geholfen. Ich verwende nur noch Sarge, vielleicht liegt es auch daran, Sid traue ich nicht (mehr) so über den Weg. Oder aber vielleicht kommt es auch drauf an wie genau man es verwendet...?
Also ich habe noch niemals apt-get -f install eingeben müssen oder sollen. Naja laut der manpage scheint das nötig zu sein um ein kaputtes apt-get System zu reparieren!

dpkg: Ernste Warnung: Dateilisten-Datei des Paketes »libzlib-ruby1.8« fehlt, nehme an, dass das Paket derzeit keine Dateien installiert hat.
79891 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke debfoster (aus .../debfoster_2.5-4_i386.deb) ...
Richte debfoster ein (2.5-4) ...

Meine praktizierte NeandertalerMethode zeigt da erste Auswirkungen *gg*. Das Packet libzlib-ruby1.8 ist jedenfalls installiert.

Ich würde das Paket libzlib-ruby1.8 mal komplett löschen und wiederinstallieren. Aber lösch es nur wenn es kein anderes Paket als Abhängigkeit braucht!

Gruß Viper
 
Hab gerade hier nochmal schnell nachgucken müssen wie man ein deb-Packet deinstalliert. :)

Jetzt hab ich mir gleich die Opera 8.0 Final installiert *freuhüpf_&Denis_Biellmann_Pirouette_mach*
 
Oben