Re: wieder alle PORTS neu, wenn von von RELENG_7 auf RELENG_8?

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Sat, 14 Nov 2009 14:45:57 +0100 (CET)

Heino Tiedemann wrote:
> ich bin durch. Die Orgie ist gelaufen, ich habe compat7x entfernt.
>
> Jetzt noch das problem mit OpenOffice (brauche ich derzeit dringend!).
>
> Das lässt sich derzeit wohl noch gar nicht auf 8 Bauen, weil es kein
> Java für 8 gibt, und Java ist eine Build-dependency.
>
> Was tun?

Siehe Franks Antwort.
Das ist so einer der Fälle, wo man compat7x noch braucht.

> Ich habe natürlich noch Binaries von FreeBSD7 (OOo2 und OOo3).
> Die jabe ich mal installiert auf FreeBSD8. Das was ich brauche geht.
> Die alten 7er Libs sind aber ja weg. Ist die Funktion eine Art
> Roulette?

Bei einigen wichtigen Libs (allen voran der libc) wurde
Symbol-Versioning eingeführt und die Versionsnummer der
Library _nicht_ erhöht. So hat FreeBSD 8 immer noch die
libc.so.7 (und in compat7x ist die libc folglich nicht
enthalten). Wenn die Funktionalität, die Du benötigst,
sich ausschließlich auf diese Libraries stützt, kannst
Du Glück haben, dass es auch ohne compat7x funktioniert.

Allerdings ist das leider (noch) nicht bei allen Libraries
so. Prominente Beispiele sind die libz und die libcam,
die von etlichen Binaries (zumindest bei mir) verwendet
werden. Wenn Du so eine brauchst, musst Du entweder das
Binary neu bauen oder compat7x installieren. Neu bauen
ist natürlich in der Regel vorzuziehen, aber in manchen
Fällen (wie beim Diablo-Java) geht es halt noch nicht.

Es kann natürlich auch sein, dass die passenden Libraries
bei Dir noch als Altlast irgendwo herumliegen. Wenn man
z.B. nach einem installworld kein "make delete-old-libs"
macht, dann bleiben die an Ort und Stelle liegen. Das
ist so gewollt, damit man sich bei einem Update nicht so
leicht in den Fuß schießen kann.

Welche Libraries ein Binary benötigt, und ob sie gefunden
werden (und wenn ja, wo), verrät Dir das Tool ldd(1).
Beispiel:

$ ldd =curl
curl:
        libcurl.so.5 => /usr/local/lib/libcurl.so.5 (0x280a7000)
        libssl.so.6 => /usr/lib/libssl.so.6 (0x280e8000)
        libcrypto.so.6 => /lib/libcrypto.so.6 (0x2812e000)
        libz.so.5 => /lib/libz.so.5 (0x28289000)
        libc.so.7 => /lib/libc.so.7 (0x2829b000)

(NB: "=curl" izt zsh-Syntax und expandiert den Pfad zum
Binary, in diesem Fall /usr/local/bin/curl.)

Man sieht hier sehr schön, dass curl gegen die neue Version
der libz gelinkt ist, die es unter FreeBSD 7.x noch nicht
gab. Ein älteres Binary von curl wäre gegen die libz.so.4
gelinkt und würde compat7x erfordern.

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
"File names are infinite in length, where infinity is set to 255 characters."
        -- Peter Collinson, "The Unix File System"
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 14 Nov 2009 - 14:46:18 CET

search this site