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

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

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

Проект, о котором я говорю, – 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

правила udev не различают

Как исправить ошибку «xrandr: Не удалось получить размер гаммы для вывода по умолчанию» на Ubuntu 14.04?

Munin не показывает новый хост при использовании munin-cgi-html

Что означают «функции, включенные» в GNU?

UNIX вставляют столбцы и вставляют нули для всех отсутствующих значений

Как изменить цвет всех строк на красный с символом%?

Можно ли добавить сервисное меню KDE / dolphin для определенного расширения файла?

Вопросы C-библиотеки HMAC_MD5

Как создать моментальный снимок только для чтения в LVM, а затем откат к нему после некоторой работы?

Двойная загрузка windows / debian, нет меню загрузки?

Почему я не могу установить несколько одновременно библиотек x86 и x86_64 библиотеки?

Как включить разделение 4G / 4G в Linux?

`eval` работает на Ubuntu, но не работает на Debian и Kali

Создание новых файлов в сценарии оболочки с помощью VIM

Windows Internals для Linux

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