Installation aktueller Libraries ohne RPM?

Alles rund um die Installation Eures Linuxsystems, sowie die Updatefunktionen des Systems und das Paketmanagement

Moderator: Moderatoren

Antworten
Kyaha
Newbie
Newbie
Beiträge: 7
Registriert: 30. Aug 2006, 18:13

Installation aktueller Libraries ohne RPM?

Beitrag von Kyaha » 30. Aug 2006, 20:59

Hallo!

Ich bin jetzt durch die Uni genötigt worden, einige Libraries zu aktualisieren, weil eine dort entwickelte Software sich anderfalls nicht installieren läßt.

Um genau zu sein - bei den Libraries handelt es sich um GTK (2.12.3) und OpenCV (0.9.9).
Unter Windows dies zu installieren war nicht weiter schwer, aber wer schon Informatik studiert sollte auch gefälligst alles unter Linux (Suse 10.1 - 32bit) zum laufen bringen - soweit war mein Gedanke.
Aber leider Pustekuchen :cry:

Ich bin also folgendermaßen vorgegangen:
Den aktuellen Sourcecode von gtk.org und sourceforge heruntergeladen und auch die aktuellen Versionen der weiterhin benötigten Libraries (glib2, Pango, Cairo, atk, pkg-config).
Danach habe ich mich stur daran gehalten, was auch in den Installationsanleitungen stand. Das war fast ausschließlich der klassische 3er Schritt:

./configure
make
make install

Soweit keine Abhängigkeiten bestehen, compiliert auch alles wunderbar durch.
Wenn ich jetzt aber GTK installieren möchte, bricht mir alles beim ./configure ab, weil die Anforderungen an die Versionen von Pango & co nicht erfüllt werden.
Eine Abfrage per rpm -qi pango o.ä. sagt mir, daß die alten Versionen noch immer installiert sind.

