Есть ли способ выработать все необходимые зависимости, но без выполнения ./configure - C

Для тех, кто скомпилировал из исходного кода, знает, насколько мучительно запускать «./configure» только для того, чтобы найти эту X-библиотеку или отсутствующую, что еще хуже, выдает глупую строку о том, что загадочный файл lib отсутствует, что вы затем нужно зайти в веб-браузер, ввести отсутствующий файл и скрестить пальцы, чтобы Google мог найти ответ для вас...

Я нахожу это очень повторяющимся, поэтому мой вопрос:

Есть ли способ выработать все необходимые зависимости, но без выполнения "./configure"


person chutsu    schedule 18.03.2011    source источник
comment
Используйте aptitude или другое программное обеспечение для управления пакетами.   -  person Falmarri    schedule 19.03.2011
comment
Я понимаю это, однако я предпочитаю устанавливать из исходников...   -  person chutsu    schedule 19.03.2011


Ответы (4)


Учитывая, что не упоминается конкретный pkg, я предполагаю, что это общий вопрос «как избежать использования configure». Из tar-архива с исходным кодом нет автоматического способа для работы с зависимостями. Вот для чего предназначена configure (вы всегда можете прочитать файлы Makefile и autoconf и разобраться в зависимостях вручную, но тогда вы очень быстро пропустите configure). Чтобы этого избежать, вам нужно использовать что-то другое, кроме прямого тарбола, в котором уже проработаны зависимости.

Например, вы можете переключиться на сборку исходных пакетов (или deb, в зависимости от вашей системы). Или вы можете использовать такую ​​систему, как Gentoo, которая действительно хорошо справляется с зависимостями. Но для всего этого требуется, чтобы интересующий вас pkg был доступен в их формате, поэтому они не будут работать с архивами, которые вы загружаете у поставщика исходного кода.

person csd    schedule 18.03.2011

Прочтите файлы README* или INSTALL* в исходном дистрибутиве, если они есть, или найдите любую документацию на веб-сайте, откуда вы ее скачали. Если пакет хорошо документирован, зависимости обычно где-то перечислены.

person Scott Duckworth    schedule 18.03.2011

Прочтите 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]'?).

person Jack Kelly    schedule 20.03.2011

Одна вещь, которую вы можете сделать, что было бы полезно для сообщества, — это отправить отчет об ошибке/запрос функции мейнтейнерам пакета. Существует довольно много пакетов, сценарий конфигурирования которых не прерывается на первой отсутствующей зависимости, а выполняется до завершения, а затем печатает сводку всех отсутствующих зависимостей. Это значительно уменьшает скуку, которую вы описываете. К сожалению, «довольно мало» означает менее 0,00001 процента (это выдуманная статистика). Если вы сможете убедить сопровождающих пакетов переписать свой скрипт configure для поддержки такого поведения, вы внесете свой вклад в то, чтобы сделать мир лучше.

Удачи с этим!

person William Pursell    schedule 22.03.2011