Обновление либы на более новую свеже-скомпиленную

Изображение пользователя palexv.

Ребят, понадобилось мне поменять либу libneon на более новую так как в новой версии есть нужен мне фикс.
Подробности упущу..

Интересует вот что - в стандартной установке есть эта либа версии 27.

Мне нужно поставить 29-ю.

Я выкачал исходники, скомпилил и даже заинсталил - все ок.

Но как сделать чтобы системой подхватывалась новая версия?? Кубунта как работала со старой так и работает. Есть ли какие то стандартные пути решения когда нужно обновить либу??

Удалить старую версию никак потому что там идет завязка на всё кде.

0
Voyageur - 12 Декабрь, 2009 - 21:25
Изображение пользователя Voyageur.

1. Как компилировали библиотеку? С опциями? Без опций?
2. Куда либа поставилась? У нее что путь установки и/или название отличаются от старой версии?
3. При компиляции чего-либо и необходимости подключить библиотеку в явном виде используются опции компилятора: -L${PATH_TO_LIB} -lneon -I${PATH_TO_LIB'S_INCLUDES}
${PATH_TO_LIB} - путь к папке, где лежит библиотека;
-lneon - подключение этой библиотеки;
-I${PATH_TO_LIB'S_INCLUDES} - путь к папке, где лежат хедеры данной библиотеки.

А вообще можно поподробней сформулировать задачу)) (типа собираю/запускаю то-то, не получается это, вот логи и т.п.)

0
palexv - 12 Декабрь, 2009 - 23:47
Изображение пользователя palexv.

Voyageur, спасибо за ответ.

Компилил по инструкциям с http://www.techsww.com/tutorials/libraries/neon/installation/installing_neon_on_ubuntu_linux.php

Ситуация следующая:

- KPackageKit -> libneon27-gnutls -> File List:

/.
/usr
/usr/lib
/usr/lib/libneon-gnutls.so.27.1.6
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libneon27-gnutls
/usr/share/doc
/usr/share/doc/libneon27-gnutls
/usr/share/doc/libneon27-gnutls/changelog.gz
/usr/share/doc/libneon27-gnutls/copyright
/usr/share/doc/libneon27-gnutls/changelog.Debian.gz
/usr/lib/libneon-gnutls.so.27

- Свежую версию скомпилил и установил в /usr/lib/neon - что есть неправильно.

Вопрос - куда правильно?

Voyageur, очень интересен пункт 3. Неуверен что понял как
то запустить. Эти опции при make install подавать?

0
Voyageur - 13 Декабрь, 2009 - 11:43
Изображение пользователя Voyageur.

LIBS="-ldl" ./configure --prefix=/usr/local/neon --with-ssl=openssl --with-libxml2 --with-libs=/usr/local/openssl/:/usr/local/libxml2/ --without-zlib
В этой строчке достаточно убрать опцию --prefix, в этом случае новая библиотека заменит старую. По умолчанию при ручной сборке в основном используется префикс /usr (то есть если изменить значение опции --prefix на /usr, то это будет то же самое, что и сборка без этой опции).

Можно библиотеку и не пересобирать, а просто перед сборкой остальных пакетов добавить такую строчку:export LD_LIBRARY_PATH=/usr/lib/neon/lib:${LD_LIBRARY_PATH}

Также есть способ приведенный в 3-ем пункте моего первого поста. Эти опции вообще подаются на вход компилятору (в нашем случае gcc), для того, чтобы подать их при сборке пакетов, можно попробовать доопределить переменные CFLAGS и CXXFLAGS. Для этого почитайте помощь конфигуратора собираемого пакета (обычно это ./configure --help | less)

0
palexv - 13 Декабрь, 2009 - 22:08
Изображение пользователя palexv.

Спасибо.

Хоть саму пробему я еще не решил, но либа стала на своё место.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры