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.