Re: Ausgabe von portsclean -Ln

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Fri, 21 Dec 2007 11:57:53 +0100 (CET)

Karsten Rothemund wrote:
> ** /usr/X11R6/lib/libf2c.so.2 is shadowed by /usr/lib/compat/libf2c.so.2
> ** /usr/X11R6/lib/libncurses.so.5 is shadowed by /lib/libncurses.so.5

Die Meldung bedeutet, dass die Library zweimal vorhanden
ist, aber /usr/X11R6 kommt später im Suchpfad, d.h. sie
wird niemals verwendet (das ist gemeint mit »shadowed by«).

Wobei ich mir da die Frage stelle, warum bei Dir überhaupt
/usr/X11R6 im Library-Suchpfad ist -- Hast Du beim Updaten
irgendeinen Schritt ausgelassen? Aufgrund des Symlinks
darf das da nicht mehr sein. Prüfe mal, ob Deine Datei
/etc/defaults/rc.conf auf dem aktuellen Stand ist, und was
dort der Wert von ldconfig_paths ist. X11R6 darf dort
nicht mehr vorkommen. Wenn doch, solltest Du mal updaten.

Du kannst den Wert natürlich auch in Deiner /etc/rc.conf
überschreiben, aber dann solltest Du auch verschiedene
andere Einstellungen anpassen und X11R6 rausschmeißen.
(Ausm Kopf: local_startup, sowie local_periodic aus
periodic.conf, und evtl. Dinge in login.conf. Mach
einfach mal ein rekursives grep nach X11R6 in /etc.)
Ein korrektes System-Update, also inkl. mergemaster,
macht das alles für Dich.

> Einige Zeilen nach diesem Muster ergeben sich durch den Link von
> /usr/X11R6 auf /usr/local beim Umstieg auf Xorg 7
>
> ** /usr/local/lib/libtasn1.so.3 is shadowed by /usr/X11R6/lib/libtasn1.so.3

Auch das ist natürlich ein Folge des Fehlers, dass X11R6
bei Dir noch im Suchpfad ist.

> Aber was ist hiermit? Es scheint 2 verschiedene Libs mit dem gleichen
> Name zu geben:
>
> ** /usr/local/lib/libf2c.so.2 is shadowed by /usr/lib/compat/libf2c.so.2
> /usr/lib/compat/libf2c.so.2 <- ?
> /usr/local/lib/libf2c.so.2 <- f2c-20060810_1
> --> This may be an undesirable situation
> Leave /usr/lib/compat/libf2c.so.2 (specify -i to ask on this)
>
> ll /usr/lib/compat/libf2c.so.2
> -r--r--r-- 1 root wheel 85933 Nov 5 2004 /usr/lib/compat/libf2c.so.2
> ll /usr/local/lib/libf2c.so.2
> -r--r--r-- 1 root wheel 98341 Aug 13 18:29 /usr/local/lib/libf2c.so.2
>
> Auch davon gibt es mehrere; sogar mit Libs aus /lib (also Libs, die mit
> dem Basissystem kommen).

Dann ist bei einem (oder mehreren) Update mal etwas schief-
gegangen. Normalerweise verschieben Tools wie portupgrade
u.ä. Libraries nach compat, wenn sie bei einem Update durch
eine neuere ersetzt werden. Außerdem werden compat-Libraries
durch die diversen compat*-Packages installiert, damit man
ältere Binaries noch laufen lassen kann. In beiden Fällen
sollte es aber nicht vorkommen, dass die Library dieselbe
Versionsnummer hat -- dann verwenden Binaries nur diejenige
Library, die zuerst im Suchpfad auftaucht, und die andere
überhaupt nicht. In Deinem Fall wird die (erheblich) ältere
verwendet, was tendentiell schlecht ist.

> ** /usr/local/lib/libncurses.so.5 is shadowed by /lib/libncurses.so.5
> /lib/libncurses.so.5 <- ?
> /usr/local/lib/libncurses.so.5 <- ncurses-5.6_1
> --> This may be an undesirable situation
> Leave /lib/libncurses.so.5 (specify -i to ask on this)

Mir ist jetzt etwas unklar, warum man ncurses aus den Ports
installieren wollte, wo es doch auch im Basis-System ent-
halten ist (ohne Funktionseinschränkung, soweit es mir be-
kannt ist). Ist das eine Dependency von irgendwas? (Das
verrät Dir »pkg_info -R«.)

Im Normalfall, wenn man etwas aus den Ports installiert,
das etwas gleichartiges aus dem Basissystem ersetzen soll,
dann muss man entweder die Suchreihenfolge so anpassen,
dass der Port zuerst gefunden wird, oder das betreffende
Teil aus dem Basis-System entfernen bzw. gar nicht erst
installiert. Typische Beispiele sind WITHOUT_BIND oder
WITHOUT_OPENSSL, wenn man die BIND- bzw. OpenSSL-Version
aus den Ports verwenden möchte.

Wie gesagt, bei ncurses habe ich so eine Situation noch
nicht gesehen.

> ll /lib/libncurses.so.5
> -r--r--r-- 1 root wheel 259916 Sep 24 2005 /lib/libncurses.so.5
> ll /usr/local/lib/libncurses.so.5
> lrwxr-xr-x 1 root wheel 17 Sep 19 00:36 /usr/local/lib/libncurses.so.5 -> libncurses.so.5.6
> ll /usr/local/lib/libncurses.so.5.6
> -rwxr-xr-x 1 root wheel 123279 Sep 19 00:36 /usr/local/lib/libncurses.so.5.6

Aktuell ist .so.6 in FreeBSD 6 und .so.7 in FreeBSD 7.
Was für eine FreeBSD-Version hast Du genau laufen?
Obige Konstellation sieht irgendwie wüst aus, sofern
Dein System halbwegs aktuell sein sollte.

> /compat/linux ist sicher so OK:
>
> ** /compat/linux/lib/libcom_err.so.2 is shadowed by /usr/lib/libcom_err.so.2

Ich frage mich, wieso das Tool überhaupt unter /compat/linux
nachschaut und versucht, das mit Libraries von FreeBSD zu
korrelieren. Das ergibt keinen Sinn.

> Was soll man mit den doppelten Libs machen? Kann ich Ports deinstallieren,
> die Libs installieren, die schon vom Basissystem bereit gestellt werden
> (libncurses.so.5)?

Im Prinzip schon, aber schau vorher mal die Dependencies an
(siehe oben). Bei doppelten Libraries ist im Prinzip eine
davon überflüssig, da ohnehin nur eine verwendet wird.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"Emacs ist für mich kein Editor. Für mich ist das genau das gleiche, als
wenn ich nach einem Fahrrad (für die Sonntagbrötchen) frage und einen
pangalaktischen Raumkreuzer mit 10 km Gesamtlänge bekomme. Ich weiß nicht,
was ich damit soll." -- Frank Klemm, de.comp.os.unix.discussion
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 21 Dec 2007 - 11:58:03 CET

search this site