So installieren Sie Cairo 1.8.10

12

Das Paket libcairo2-devist die neueste Version der Cairo-Grafikbibliothek (1.10.2). Kann ich Version 1.8.10 auf irgendeine Weise installieren?

Ich verwende 11.10, wäre aber nach Möglichkeit an einer allgemeinen Lösung interessiert.

Daniel Standage
quelle
Können Sie erklären, warum Sie die ältere Version installieren möchten? Die systemweite Installation der älteren Version ist wahrscheinlich nicht möglich (einige Programme hängen möglicherweise von den Funktionen der neueren Version ab). Wenn Sie jedoch eine engere Anforderung für die ältere Version haben, ist möglicherweise eine Lösung möglich.
James Henstridge
Ich persönlich weiß sehr wenig über Kairo, aber ich habe ein Programm geschrieben, das auf eine Bibliothek verweist, die wiederum Kairo zum Generieren von Grafiken verwendet. Ich habe den größten Teil der ursprünglichen Entwicklung auf meinem Mac durchgeführt, für den die Installation in Kairo nur über Fink (das nur Version 1.8.10 enthält) verfügbar war ...
Daniel Standage
... Das Programm verwendet auch OpenMP, und eine der parallelisierten for-Schleifen enthält Aufrufe der Bibliotheksfunktionen von Kairo. Das Programm funktioniert unter Ubuntu, wenn ich es auf einem einzelnen Prozessor ausführe, und es funktioniert unter Mac für eine beliebige Anzahl von Prozessoren. Aber wenn ich es unter Ubuntu mit mehreren Prozessoren ausführe, bekomme ich Abbrüche, Segfaults, Glibcs ​​usw.
Daniel Standage
Ich verstehe, dass ein Downgrade auf Version 1.8.10 für eine langfristige Lösung nicht erwünscht ist. Wenn Sie die Installation isolieren könnten, wäre dies möglicherweise sogar noch besser. Ich habe die Software bereits verteilt und möchte einfach eine vorübergehende Lücke haben, bis ich herausgefunden habe, was wirklich mit meinem Programm nicht stimmt.
Daniel Standage
Als Referenz gehen die Versionsnummern für Kairo auf 1,8 -> 1,9 -> 1,10, sodass die in Ubuntu enthaltene Version in der Lage sein sollte, alles zu tun, was die unter MacOS verwendete Version getan hat. Wenn Sie nur über eine Bibliothek eines Drittanbieters auf Kairo zugreifen, die Sie nicht ändern, sollten Sie sich keine Sorgen machen müssen, dass Sie versehentlich neue Funktionen verwenden und die Kompatibilität mit Ihrer alten Entwicklungsumgebung beeinträchtigen. Wenn Sie auf ein Problem mit der neuen Version gestoßen sind, können Sie erklären, was es ist?
James Henstridge

Antworten:

9

Wenn Sie eine alte Version von Kairo testen möchten, können Sie sie in einem temporären Präfix in Ihrem Home-Verzeichnis erstellen.

Stellen Sie zunächst sicher, dass die Build-Abhängigkeiten von Cairo installiert sind. Sie können dies mit dem folgenden Befehl tun:

sudo apt-get build-dep cairo

Laden Sie jetzt die alte Version von Kairo herunter und entpacken Sie sie:

wget http://cairographics.org/releases/cairo-1.8.10.tar.gz
tar xzf cairo-1.8.10.tar.gz
cd cairo-1.8.10

Jetzt möchten Sie Kairo in ein temporäres Präfix einbauen. Ich habe ~/prefixdies einige Male verwendet, aber Sie können jedes Verzeichnis verwenden.

./configure --prefix=$HOME/prefix
make
make install

Jetzt müssen Sie Ihre eigene Software verwenden, um diese Version von Kairo zu verwenden. Wenn die Software pkg-configzum Auffinden ihrer Abhängigkeiten verwendet wird, sollte nur die folgende Umgebungsvariable festgelegt werden müssen:

export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig

Wenn es nicht verwendet wird pkg-config, müssen Sie möglicherweise anpassen, CFLAGSum einzuschließen -I$HOME/prefix/includeund LDFLAGSeinzuschließen -L$HOME/prefix/lib.

Um Ihr Programm mit der benutzerdefinierten Version von Kairo auszuführen, müssen Sie den dynamischen Linker so konfigurieren, dass er in Ihrem temporären Präfix nach gemeinsam genutzten Bibliotheken sucht:

export LD_LIBRARY_PATH=$HOME/prefix/lib

Sobald dies festgelegt ist, können Sie überprüfen, ob Ihr Programm mit Ihrer Kopie von Kairo verknüpft ist ldd. Wenn das in Ordnung aussieht, sind Sie fertig.

Aufräumen

Sobald Sie mit dieser temporären Installation fertig sind, ist die Bereinigung ziemlich einfach. Setzen Sie einfach die Umgebungsvariablen zurück und entfernen Sie das Präfix für die temporäre Installation:

unset LD_LIBRARY_PATH
unset PKG_CONFIG_PATH
rm -rf $HOME/prefix

Möglicherweise müssen Sie Ihr Programm danach neu konfigurieren / erstellen, damit es das System Cairo wieder verwendet.

James Henstridge
quelle
1
Hervorragende und klare Anweisungen mit einem sauberen Installations- und Deinstallationsprozess. Vielen Dank!
Daniel Standage
So entfernen Sie Standard-Include-Pfade aus $ HOME, damit keine Standard-Cairo-Dateien verwendet werden
Dau