Ребят, понадобилось мне поменять либу libneon на более новую так как в новой версии есть нужен мне фикс.
Подробности упущу..
Интересует вот что - в стандартной установке есть эта либа версии 27.
Мне нужно поставить 29-ю.
Я выкачал исходники, скомпилил и даже заинсталил - все ок.
Но как сделать чтобы системой подхватывалась новая версия?? Кубунта как работала со старой так и работает. Есть ли какие то стандартные пути решения когда нужно обновить либу??
Удалить старую версию никак потому что там идет завязка на всё кде.
1. Как компилировали библиотеку? С опциями? Без опций?
2. Куда либа поставилась? У нее что путь установки и/или название отличаются от старой версии?
3. При компиляции чего-либо и необходимости подключить библиотеку в явном виде используются опции компилятора:
-L${PATH_TO_LIB} -lneon -I${PATH_TO_LIB'S_INCLUDES}
${PATH_TO_LIB} - путь к папке, где лежит библиотека;
-lneon - подключение этой библиотеки;
-I${PATH_TO_LIB'S_INCLUDES} - путь к папке, где лежат хедеры данной библиотеки.
А вообще можно поподробней сформулировать задачу)) (типа собираю/запускаю то-то, не получается это, вот логи и т.п.)
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 подавать?
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)
Спасибо.
Хоть саму пробему я еще не решил, но либа стала на своё место.
Отправить комментарий