[gelöst] update-alternatives (verwaiste links entfernen)
[gelöst] update-alternatives (verwaiste links entfernen)
Wie kann ich verwaiste Einträge aus den update-alternatives entfernen?
Im konkreten Fall hab ich durch selbstgebaute .deb mit den java-package lauter verwaiste Einträge seitdem ich nun die sun-java* packages benutze.
Im konkreten Fall hab ich durch selbstgebaute .deb mit den java-package lauter verwaiste Einträge seitdem ich nun die sun-java* packages benutze.
Zuletzt geändert von peyote am 12.04.2007 16:04:49, insgesamt 1-mal geändert.
Ja, soweit war ich auch schonSix hat geschrieben:Der man-Page zu Folge benutzt man zum entfernen überflüssiger Alternativen die --remove Option.

Mir ging es um das automatisierte Entfernen aller verwaisten Einträge, weil das sonst ne ziemliche ABM wird...
Code: Alles auswählen
ls -al /etc/alternatives/ | grep java | wc -l
66
mit diesem Kommando kannst du dir alle "dangling symlinks" anzeigen lassen:
und mit diesem Kommando kannst du diese "dangling symlinks" entfernen:
Gruß
gms
Code: Alles auswählen
find /etc/alternatives -type l | while read link; do test -e $link || echo $link; done
Code: Alles auswählen
find /etc/alternatives -type l | while read link; do test -e $link || rm $link; done
gms
Danke, aber das hätte leider nicht den gewünschten Effekt, denn ich möchte die links ja alle behalten nur eben sollen sie auf die aktuellen java files verweisen.gms hat geschrieben:mit diesem Kommando kannst du dir alle "dangling symlinks" anzeigen lassen:und mit diesem Kommando kannst du diese "dangling symlinks" entfernen:Code: Alles auswählen
find /etc/alternatives -type l | while read link; do test -e $link || echo $link; done
GrußCode: Alles auswählen
find /etc/alternatives -type l | while read link; do test -e $link || rm $link; done
gms
D.h. im Prinzip müsste man wohl die Dateien unter /var/lib/dpkg/alternatives/ editieren und dort die Einträge aus den Textdateien entfernen, welche tote links repräsentieren.
Wies aussieht gibts wohl keinen adhoc Befehl für sowas und es muss wohl ein skript her....
- Snoopy
- Beiträge: 4297
- Registriert: 17.11.2003 18:26:56
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rh.- Pflz.
Hi
Nun...nicht direkt zum Thema...aber Du solltest irgendwie mal genau sagen, was Du nun willst...irgendwie kommt mir das hier wie ein Flummi vor. *ggg
Zuerst war es
Nun...nicht direkt zum Thema...aber Du solltest irgendwie mal genau sagen, was Du nun willst...irgendwie kommt mir das hier wie ein Flummi vor. *ggg
Zuerst war es
dann kamWie kann ich verwaiste Einträge aus den update-alternatives entfernen?
und nunMir ging es um das automatisierte Entfernen aller verwaisten Einträge, weil das sonst ne ziemliche ABM wird...
denn ich möchte die links ja alle behalten nur eben sollen sie auf die aktuellen java files verweisen.

Ja, ich habe mich wohl etwas unverständlich ausgedrückt...Snoopy hat geschrieben:Hi
Nun...nicht direkt zum Thema...aber Du solltest irgendwie mal genau sagen, was Du nun willst...irgendwie kommt mir das hier wie ein Flummi vor. *ggg
Ich habe in den Konfigurationsdateien für "update-alternatives" (die liegen in /var/lib/dpkg/alternatives/) Einträge, welche auf nicht mehr vorhandene Dateien verweisen. Dummerweise sind diese verwaisten Einträge dort mit höchster Priorität eingetragen, sodass hier nix mehr in Sachen java läuft.
Ich hoffe das war soweit verständlich.
auch eine Alternative:
Gruß
gms
Code: Alles auswählen
ls -1 /var/lib/dpkg/alternatives/ | while read name; do test -e /etc/alternatives/$name || update-alternatives --config $name; done
gms
Danke an alle für die Hilfe.
Ich habs jetzt am Ende so gemacht:
Ich habs jetzt am Ende so gemacht:
Code: Alles auswählen
find /etc/alternatives -type l -printf "%f %l\n" | while read name link; do test -e /etc/alternatives/$name || update-alternatives --remove $name $link; done