Есть ли способ отработать все необходимые зависимости, но без выполнения "./configure" - C
Те, кто скомпилировал из исходного кода, знают, насколько тяжело запускать "./configure" только для того, чтобы найти эту библиотеку X или пропустить ее, но в худшем случае она выдает глупую строку, говорящую о том, что отсутствует загадочный файл lib, который вы затем нужно перейти к веб-браузеру, набрать пропущенный файл, скрестите пальцы, чтобы Google мог найти ответ для вас...
Я нахожу это очень повторяющимся, поэтому мой вопрос:
Есть ли способ отработать все необходимые зависимости, но без выполнения "./configure"
4 ответа
Учитывая отсутствие упоминания о конкретном pkg, я предполагаю, что это общий вопрос "как избежать использования configure". Исходя из исходного архива, нет никакого автоматизированного способа проработать зависимости. Это то, что нужно для настройки (вы всегда можете прочитать файлы Makefiles и autoconf и понять зависимости вручную, но тогда вы очень быстро пропустите настройку). Чтобы избежать этого, вам нужно использовать что-то другое, простой tarball, который уже проработал зависимости.
Например, вы можете переключиться на сборку исходных rpms (или debs, в зависимости от вашей системы). Или вы можете использовать систему, такую как Gentoo, которая действительно хороша для разработки зависимостей для вас. Но все они требуют, чтобы интересующий вас pkg был доступен в их формате, поэтому они не будут работать с архивами, которые вы загружаете от поставщика исходного кода.
Прочтите файлы README* или INSTALL* в исходном дистрибутиве, если таковые имеются, или найдите документацию на веб-сайте, с которого вы загрузили его. Если пакет хорошо документирован, зависимости обычно будут где-то перечислены.
Читать configure.ac
/configure.in
, Ищите звонки AC_CHECK_LIB
, AC_CHECK_LIBS
, AC_SEARCH_LIBS
, AM_PATH_*
(некоторые старые пакеты, которые не используют pkg-config
положить свои чеки в AM_*
пространство имен по какой-то причине), PKG_CHECK_MODULES
(за pkg-config
), AX_*
(многие макросы autoconf-archive написаны для проверки необычных зависимостей) и любые вызовы макросов, начинающиеся с нечетного имени (т. е. не AC_*
, AM_*
или же AX_*
, Пытаться grep '^[^A]'
?).
Единственное, что вы можете сделать для сообщества, - это отправить отчет об ошибке / запрос функции сопровождающим пакета. Существует довольно много пакетов, сценарий настройки которых не прерывается при первой отсутствующей зависимости, но выполняется до завершения, а затем печатает сводку всех отсутствующих зависимостей. Это значительно уменьшает утомляемость, которую вы описываете. К сожалению, "довольно мало" означает менее 0,00001 процента (это вымышленная статистика). Если вы сможете убедить разработчиков пакетов переписать свой скрипт configure для поддержки этого поведения, вы внесете свой вклад в улучшение мира.
Удачи с этим!