Каждый в тот или иной момент должен был установить программу из источника в Linux. Я очень часто загружаю программу, которую хочу установить, запускаю через ./configure и появляется множество сообщений об ошибках, в которых говорится, что у вас их нет или нет.

Есть ли сайт, который четко показывает вам зависимости этой конкретной программы? У некоторых это есть в файле README , но большинство даже не беспокоится.

Есть ли способ найти все зависимости, не используя команду ./configure ?

6 ответов6

3

Поскольку в разных дистрибутивах пакеты называются по-разному, это чрезвычайно сложно осуществить. Например, в Debian пакет может называться libfoo, а его пакет разработки аналогичен libfoo-dev. В RHEL/CentOS это могут быть libfoo1 и libfoo1-devel.

Хорошо написанный файл configure.ac (который используется для генерации скрипта 'configure') должен мета сказать вам, какой пакет вам не хватает. Т.е.

Checking for libfoo ... no
Checking for libfoo usability .... no
./configure: Error: You are missing the package 'libfoo' and possibly
'libfoo-dev(el)'

Это позволяет apt-cache / yum искать что-то для установки, если ошибки, предшествующие configure: Error: не очевидны. Вывод настроек в Google обычно приносит плоды, чтобы выяснить, какой пакет вам не хватает.

Настоящая проблема возникает, когда версия libfoo, предлагаемая вашим дистрибутивом, слишком старая для программы, которую вы пытаетесь скомпилировать. В этом случае вы должны собрать сам libfoo, установить его отдельно от версии, предоставленной вашим дистрибутивом, и указать программе, как на него ссылаться (также это делается через «configure»)

По этой причине я обычно использую быстро движущиеся дистрибутивы (т.е. Ubuntu) для моей разработки машины. Обычно я могу найти то, что мне нужно, в обновленном хранилище юниверса.

Я просто должен был обновить Glibc на машине Debian Lenny просто чтобы быть в состоянии построить и установить многопоточную цель АоЙ на на основе AIO, плюс катить мое собственное 2.6.31.6 ядро , потому что программа хочет eventfd поддержки. Я чувствую твою боль :)

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

2

Существуют программы, которые обнаруживают зависимости при создании программного обеспечения. Они следят за процессом сборки, останавливают его, когда ему нужен файл, устанавливают пакет, который предоставляет этот файл, и возобновляют процесс сборки.

Например, в Debian есть auto-apt.

1

Во многих дистрибутивах есть менеджеры пакетов, в задачи которых входит разрешение зависимостей. Если в вашем дистрибутиве нет менеджера пакетов, вы можете найти зависимости, основанные на других дистрибутивах пакетов. Например, пакеты Debian.

Например для дурака.

Я не знаю, как вы можете найти все зависимости, если нет пакета.

0

RPMFIND.NET список "Обязательных" пакетов для всего, что он знает.

YUM и APT (дистрибутивы RedHat и Debian соответственно) существуют в основном только для этой цели, но также позволяют устанавливать и пакеты. Ого-Ого

0
  1. Проверьте на сайте проекта - они, скорее всего, будут перечислять зависимости.
  2. Не беспокойтесь о некоторых проверках / неудачах, которые не являются ошибками. Например, большинство проектов, использующих autoscan, проверяют awk, gawk, mawk и т.д., Но это не имеет значения, если вы установите один / все из них.
  3. Если конфигурация фактически останавливается с ошибкой в какой-либо библиотеке, просто найдите имя, о котором она сообщает. apt-cache search ... / yum search / google - это все, что вам обычно нужно.
0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .