4 Stimmen

Mehrere Versionen eines Pakets installieren

Ich möchte mehrere Versionen eines Pakets (z.B. libX) aus src installieren. Das Paket (libX) verwendet Autotools zum Bauen, folgt also der Konvention ./configure , make, make install. Die standardmäßig installierte Version befindet sich in /usr/local/bin und /usr/local/lib, und ich möchte eine weitere Version davon in /home/user/libX installieren.

Das andere Problem ist, dass libX eine Abhängigkeit für ein anderes Paket (z.B. libY) ist, das ebenfalls autotools verwendet. Wie kann ich libY dazu bringen, auf die in /home/user/libX installierte Version zu verweisen? Es könnte auch die Möglichkeit bestehen, dass es sich um ein Systempaket wie ffmpeg handelt und ich die neueste svn-Version für meinen src-Code verwenden und ihn daher von src aus bauen möchte. Was muss ich in diesem Fall tun? Was ist die beste Vorgehensweise in diesem Fall, damit ich die Systembibliotheken nicht beschädige?

Ich verwende Ubuntu 10.04 und Opensuse 10.3.

4voto

Pat Wallace Punkte 1041

Normalerweise können Sie die --prefix zu konfigurieren, um die Bibliothek an einem anderen Ort zu installieren. Für eine persönliche Version können Sie es also normalerweise als ausführen:

./configure --prefix=$HOME/usr/libX

und es wird installiert in $HOME/usr/libX/bin , $HOME/usr/libX/lib , $HOME/usr/libX/etc und so weiter.

Wenn Sie libY aus dem Quellcode bauen, verwendet das configure-Skript normalerweise die pkg-config Tool, um herauszufinden, wo ein Paket gespeichert ist. libX sollte eine .pc-Datei in das Verzeichnis $HOME/usr/libX/lib/pkgconfig die configure mitteilt, wo es nach Headern und Bibliotheksdateien suchen soll. Sie müssen dem Werkzeug pkg-config sagen, dass es zuerst in Ihrem Verzeichnis suchen soll.

Dazu wird der PKG_CONFIG_PATH so eingestellt, dass er Ihr Verzeichnis zuerst enthält. Wenn Sie libY konfigurieren, versuchen Sie

PKG_CONFIG_PATH=$HOME/usr/libX/lib/pkgconfig:/usr/local/lib/pkgconfig ./configure

man pkg-config sollte Einzelheiten enthalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X