Установите несколько версий пакета - PullRequest
4 голосов
/ 19 июня 2010

Я хочу установить несколько версий пакета (скажем, libX) из src. Пакет (libX) использует для сборки Autotools, поэтому соблюдайте соглашение ./configure, make, make install. Установленная по умолчанию идет в / usr / local / bin и / usr / local / lib, и я хочу установить другую версию этого в / home / user / libX.

Другая проблема заключается в том, что libX является зависимостью для другого пакета (скажем, libY), который также использует автоинструменты. Как сделать так, чтобы libY указывал на версию, установленную в / home / user / libX? Также возможно, что это системный пакет, такой как ffmpeg, и я хочу использовать последнюю версию svn для моего кода src и, следовательно, собрать его из src. Что мне делать в этом случае? Какова лучшая практика в этом случае, чтобы я не ломал системные библиотеки?

Я использую Ubuntu 10.04 и Opensuse 10.3.

1 Ответ

4 голосов
/ 19 июня 2010

Обычно вы можете передать параметр --prefix, чтобы настроить его, чтобы установить библиотеку в другом месте.Поэтому для персональной версии вы обычно можете запустить ее как:

./configure --prefix=$HOME/usr/libX

, и она будет установлена ​​в $HOME/usr/libX/bin, $HOME/usr/libX/lib, $HOME/usr/libX/etc и т. Д.

Если высобирают libY из исходного кода, скрипт configure обычно использует инструмент pkg-config, чтобы выяснить, где хранится пакет.libX должен был включить файл .pc в каталог $HOME/usr/libX/lib/pkgconfig, который сообщает configure, где искать заголовки и файлы библиотеки.Вам нужно будет указать инструменту pkg-config, чтобы он сначала просматривал ваш каталог.

Это делается путем установки PKG_CONFIG_PATH для включения вашего каталога в первую очередь.При настройке libY попробуйте

PKG_CONFIG_PATH=$HOME/usr/libX/lib/pkgconfig:/usr/local/lib/pkgconfig ./configure

man pkg-config, чтобы сообщить подробности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...