Re: Ausgabe von portsclean -Ln

From: Karsten Rothemund <karsten(at)photor.de>
Date: Fri, 21 Dec 2007 19:30:01 +0100

On Fri, Dec 21, 2007 at 11:57:53AM +0100, Oliver Fromme wrote:
> 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«).

OK. Hab ich mir so gedacht.
 
> 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.
>

Im /etc/defaults/rc.conf findet sich das hier:

ldconfig_insecure="NO"
ldconfig_paths="/usr/lib/compat /usr/X11R6/lib /usr/local/lib /usr/local/lib/compat/pkg"
ldconfig_paths_aout="/usr/lib/compat/aout /usr/X11R6/lib/aout /usr/local/lib/aout"
ldconfig_local_dirs="/usr/local/libdata/ldconfig /usr/X11R6/libdata/ldconfig"
ldconfig_local32_dirs="/usr/local/libdata/ldconfig32 /usr/X11R6/libdata/ldconfig32"

Also ist .../X11R6/... tatsaechlich drin. Fragt sich jetzt nur, warum.
Update laeuft immer nach dem ueblichen Muster, wie im Handbuch
beschrieben:

make buildworld
make buildkernel
make installkernel
reboot
make installworld
mergemaster

> Du kannst den Wert natürlich auch in Deiner /etc/rc.conf
> überschreiben, aber dann solltest Du auch verschiedene

Hm. Als Zwischenloesung hab ich da auch schon dran gedacht.

Ueberfluessig wurde der X11R6-Pfad ja auch erst, beim Update von X11 auf
Version 7.X. Vielleicht ist da was falsch gelaufen. Bemerkt habe ich
nichts; die im /usr/ports/UPDATING beschriebene Prozedur lief ganz
normal durch.

> 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.
>
Ja. So dachte ich. Und so machte ich. ;-)

> > 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

Normalerweise nutze ich portupgrade -a. Was schonmal vorkommt: ich
brauche 2 oder mehr Anlaeufe, da meine Internetverbindung nicht die
beste ist, so dass schonmal ein tar nicht gesaugt und geupdatet wird.

> 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

genau das stoerte mich ja auch.

> 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?

Muss wohl, weil ich Libs nicht extra installiere.

> (Das
> verrät Dir »pkg_info -R«.)

In diesem Fall:

pkg_info -R ncurses-5.6_1
Information for ncurses-5.6_1:

Required by:
rxvt-unicode-8.8

> 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.
>
Mir waere es ja lieb, wenn die System-eigene Lib verwendet wuerde. Warum
ncurses aus den Ports installiert wird, wenn was adaequates schon
vorhanden ist ...

> 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?

FreeBSD worf.mydomain.home 6.3-PRERELEASE FreeBSD 6.3-PRERELEASE #38:
Tue Nov 27 01:10:09 CET 2007
root(at)worf.mydomain.home:/usr/obj/usr/src/sys/ATHLON i386

also relativ aktuelles RELENG_6.

> 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.
>

Auf meinem Lappy sieht das auch deutlich aufgeraeumter aus. Der ist
letzte Woche von 6 auf 7 gegangen. Allerdings war das FreeBSD 6 auch
frisch installiert. Der Desktop hier ist von einem FreeBSD 4 gestartet
und seither immer wieder aktualisiert worden.

Fazit also: irgendwie ist da einiges durcheinander. Das einfachste wird
wohl eine Neuinstallation sein. Dann aber direkt auf Version 7.

Danke jedenfalls fuer die Aufklaerung,

Karsten

-- 
Karsten Rothemund <karsten(at)photor.de>     /"\
PGP-Key:     0x7019CAA5                   \ /
Fingerprint: E752 C759 B9B2 2057 E42F      \  ASCII Ribbon Campaign
             50EE 47AC A7CE 7019 CAA5     / \ Against HTML Mail and News

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 - 19:30:08 CET

search this site