[gelöst] update-alternatives (verwaiste links entfernen)

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
peyote
Beiträge: 241
Registriert: 11.10.2003 19:00:42

[gelöst] update-alternatives (verwaiste links entfernen)

Beitrag von peyote » 12.04.2007 13:12:20

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.
Zuletzt geändert von peyote am 12.04.2007 16:04:49, insgesamt 1-mal geändert.

Benutzeravatar
Six
Beiträge: 8071
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Beitrag von Six » 12.04.2007 13:30:40

Der man-Page zu Folge benutzt man zum entfernen überflüssiger Alternativen die --remove Option.
Be seeing you!

peyote
Beiträge: 241
Registriert: 11.10.2003 19:00:42

Beitrag von peyote » 12.04.2007 13:38:12

Six hat geschrieben:Der man-Page zu Folge benutzt man zum entfernen überflüssiger Alternativen die --remove Option.
Ja, soweit war ich auch schon ;)
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

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

Beitrag von gms » 12.04.2007 13:51:20

mit diesem Kommando kannst du dir alle "dangling symlinks" anzeigen lassen:

Code: Alles auswählen

find /etc/alternatives -type l | while read link; do test -e $link || echo $link; done
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 || rm $link; done
Gruß
gms

peyote
Beiträge: 241
Registriert: 11.10.2003 19:00:42

Beitrag von peyote » 12.04.2007 14:00:18

gms hat geschrieben:mit diesem Kommando kannst du dir alle "dangling symlinks" anzeigen lassen:

Code: Alles auswählen

find /etc/alternatives -type l | while read link; do test -e $link || echo $link; done
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 || rm $link; done
Gruß
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.
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....

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 12.04.2007 14:05:54

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
Wie kann ich verwaiste Einträge aus den update-alternatives entfernen?
dann kam
Mir ging es um das automatisierte Entfernen aller verwaisten Einträge, weil das sonst ne ziemliche ABM wird...
und nun
denn ich möchte die links ja alle behalten nur eben sollen sie auf die aktuellen java files verweisen.
:?

peyote
Beiträge: 241
Registriert: 11.10.2003 19:00:42

Beitrag von peyote » 12.04.2007 14:17:44

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
Ja, ich habe mich wohl etwas unverständlich ausgedrückt...

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.

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

Beitrag von gms » 12.04.2007 14:21:33

auch eine Alternative:

Code: Alles auswählen

 ls -1 /var/lib/dpkg/alternatives/ | while read name; do test -e /etc/alternatives/$name || update-alternatives --config $name; done
Gruß
gms

peyote
Beiträge: 241
Registriert: 11.10.2003 19:00:42

Beitrag von peyote » 12.04.2007 15:00:43

Danke an alle für die Hilfe.
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

Antworten