Нужно ли мне собирать ВСЕ зависимости из исходников при сборке другого проекта из исходников?

Нужно ли мне собирать ВСЕ зависимости из исходников при сборке другого проекта из исходников?

В репозитории пакетов моего дистрибутива нет текущей версии пакета tmux, который мне нужен. Я скачал последнюю версию в tar.gzформате с веб-сайта. Однако при попытке сделать ./configureэто configure сообщил мне, что ему нужны другие зависимости. Мой вопрос:Является ли лучшей практикой также вручную создавать эти зависимости из исходников?Если бы я пошел и скачал эти зависимости с помощью менеджера пакетов дистрибутива, есть ли вероятность, чтоони тожебудет устаревшим и будет более старая зависимость, чем та, которая нужна текущему tmux?

В данном конкретном случае я пытаюсь собрать tmux3.0a на Ubuntu 18.04.4 LTS, и пакет, о котором мне сообщается, что он не существует, называется libevent.

решение1

Допустим, вам нужна версия libevent 42.1.

Если в вашем менеджере пакетов есть libevent версии 42.5, установите его. Не нужно собирать его из исходников. Для сборки программного обеспечения с использованием libevent вам нужно установить соответствующие пакеты разработки: libevent-dev в дистрибутивах на основе .deb, libevent-devel в дистрибутивах на основе RPM.

Если в вашем менеджере пакетов имеется только libevent версии 40.3, то вам также необходимо собрать libevent из исходного кода (версии выше 42.1).

Рекомендация: Установите все, что вы собираете из исходников /usr/local(установите PREFIXперед выполнением ./configure, или прочитайте документацию, если этот пакет делает это по-другому). Таким образом, то, что вы собираете сами, и то, что устанавливает ваш менеджер пакетов, не будет конфликтовать. Я stowтоже использую для этого, поэтому могу хранить несколько версий.

есть ли вероятность, что они тоже устареют?

Конечно, "есть шанс". Единственный способ узнать - зайти в ваш менеджер пакетов и посмотреть. И это может быть хорошей возможностью указать вашему менеджеру пакетов на более новый релиз, если он существует в upstream.

Связанный контент