Проверка зависимостей? перед установкой

1232
chutsu

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

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

Есть ли способ найти все зависимости без прохождения ./configureкоманды?

0

6 ответов на вопрос

3
Tim Post

Поскольку в разных дистрибутивах пакеты называются по-разному, это чрезвычайно сложно осуществить. Например, в 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
liori

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

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

1
demas

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

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

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

0

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

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

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

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

Похожие вопросы