Предотвращение столкновения версии разработки с системными пакетами

Я имею в виду, что я намерен немного поработать над проектом с открытым исходным кодом, который я уже установил через свои системные пакеты. Мне интересно, есть ли предлагаемый рабочий процесс для управления этой ситуацией, где я хочу сохранить установленные системой пакеты, а также скомпилировать и запустить версию, которую я разрабатываю.

Мой вопрос является общим, поскольку я задавался этим вопросом ранее с другими проектами, но этот конкретный случай побудил меня задать этот вопрос.

Проект, о котором я говорю, – rtorrent . Конечно, у проекта есть другие зависимости, но, в частности, он имеет один автор: libtorrent . Дело в том, что обе эти вещи новее, чем пакеты моей системы, поэтому мне нужно вытащить их и собрать rtorrent против этой версии libtorrent.

До сих пор я компилировал libtorrent, не выполняя make install так как именно там он столкнулся с моими системными пакетами, которые я себе представляю. Это закончилось тем, что src/.libs файлы библиотеки в src/.libs , но я думаю, что мне также понадобится доступ к файлам заголовков, а также правильно ?.

Как я должен идти вперед с созданием этого git-cloned rtorrent? Я никогда не делал этого раньше, поэтому, пожалуйста, извините незнание, но все ли это вращается вокруг сценария ./configure ? Должен ли я просто использовать LDFLAGS для добавления пути к библиотеке с -L и CPPFLAGS для добавления пути include (для заголовков) с -I ? Или мне нужно ./configure libtorrent с помощью --prefix общего для libtorrent и rtorrent, а затем make install libtorrent?

Благодаря!

EDIT : ./configure --help показывает эти «влиятельные переменные среды»,

 libtorrent_CFLAGS C compiler flags for libtorrent, overriding pkg-config libtorrent_LIBS linker flags for libtorrent, overriding pkg-config 

Мне интересно, это создает впечатление, что даже если бы я установил LDFLAGS и CPPFLAGS , в конечном итоге он получает информацию для libtorrent, используя pkg-config , поэтому я должен использовать их вместо этого. Использование этих результатов привело к успешному выполнению ./configure , наряду с параметром --prefix я думаю, что мне хорошо идти.

One Solution collect form web for “Предотвращение столкновения версии разработки с системными пакетами”

Существует два основных способа справиться с этим во время выполнения , используя rpath-ссылку или загрузку разделяемых объектов разработки через LD_LIBRARY_PATH или LD_PRELOAD.

Во время компиляции вам необходимо вставить необходимые параметры командной строки -I / -L (вы уже нашли способ для этого).

Ну, что для меня работает, это использовать rpath-linking и придерживаться pkgconfig, исправляя созданные файлы конфигурации, чтобы исправить правильные пути. Подробнее см. В этом скрипте .

Interesting Posts

Как я могу выполнить команду `history` и не иметь номеров строк, чтобы я мог копировать несколько строк?

Порядок подстановки команды Linux

Как вы можете перемещать файл в качестве фонового задания и удалять все остальные файлы и каталог перед ожиданием завершения задания?

Изменить (уменьшить) Gnome 3 горизонтальное заполнение значка в области уведомлений (Debian Wheezy)

Как очистить последнюю информацию -10?

Как назначить одну переменную на слово строки

Репозиторий для семейных фотографий

systemd: ложь о имени процесса, используя sh -c exec idiom

Не удается переименовать каталог, который у меня есть.

Как использовать адрес содержимого в sed в osx без ошибки «ожидаемый контекстный адрес»

Как начать использовать httpd с активацией сокета (systemd)?

как зашифровать один каталог, а не всю структуру каталогов

Задание полного диапазона печатаемых символов ASCII в шаблоне glob

какая разница между именем аппаратного оборудования и типом процессора

tell dnf как ссылаться на установленную библиотеку

Linux и Unix - лучшая ОС в мире.