Habe ich die Pfade falsch gesetzt? Wenn ja, was müßte ich genau beachten?
Oder gibt es von allem bereits rpm Packete, die ich einfach installieren kann? Kann man auch PMs benutzen, die nicht für Suse 10.1 erstelllt wurden? Falls ja, wo kann ich diese finden? Ich habe schon einige Suchmaschinen ausprobiert, aber nichts gefunden, was mir geholfen hätte (Ich brauche leider die fast aktuellste Version jeweils). :(

Das selbstständige Erstellen von RPMs per rpmbuild habe ich derweil aufgegeben, da ich dort absolut nicht durchsteige mit dem spec-File. :(

Ich hoffe, ihr könnt mir N00b bei diesem Problem weiterhelfen.

Besten Dank auf jeden Fall im voraus!

Grüße

Kyaha

Werbung:
Benutzeravatar
Martin Breidenbach
Ultimate Guru
Ultimate Guru
Beiträge: 5632
Registriert: 26. Mai 2004, 21:33
Wohnort: N 50.17599° E 8.73367°

Re: Installation aktueller Libraries ohne RPM?

Beitrag von Martin Breidenbach » 30. Aug 2006, 21:01

Kyaha hat geschrieben: ./configure
make
make install
Dabei wird ja die rpm Datenbank nicht aktualisiert. Eine Abfrage der rpm Dtaenbank ergibt also die zuletzt installierte Version.
Nicht Böse sein ! Der Onkel macht doch nur Spaß !

Kyaha
Newbie
Newbie
Beiträge: 7
Registriert: 30. Aug 2006, 18:13

Re: Installation aktueller Libraries ohne RPM?

Beitrag von Kyaha » 30. Aug 2006, 21:05

Martin Breidenbach hat geschrieben: Dabei wird ja die rpm Datenbank nicht aktualisiert. Eine Abfrage der rpm Dtaenbank ergibt also die zuletzt installierte Version.
Das hatte ich schon fast befürchtet. :?

Aber wie kann ich die Datenbank entsprechend aktualisieren? Oder wo bekomme ich die passenden RPMs?

Grüße

Kyaha

jengelh
Guru
Guru
Beiträge: 4039
Registriert: 20. Nov 2004, 17:42
Kontaktdaten:

Beitrag von jengelh » 30. Aug 2006, 21:07

In SL-OSS-factory vielleicht?

traffic
Guru
Guru
Beiträge: 2750
Registriert: 13. Feb 2005, 05:50

Beitrag von traffic » 30. Aug 2006, 21:08

Wenn Du Bibliotheken aus dem Quellcode kompilierst, dann ersetzen diese nicht die mittels RPM installierten Versionen, sondern werden zusätzlich nach /usr/local installiert. In der RPM-Datenbank bleibt die alte Version stehen, im Dateisystem gibt es zwei Versionen, die neue in /usr/local und die alte anderswo, z.B. /opt/gnome oder /usr.

Was das Auffinden der Bibliotheken angeht: Dazu wird das Tool pkg-config benutzt. Relevant ist nicht die Situation in der RPM-Datenbank, die man mittels rpm abfragt, sondern die im Dateisystem, die man mittels pkg-config abfragt.

Also frag die pango-Version nicht so ab

Code: Alles auswählen

rpm -q pango
sondern so

Code: Alles auswählen

pkg-config --modversion pango
und überprüf die Umgebungsvariable PKG_CONFIG_PATH

Code: Alles auswählen

echo "$PKG_CONFIG_PATH"
und lies die Dokumentation zu pkg-config.

Die sauberste Lösung ist die Erstellung eines eigenen RPMs. Wenn Du damit nicht klarkommst, dann ändere das, d.h. schau die spec-Dateien anderer Pakete an, lies Dokumentation, soweit vorhanden und eigne Dir soviel an, bis Du eben doch damit klarkommst.

PS: Im Factory-Zweig gibt es im Moment noch kein 2.12.3, sondern 2.10.2.
openSUSE Factory - GNOME 2.32.1

Kyaha
Newbie
Newbie
Beiträge: 7
Registriert: 30. Aug 2006, 18:13

Beitrag von Kyaha » 30. Aug 2006, 21:31

Hi!

Danke für die schnellen Beiträge - und sorry für die falsche Versionsangabe - habe mich im Filenamen verguckt. :?

Das mit pkg-config hatte ich schon leicht im Verdacht.
Darum hatte ich testweise einmal alle libs in meinem home-Verzeichnis installiert und dann die PK_CONFIG_PATH um eben diesen Pfad per export erweitert.

Leider hat dies auch nichts gebracht - will meinen, die Version ist immer noch die alte, aus Suse RPM installierte Version.

Das mit den spec-Files ist schon ein harter Brocken, ein leichtes "für Dummies" Tutorial habe ich auch noch nicht finden können.
Gibt es nicht irgendwo eine Seite mit relativ aktuellen RPMs?

Grüße

Kyaha

traffic
Guru
Guru
Beiträge: 2750
Registriert: 13. Feb 2005, 05:50

Beitrag von traffic » 30. Aug 2006, 21:40

Bist Du sicher, dass Du die Umgebungsvariable korrekt gesetzt hast?

- Es ist nicht PK_CONFIG_PATH, sondern PKG_CONFIG_PATH

- Das Verzeichnis muss vorne, nicht hinten hinzugefügt werden und es muss direkt das Verzeichnis mit den .pc-Dateien sein.

Angenommen, die .pc-Dateien lägen in /home/Kyaha/lib/pkgconfig, dann müsstest Du die Variable so setzen:

Code: Alles auswählen

export PKG_CONFIG_PATH="/home/Kyaha/lib/pkgconfig:$PKG_CONFIG_PATH
Dass pkg-config die .pc-Dateien trotz korrekt gesetzter Umgebungsvariable immer noch im falschen Verzeichnis suchen soll, habe ich noch nie gehört.

- Die Umgebungsvariable muss in derselben Shell gesetzt werden, in der auch alle weiteren Tests gemacht werden.

Aktuelle RPMs gibt es im Factory-Zweig - wenn die Version dort nicht die richtige ist, dann bedeutet das, dass nicht mal Novell selbst eine aktuellere Version hat. Außerdem ist das mit dem Ersetzen der systemeigenen gtk2-Version so eine Sache - gtk2 ist eine relativ komplexe Bibliothek, die man nicht einfach nur installieren kann, sondern auch richtig integrieren muss.

Wenn Du wirklich überhaupt nicht mit den spec-Dateien klarkommst, dann erstelle ein "Quick&Dirty"-RPM mit checkinstall.
openSUSE Factory - GNOME 2.32.1

Kyaha
Newbie
Newbie
Beiträge: 7
Registriert: 30. Aug 2006, 18:13

Beitrag von Kyaha » 30. Aug 2006, 22:47

Hi!

Ja, die Variable habe ich richtig benannt. Meine alte Tastatur hackt nru manchmal und so verschlucke ich beim schreiben schon einmal einen Buchstaben.

Das Verzeichnis habe ich bisher tatsächlich immer hinten drangehängt - so hatte ich es in einem Tutorial einmal gelesen.

Leider hat das setzen der Variable auch auf 1. Position im Verzeichnis mich noch nicht meinem Ziel näher gebracht. Das braucht wohl doch etwas mehr Bastelzeit, als ich angenommen hatte.

Ich versuche jetzt erst einmal mein Glück mit den RPMs aus dem Factory Verzeichnis.

Wünsche eine geruhsame Nacht - bei Problemen belästige ich euch morgen wieder :wink:

Grüße

Kyaha

Benutzeravatar
admine
Administrator
Administrator
Beiträge: 8746
Registriert: 15. Feb 2004, 21:13
Wohnort: Dresden
Kontaktdaten:

Beitrag von admine » 31. Aug 2006, 08:07

Evt. ist ja auch "checkinstall" eine Möglichkeit für dich:

[HowTo] checkInstall
http://www.linux-club.de/viewtopic.php?t=36214
..:: unser Linux-Club-Wiki ::..
-------------------------
..:: Deutsche Mugge ::..
-------------------------

Kyaha
Newbie
Newbie
Beiträge: 7
Registriert: 30. Aug 2006, 18:13

Beitrag von Kyaha » 31. Aug 2006, 18:22

Hi!

Ich habe mir jetzt aus dem Factory Verzeichnis die src.rpm Dateien heruntergeladen, die ich auch benötige.
Flugs habe ich ein rpmbuild --rebuild filename.src.rpm gemacht.
Soweit hat dann alles durchcompiliert und mir ein paar Dateien herausgespuckt, die unter /usr/src/packages/RPMS/iX86 liege.
Soweit so gut, und ich versuchte (beim Beispiel glib2) zu updaten per
sudo rpm -Uvh glib2-2.12.1-3.i586.rpm.
Leider gab es die folgende Fehlermeldung:

error: Failed dependencies:
glib2 = 2.8.5 is needed by (installed) glib2-devel-2.8.5-19.i586

und daraus werde ich nicht wirklich schlau. Ach per reinen Installparameter -i kommt dieser Fehler.
Wie kann ich dieses Package nun updaten, wenn doch diese Abhängigkeit besteht?

Wenn ich das rpm-Package manuell auswähle in Konquerer und dort "Packet mit YaST installieren" auswähle, startet YaST zwar, aber installiert einzig von der Suse-DVD die alte Version nochmals.
Bisher habe ich es noch nicht geschafft, dieses RPM Verzeichnis bei YaST als Installationsquelle hinzuzufügen.
Was mache ich falsch?

Grüße

Kyaha

b3ll3roph0n
Moderator
Moderator
Beiträge: 3669
Registriert: 4. Dez 2005, 13:17
Kontaktdaten:

Beitrag von b3ll3roph0n » 31. Aug 2006, 19:52

glib2-devel-2.8.5-19 benötigt nun einmal glib2 in der Version 2.8.5.
Wenn du versuchst glib2 zu aktualisieren, dann enstehen bei glib2-devel ungelöste Abhängigkeiten.
Entweder glib2-devel auch aktualisieren, oder deinstallieren.

Um ein Verzeichnis als YAST-Installationsquelle hinzuzufügen, musst du zuerst mit createrepo ein lokales Repository erstellen.
=> http://en.opensuse.org/Creating_YaST_In ... on_Sources
Gruß b3ll3roph0n
--
Denken hilft!

Ich beantworte keine Support-Anfragen per PN.
Für alle meine Beiträge gelten, außer bei Zitaten, die Creative Commons.

Kyaha
Newbie
Newbie
Beiträge: 7
Registriert: 30. Aug 2006, 18:13

Beitrag von Kyaha » 1. Sep 2006, 19:14

Hi!
Das mit dem createrepo hat prima funktioniert - bis jetzt.

Nachdem ich glib2, cairo und pango updated habe, ging ich nun an gtk2.
Jetzt gibt es aber Probleme mit einer libpangocairo - und nicht nur dass, ich komme unter Suse nicht mehr ins Internet. Firefox verlangt eben dies nun auch und kann nicht mehr starten.

Jemand eine Idee wie ich das wieder hingebogen bekomme?
Nahc meiner bisherigen Recherche soll die libpangocairo zum pango packet gehören :?:

Ich dachte dadran, per YaSt das ganze neu einzuspielen, aber YaST bleibt dauernd hängen (da kommt man sich ja schlimmer vor als unter Windows...).
Ich habe es geschafft die alte Installationsquelle zu löschen, aber immer wenn ich eine neue hinzufügen möchte und auf beenden klicke, eiert die Uhr endlos herum und nichts passiert.
Bin dann gezwungen yast zu killen.
Was mache ich falsch?

grüße

Kyaha

Antworten

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 2 Gäste