Як встановити Каїр 1.8.10


12

Пакет libcairo2-devє останньою версією графічної бібліотеки в Каїрі (1.10.2). Чи можна встановити версію 1.8.10?

Я бігаю 11.10, але зацікавився б загальним рішенням, якщо це можливо.


Чи можете ви пояснити, чому ви хочете встановити старішу версію? Встановлення системи старих версій на широкому рівні, ймовірно, не є можливою (деякі програми можуть залежати від особливостей нової версії), але якщо у вас є більш вузькі вимоги до старішої версії, можливо, рішення може бути можливим.
Джеймс Генстридж

Я особисто дуже мало знаю про Каїр, але я написав програму, яка посилається на бібліотеку, яка в свою чергу використовує Каїр для генерування графіки. Я зробив більшу частину оригінальної розробки на моєму Mac, для якої встановлення в Каїрі було доступне лише через щось на кшталт Fink (яке має лише v1.8.10) ...
Daniel Standage

... Програма також використовує OpenMP, і одна з паралельних для циклів включає дзвінки до функцій бібліотеки в Каїрі. Програма працює на Ubuntu, коли я запускаю її на одному процесорі, і вона працює на Mac для будь-якої кількості процесорів. Але коли я запускаю його на Ubuntu з декількома процесорами, я отримую аборти, segfaults, glibcs ​​тощо
Daniel Standage

Я розумію, що перехід на v1.8.10 - це не те, що ви хотіли б довгостроково вирішити, і якщо ви зможете ізолювати установку, це може бути навіть краще. Я вже розповсюдив програмне забезпечення і просто хочу мати тимчасовий пробіл, поки я не зможу зрозуміти, що насправді не так у моїй програмі.
Деніел Даніель

Для довідки, номери версій для Каїра складають 1,8 -> 1,9 -> 1,10, тому версія, включена до Ubuntu, повинна мати можливість робити все, що робила версія, яку ви використовували на MacOS. Якщо ви отримуєте доступ до Каїра лише через сторонні бібліотеки, які ви не змінюєте, вам не доведеться турбуватися про випадкове використання нових функцій та порушення сумісності зі старим середовищем розробки. Якщо у вас виникли проблеми з новою версією, ви могли б пояснити, що це таке?
Джеймс Генстридж

Відповіді:


9

Якщо ви хочете перевірити стару версію Каїра, ви можете побудувати її у тимчасовій префіксі у вашому домашньому каталозі.

Перш за все, переконайтеся, що у вас встановлені залежності від побудови Каїра. Це можна зробити за допомогою наступної команди:

sudo apt-get build-dep cairo

Тепер завантажте та розпакуйте стару версію Каїра:

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

Тепер ви хочете побудувати Каїр у тимчасовій приставці. Я використовував ~/prefixдля цього кілька разів, але ви можете використовувати будь-який каталог.

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

Тепер вам потрібно зробити власне програмне забезпечення, використовуючи цю версію Каїра. Якщо програмне забезпечення використовує pkg-configдля пошуку своїх залежностей, слід лише встановити таку змінну середовища:

export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig

Якщо він не використовується pkg-config, можливо, вам доведеться налаштувати, CFLAGSщоб включити -I$HOME/prefix/includeта LDFLAGSвключити -L$HOME/prefix/lib.

Нарешті, для запуску програми за допомогою спеціальної версії Каїра вам потрібно буде налаштувати динамічний лінкер, щоб він шукав спільні бібліотеки у вашому тимчасовому префіксі:

export LD_LIBRARY_PATH=$HOME/prefix/lib

Як тільки це встановлено, ви можете переконатися, що ваша програма посилається на вашу копію з Каїра за допомогою ldd. Якщо це виглядає нормально, у вас все готово.

Очищення

Після того, як ви закінчите цю тимчасову установку, очистити досить просто. Просто скиньте змінні середовища та видаліть префікс тимчасової установки:

unset LD_LIBRARY_PATH
unset PKG_CONFIG_PATH
rm -rf $HOME/prefix

Можливо, вам доведеться переконфігурувати / відновити свою програму після цього, щоб знову використовувати систему Каїр.


1
Відмінні та чіткі інструкції, з чітким способом встановлення та видалення. Спасибі!
Деніел Даніель

Як видалити з замовчуванням включають шляху від $ HOME , так що він не буде використовувати по замовчуванням файлів КАЇР
Дау
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.