Supportnet Computer
Planet of Tech

Supportnet / Forum / Linux

glib-Update





Frage

Hi, ich habe folgendes Problem: Ich will Lilypond 2.7 installieren. Dieses benötigt Pango 1.6, das wiederum braucht glib >= 2.5. Ich habe leider nur Pango 1.2 und glib 2.2, beides als rpm installiert. Passende RPMs für meine etwas "ältere" Distribution (SuSE 8.2) gibt es nicht, deswegen wollte ich es selbst kompilieren. Ich konnte glib 2.8 auch problemlos kompilieren und installieren, doch wenn ich dann Pango kompilieren möchte, sagt es mir, dass ich nur glib 2.2 installiert hätte. glib 2.2 ist in /usr/lib installiert, glib 2.8 wurde in /usr/local/lib installiert. Wie kann ich es anstellen, dass Pango weiß, wo die aktuelle glib-Version ist? Muss ich irgendeine Umgebungsvariable ändern, wenn ja welche? Vielen Dank für hilfreiche Beiträge!

Antwort 1 von WIXP

>Ich konnte glib 2.8 auch problemlos kompilieren und installieren, doch wenn ich dann Pango kompilieren möchte, sagt es mir, dass ich nur glib 2.2 installiert hätte.

Dieser Quellcode war wohl für eine andere Distribution.

>glib 2.2 ist in /usr/lib installiert, glib 2.8 wurde in /usr/local/lib installiert.

Genau das ist es warum SuSE von manchen gehasst wird.

>Muss ich irgendeine Umgebungsvariable ändern, wenn ja welche?

Setze mal einen Link in der /usr/lib der auf die glib 2.8 in der /usr/local/lib zeigt. Vielleicht hilft es dir weiter.

WIXP

Antwort 2 von draack

Hallo lin-ux,

