Jak zainstalować Kair 1.8.10


12

Pakiet libcairo2-devjest najnowszą wersją biblioteki graficznej Kair (1.10.2). Czy jest jakiś sposób na zainstalowanie wersji 1.8.10?

Korzystam z wersji 11.10, ale jeśli to możliwe, byłbym zainteresowany ogólnym rozwiązaniem.


Czy możesz wyjaśnić, dlaczego chcesz zainstalować starszą wersję? Zainstalowanie starszej wersji w całym systemie prawdopodobnie nie jest możliwe (niektóre programy mogą zależeć od funkcji nowszej wersji), ale jeśli masz węższe wymagania dotyczące starszej wersji, rozwiązanie może być możliwe.
James Henstridge

Osobiście niewiele wiem o Kairze, ale napisałem program, który prowadzi do biblioteki, która z kolei używa Kairu do generowania grafiki. Zrobiłem większość oryginalnego rozwoju na moim Macu, dla którego instalacja w Kairze była dostępna tylko przez coś takiego jak Fink (który ma tylko v1.8.10) ...
Daniel Standage

... Program korzysta również z OpenMP, a jedna z równoległych pętli for zawiera wywołania funkcji biblioteki Cairo. Program działa na Ubuntu, kiedy uruchamiam go na jednym procesorze, i działa na Macu dla dowolnej liczby procesorów. Ale kiedy uruchamiam go na Ubuntu z wieloma procesorami, dostaję przerwanie, segfault, glibcs ​​itp.
Daniel Standage

Rozumiem, że obniżenie wersji do wersji 1.8.10 nie jest czymś, czego oczekujesz od długoterminowego rozwiązania, a jeśli możesz izolować instalację, może być nawet lepsza. Już rozpowszechniłem oprogramowanie i po prostu chcę mieć tymczasową przerwę, dopóki nie będę w stanie dowiedzieć się, co naprawdę jest nie tak z moim programem.
Daniel Standage

Dla porównania, numery wersji dla Kairu wynoszą 1.8 -> 1.9 -> 1.10, więc wersja dołączona do Ubuntu powinna być w stanie zrobić wszystko, co zrobiła wersja na MacOS. Jeśli uzyskujesz dostęp do Kairu tylko przez bibliotekę strony trzeciej, której nie modyfikujesz, nie powinieneś się martwić przypadkowym użyciem nowych funkcji i naruszeniem zgodności ze starym środowiskiem programistycznym. Jeśli napotkałeś problem z nową wersją, czy możesz wyjaśnić, co to jest?
James Henstridge

Odpowiedzi:


9

Jeśli chcesz przetestować starą wersję Kairu, możesz zbudować ją jako tymczasowy prefiks w swoim katalogu domowym.

Przede wszystkim upewnij się, że masz zainstalowane zależności kompilacji Kairu. Możesz to zrobić za pomocą następującego polecenia:

sudo apt-get build-dep cairo

Teraz pobierz i rozpakuj starą wersję Kairu:

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

Teraz chcesz zbudować Kair w tymczasowym prefiksie. Używałem ~/prefixtego kilka razy, ale możesz użyć dowolnego katalogu.

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

Teraz musisz zmusić własne oprogramowanie do korzystania z tej wersji Kairu. Jeśli oprogramowanie używa pkg-configdo zlokalizowania swoich zależności, powinno być konieczne jedynie ustawienie następującej zmiennej środowiskowej:

export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig

Jeśli nie jest używany pkg-config, konieczne może być dostosowanie, CFLAGSaby uwzględnić -I$HOME/prefix/includei LDFLAGSuwzględnić -L$HOME/prefix/lib.

Wreszcie, aby uruchomić program przy użyciu niestandardowej wersji Kairu, musisz skonfigurować dynamiczny linker, aby szukał bibliotek współdzielonych w tymczasowym prefiksie:

export LD_LIBRARY_PATH=$HOME/prefix/lib

Po ustawieniu tego możesz sprawdzić, czy Twój program łączy się z twoją kopią Kairu ldd. Jeśli to wygląda dobrze, wszystko gotowe.

Sprzątanie

Po zakończeniu tej tymczasowej instalacji czyszczenie jest dość łatwe. Po prostu zresetuj zmienne środowiskowe i usuń tymczasowy prefiks instalacji:

unset LD_LIBRARY_PATH
unset PKG_CONFIG_PATH
rm -rf $HOME/prefix

Po wykonaniu tej czynności może być konieczna ponowna konfiguracja / przebudowa programu, aby mógł ponownie korzystać z systemu Kair.


1
Doskonałe i jasne instrukcje z czystym procesem instalacji i deinstalacji. Dzięki!
Daniel Standage

Jak usunąć domyślne ścieżki dołączania z $ HOME, aby nie używał domyślnych plików Cairo
Dau
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.