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

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

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

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

Ответы [ 4 ]

5 голосов
/ 19 марта 2011

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

3 голосов
/ 19 марта 2011

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

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

1 голос
/ 20 марта 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]'?).

0 голосов
/ 22 марта 2011

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

Удачи с этим!

...