du machst meiner Ansicht nach eine Reihe von Fehlern:
  • Du versuchst einen "development branch" zu installieren. Und das als offensichtlicher Linuxlaie.
  • Du benutzt anscheinend ein RPM-Paket, dass für Fedora gebaut wurde.
  • Du erwartest, dass deine ältliche Distribution das auch noch mitmacht.
    Um den Kram sauber zu installieren und dein System konsistent zu halten, müßtest du eigene RPMs bauen. Das ist gar nicht so schwer - etwas mehr als der übliche Dreikampf (
    ./configure; make; make install
    ) ist aber schon notwendig (bei Interesse lasse ich mich darüber hier kurz aus).

    Tschö,
    Volker

  • Antwort 3 von stefanix

    Du hast auch die Möglichkeit, verschiedene Einstellungen im configure-skript festzulegen, ./configure --help im Verzeichnis hilft weiter.
    @WIXP
    Zitat:
    >glib 2.2 ist in /usr/lib installiert, glib 2.8 wurde in /usr/local/lib installiert.

    Genau das ist es warum SuSE von manchen gehasst wird.

    Was hat denn das mit SuSE zu tun???

    Grüsse, Stefanix

    Antwort 4 von WIXP

    >Was hat denn das mit SuSE zu tun???

    Das kann ich dir genau sagen! Er benutzt SuSE8.2 und SuSE kopiert manches in andere Pfade als z.B. RedHat. Deshalb sucht SuSE die glib auch nicht da wo RH sie hinkopiert. Genau das ist hier passiert und der Grund warum rpm-Pakete von RedHat unter SuSe oft nicht den gewünschten Erfolg bringen. Deshalb ist man komplett auf die SuSE-rpm´s angewiesen wenn man SuSE-Distributionen benutzt. Der Verweis auf http://packman ist nicht immer die Lösung. Manches von der Seite lässt sich auch nur mit großem Aufwand installieren und manchmal schleicht sich dabei auch noch ein gwaltiger Bug ein. Wer statt dessen eine Disribution auf deb-Basis benuzt, hat da schon weniger Probleme, obwohl ich auch hier das Gefühl habe, daß da auch einiges immer mehr auseinander driftet.
    Daß SuSe manches in den Ordner /opt installiert und nicht wie gewohnt in /usr wirst du schon wissen. Nebenbei möchte ich aber nicht vergessen zu erwähnen, daß SuSe auch noch Namen von libs und selbst Namen in den Programmpaketen gelegendlich ein kleinwenig ändert, so, daß man die SuSE rpm`s oftgenug auch nicht bei RH verwenden kann. Selbst dann nicht wenn diese sowohl bei SuSE als auch bei RH in dem selben Pfad zu finden wären.


    >>Was hat denn das mit SuSE zu tun???

    Nochmal zur Erinnerung, RPM ist ein Paketsystem welches von RedHat etwickelt wurde. Nur SuSE hat gemeint es verändern zu müssen um ihr eigenes Süppchen zu kochen.

    WIXP

    Antwort 5 von RTFM

    Die letzten beiden Sätze sind Quatsch, aber ansonsten volle Zustimmung und genau das, was ich die ganze Zeit versucht habe zu erklären, warum ich von SUSE abrate.

    Antwort 6 von stefanix

    @WIXP
    1. Er möchte das Paket selbst übersetzen, er benutzt kein RPM!
    2. Er kann mittels ./configure festlegen, wohin er installiert!
    3. SuSE ist ab 9.2 als erste Distri LSB- konform, da kann wohl vom eigenem Süppchen kochen keine Rede sein.
    Siehe: http://www.heise.de/newsticker/meldung/53119

    Da er 8.2 benutzt, muss er mittels ./configure die Installation anpassen!

    Grüsse, Stefanix

    Antwort 7 von WIXP

    >1. Er möchte das Paket selbst übersetzen, er benutzt kein RPM!

    Stimmt, aber diese Quellcode war für eine "normale" Distribution. Das es nicht funktionierte ist nichts besonderes wenn man so eine alte SuSE benutzt.

    >2. Er kann mittels ./configure festlegen, wohin er installiert!

    Viel Spass dabei!

    >3. SuSE ist ab 9.2 als erste Distri LSB- konform, da kann wohl vom eigenem Süppchen kochen keine Rede sein.

    Er benutzt aber SuSE 8.2 und da sah es noch ganz anders aus.

    WIXP

    Antwort 8 von stefanix

    @WIXP
    1. Das configure Skript löst die entsprechenden Abhängikeiten auf, dh. wenn was fehlt oder wenn eine benötigte lib woanders liegt, wirst du angemeckert und kannst das Verzeichnis angeben! Quellcode ist nicht auf eine spezielle Distri festgelegt! Was ist denn eine "normale" Distri???
    Wenn SuSE 9.2 die erste LSB konforme Distri war, dann sah es bei den anderen älteren Distris wohl nicht anders aus.
    Diese Vorurteil, das SuSE macht was es will finde ich ziemlich überholt!
    Stefanix

    Antwort 9 von lin-ux

    So, dann möchte ich mal wieder was dazu schreiben:

    1.
    Zitat:
    Dieser Quellcode war wohl für eine andere Distribution.
    Der Quellcode war für keine spezifische Distribution.

    2.
    Zitat:
    Genau das ist es warum SuSE von manchen gehasst wird.
    Das ist doch so: normale rpm-Packete werden nicht nach /usr/local installiert, tar-Archive schon, damit sich beides nicht vermischt. Das ist also alles andere als eine negative Eigenschaft von SuSE.

    3.
    Zitat:
    Setze mal einen Link in der /usr/lib der auf die glib 2.8 in der /usr/local/lib zeigt. Vielleicht hilft es dir weiter.
    Das wollte ich eigentlich vermeiden, da ich ja dann in das "rpm-Gebiet" eingreife. rpm denkt dann, dass dort glib-2.2 wäre, in Wahrheit ist es aber glib-2.8...

    4.
    Zitat:
    1. Du versuchst einen "development branch" zu installieren. Und das als offensichtlicher Linuxlaie.
    Nein. glib-2.8 ist, wie man an der geraden Minor-Versionsnummer schon erkennen kann, der stable Branch.
    Und sorry, ich verwende Linux zwar erst ein paar Järchen, aber Linuxlaie kränkt mich schon irgendwie ein bisschen.

    5.
    Zitat:
    2. Du benutzt anscheinend ein RPM-Paket, dass für Fedora gebaut wurde.
    Nein. Ich benutze wie gesagt das tar-Archiv und kein RPM-Packet

    6.
    Zitat:
    3. Du erwartest, dass deine ältliche Distribution das auch noch mitmacht.
    ...

    7.
    Zitat:
    Du hast auch die Möglichkeit, verschiedene Einstellungen im configure-skript festzulegen, ./configure --help im Verzeichnis hilft weiter.
    Das weiß ich, aber ich will die neue Version ja nicht einfach drüberinstallieren...

    8.
    Zitat:
    Er möchte das Paket selbst übersetzen, er benutzt kein RPM!
    Genau so ist es.

    9.
    Zitat:
    Er kann mittels ./configure festlegen, wohin er installiert!
    Wie gesagt, ich will es nicht einfach "drüberbügeln"...

    10.
    Zitat:
    Stimmt, aber diese Quellcode war für eine "normale" Distribution. Das es nicht funktionierte ist nichts besonderes wenn man so eine alte SuSE benutzt.
    Ich verstehe nicht ganz, was du damit sagen willst...


    In einem anderem Forum hab ich den Tip bekommen, dass ich $PKG_CONFIG_PATH richtig setzen muss. Wenn ich das tue, findet er es auch, aber leider kommt beim kompilieren von Pango ein Fehler...
    Aber mein Hauptproblem ist jetzt erstmal: Wie kann ich die alte glib durch die neue ersetzen?

    Antwort 10 von lin-ux

    Nachschlag:

    11.
    Zitat:
    1. Das configure Skript löst die entsprechenden Abhängikeiten auf, dh. wenn was fehlt oder wenn eine benötigte lib woanders liegt, wirst du angemeckert und kannst das Verzeichnis angeben! Quellcode ist nicht auf eine spezielle Distri festgelegt! Was ist denn eine "normale" Distri???
    Genau so sieht es aus... :-)

    Antwort 11 von stefanix

    @lin-ux
    Zitat:
    "Er kann mittels ./configure festlegen, wohin er installiert! "
    Wie gesagt, ich will es nicht einfach "drüberbügeln"...


    Normalerweise landen die libraries mit der entsprechenden Versionsnummer auf deiner Festplatte und ein entsprechender Symlink wird dann gesetzt, dh. libxyz.so ist ein Link auf libxyz.so.1.1.1. Wenn du also eine neue library installierst wird die alte nicht überschrieben.
    Kannst du im configure-skript von Pango(keine Ahnung was das ist :-)) nicht den Pfad zur glib angeben? Z.B. ./configure --glib-path="/usr/local/glib..."

    Grüsse, Stefanix

    Antwort 12 von stefanix

    Nachtrag:
    Mit "ldconfig" aktualisierst du "/etc/ld.so.cache", mit dem Parameter -v werden dir alle gefundenen libraries aufglistet, "ldconfig -v > lib.txt " kopiert dir die Ausgabe(STDOUT) in die Datei lib.txt. In der Datei "/etc/ld.so.conf" sind die zu durchsuchenden Pfade aufgeführt. Es sollte hier also auch "usr/local/lib" stehen.
    ld.so.cache enthält eine Liste mit allen bekannten Bibliotheken auf dem System.
    Vielleicht hilft es dir ja weiter.

    Grüsse, Stefanix

    Antwort 13 von lin-ux

    Ich habe es jetzt so gelöst, dass ich einfach so gelöst, dass ich mir aus dem glib-Zeugs ein rpm-Packet gebastelt habe und das dann eingespielt => fertig!

    Trotzdem danke an die, die Hilfe geleistet haben :-)

    Schade nur, dass bei jeder Anfrage, wo das Wort "SuSE" enthalten ist, erstmal eine Grundsatzdiskussion aufkommt.
    Auch Schade, dass oft nur die Häflte der Frage gelesen wird und dann völlig unnütze Ratschläge, die komplett am Ziel vorbeischießen, dabei herauskommen.

    Antwort 14 von lin-ux

    Zitat:
    Ich habe es jetzt so gelöst, dass ich einfach so gelöst, dass ich mir aus dem glib-Zeugs ein rpm-Packet gebastelt habe und das dann eingespielt => fertig!
    Das sollte natürlich heißen:

    Ich habe es jetzt so gelöst, dass ich mir aus dem glib-Zeugs ein rpm-Packet gebastelt habe und das dann eingespielt => fertig!

    ;-)

    Trotzdem nochmal Danke :)

    Antwort 15 von draack

    Hi,

    schön, dass du es selbst hinbekommen hast.

    Zu deinen Kommentaren ( Antwort 9, Nr. 4-6):

    Meine Bemerkung zum "developement branch" bezog sich übrigens auf Lilypond 2.7 .

    Das du das tar-Archiv benutzt, hattest du nicht mitgeteilt.

    Das mit der Distribution bezog sich darauf, dass du nicht erwarten kannst in einer alten Distribution aktuelle Softwareversionen vorzufinden.

    Schön, dass du dich dazu entschlossen hast, ein eigenes RPM-Paket für glib zu bauen (sicherlich die sauberste Lösung) - außerdem hast du auch noch etwas dabei gelernt. Vielleicht bastelst du dir ja auch noch die restliche Software als Pakete zusammen ...

    Tschö,
    Volker

    P.S.: Das mit dem Linuxlaien hatte ich aus deinen Fragen im ersten Posting geschlossen. Du bist aber auf einem guten Wege (s.o.).

    Antwort 16 von WIXP

    Ich will hier nicht auf jede Äußerung eingehen. Ich habe statt dessen nur ein paar herausgepickt. Ich möchte hier auch keineswegs SuSE-Bashing betreiben, denn ich benutze zur Zeit wieder SuSE 9.2 da bei Ubuntu Grub mit der Meldung "Fehler 17" seinen Dienst eingestellt hat, obwohl Grub Wochenlang ohne Probleme den Kernel starten konnte. Aber das ist eine andere Geschichte.

    > Das configure Skript löst die entsprechenden Abhängikeiten auf, dh. wenn was fehlt oder wenn eine benötigte lib woanders liegt, wirst du angemeckert und kannst das Verzeichnis angeben! Quellcode ist nicht auf eine spezielle Distri festgelegt!

    War mir schon klar, aber dennoch kann es möglich sein das du manches nicht ans laufen bekommen wirst und von einem Koflikt zu einem anderen Konflikt stolperst.

    >Was ist denn eine "normale" Distri???

    Eine nomale Distribution hält sich konsequent an die Ordnerstuktur. Bei SuSE ist KDE z.B. in dem Pfad /opt installiert während bei einer "normalen" Distribution der Ordner leer ist. SuSE hat mindesten einmal wärend der zurückliegenden Distributionspflege da mal was geändert und manchmal Dinge in andere Pfade installiert. (ich meine aber nicht die Sache mit KDE und /opt)

    > Ich habe es jetzt so gelöst, dass ich einfach so gelöst, dass ich mir aus dem glib-Zeugs ein rpm-Packet gebastelt habe und das dann eingespielt => fertig!

    Ich gehe mal davon aus, daß Lilypond 2.7 bei dir bis jetzt dennoch nicht funktioniert.
    Falls du deine Installation kaputt konfiguriert hast, wäre es eine gute Gelegenheit auf einer neuere Version umzusteigen. ;)

    > Das ist doch so: normale rpm-Packete werden nicht nach /usr/local installiert, tar-Archive schon, damit sich beides nicht vermischt. Das ist also alles andere als eine negative Eigenschaft von SuSE.

    Das habe ich auch nicht behauptet. Nur stört es wenn manche Dateien in anderen Pfaden liegen und die GUI eines bestimmten Programms beim Start des Selben einige Dateien nicht finden kann.

    >>Das es nicht funktionierte ist nichts besonderes wenn man so eine alte SuSE benutzt.
    >Ich verstehe nicht ganz, was du damit sagen willst...

    Einfach nur, daß SuSE, anders als manch andere Distribution im Laufe der Versionsgeschichte nicht immer ganz rund gelaufen ist. In einem Fall habe ich mal z.B. bei der SuSE-Distri das mitgelieferte Programm "privoxy" von der CD installiert und festgestellt das es nicht funktionierte obwohl der Proxy als gestartet angezeigt wurde. Das gleiche rpm-Paket aus dem Internet für eine andere Distribution machte komischerweise keine Probleme. Ich möchte nicht auf alle Ungereimtheiten oder Ecken bei der Jahrelangen Benuzung der SuSE-Distris eingehen, zumal ich mich an das Meiste ohnehin nicht mehr erinnern kann. Jedenfalls haben mich diese Ungereimtheiten und Ecken eine Zeitlang zu RedHat genötigt und ich würde heute noch RedHat benutzen, wenn diese nicht eingestellt worden wäre. Für Fedora kann ich mich leider nicht begeistern. Schon vom Namen her könnte man es für eine Kartoffelsorte oder für Blumendünger halten. (ich weiß, im englischen steht es für "Schlapphut" und im südamerikanischen Raum ist "Fedor" der Name für Gestank)

    >Wie gesagt, ich will es nicht einfach "drüberbügeln"...
    >Aber mein Hauptproblem ist jetzt erstmal: Wie kann ich die alte glib durch die neue ersetzen?

    Ich weiß nicht ob sowas überhaupt geht! Im Grunde "vergewaltigst" du eine ansonsten gut funktionierende SuSE8.2 und wunderst dich hinterher, wenn sie dir Böse ist.

    WIXP

    Antwort 17 von RTFM

    Ich werde zwar oft dafür geprügelt..., aber gibt es denn
    überhaupt einen Sinn, noch SuSE 8.2 einzusetzen?
    Wahrscheinlich ist SEIN Problem durch Umstieg auf ein
    aktuelles Linux längst behoben. Und wenn sein /home
    auf einer Extra-Partition liegt, auch absolut kein
    Problem.

    Drüberbügeln hat unter SuSE übrigens noch niemals
    richtig funktioniert.

    Antwort 18 von draack

    Zitat:
    Drüberbügeln hat unter SuSE übrigens noch niemals
    richtig funktioniert.

    Stimmt - die CDs/DVDs sahen danach immer ganz komisch aus!

    SCNR .... ;)

    Antwort 19 von RTFM

    :-)

    Ich meinte natürlich die "automatische" Updatefunktion auf eine nächsthöhere Version. Kann man knicken.

    Antwort 20 von stefanix

    Es ging hier um das drüberunstallieren einer lib und nicht um irgendwelche ominösen Updatefunktionen.
    @RTFM
    Schon mal apt4rpm probiert? Wohl nicht ...
    Drüberbügeln kannst du die lib nicht! Wie ich geschrieben hatte, wird die lib mit der entsprechenden Versionsnummer gespeichert!

    Grüsse, Stefanix

    Ich möchte kostenlos eine Frage an die Mitglieder stellen:


    Ähnliche Themen:


    Suche in allen vorhandenen Beiträgen: