Назад | Перейти на главную страницу

Можете ли вы помочь мне с моей проблемой зависимости от программного обеспечения?

Это Канонический вопрос о зависимостях компиляции и управлении пакетами.

У меня вопрос относительно компиляции портов / программного обеспечения или установки RPM на моем * nix сервере. Когда я пытаюсь это сделать, я получаю множество сообщений об отсутствующих зависимостях.

Может ли сообщество Server Fault помочь?

Добро пожаловать в Server Fault. В общем, этот тип вопросов здесь не по теме. Ожидается, что большинство системных администраторов уже столкнулись с этой проблемой, прежде чем они стали системными администраторами, возясь со своими рабочими станциями. Однако системные администраторы, работающие в фоновом режиме Windows, возможно, не сталкивались с этим, поэтому следует учесть следующие моменты:

Почему бы не использовать менеджер пакетов для установки программного обеспечения на свой сервер?

Менеджеры пакетов, такие как yum или apt обрабатывать эти зависимости за вас. Кроме того, их также можно использовать для управления обновлениями программного обеспечения на вашем сервере. В большинстве разновидностей * nix по умолчанию установлен менеджер пакетов, особенно на VPS, которые поставляются с предустановленной ОС. Если вы действительно новичок в этом, используйте один из них в своей производственной системе и сэкономьте время на компиляции или установке новейших RPM-пакетов для вашей тестовой среды.

Но я должен использовать более современный пакет, чем тот, который доступен в моем диспетчере пакетов!

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

Нужный мне пакет недоступен ни в каких репозиториях или менеджерах пакетов

В этом случае вы, вероятно, делать необходимо выяснить зависимости (или принять его и использовать более стабильную / распространенную версию программного обеспечения). Вероятно, вам следует сделать следующее в тестовой среде и внимательно записывать, что вы делаете:

  • Обязательно прочтите документацию по устанавливаемому программному обеспечению - в ней, вероятно, будет указано, что вам нужно установить в первую очередь, но не то, что требуется для который программное обеспечение.
  • Используйте свой менеджер пакетов для установки того, что требуется - в большинстве случаев это воля быть доступным.
  • Как только вы это сделаете, попробуйте установить.
  • Если вы все еще видите сообщения об отсутствующих зависимостях, запишите их все и снова попробуйте установить как можно больше с помощью диспетчера пакетов.
  • Если зависимость не обнаружена, вы должны рассматривать ее как подзадачу и обрабатывать ее рекурсивно (найти исходный архив, найти зависимости, установить).
  • Это итеративный процесс.

У меня все еще проблемы!

Если вы выполнили все вышеперечисленные шаги и по-прежнему возникла проблема, то вы, возможно, столкнулись с какой-то странной проблемой, с которой другие специалисты по сбоям сервера могут быть рады помочь. Создайте новый вопрос с подробным описанием того, какое программное обеспечение вы пытаетесь установить, какую версию, а также точные сообщения об ошибках, которые вы видите.

Особые рекомендации для основных систем управления пакетами

Управление пакетами RPM (RHEL / Fedora и клоны) и DEB (Debian / Ubuntu и клоны)

  • yum whatprovides filename - отличный способ найти пакет, который предоставляет определенный файл или библиотеку в системе типов RHEL.
  • Не используй ./configure && make && make install вслепую, если это вообще возможно! Управление пакетами было изобретено именно по этой причине, чтобы предотвратить неудобный и неустранимый беспорядок, который возникает из-за неотслеживаемой установки многих конфликтующих файлов.
  • Многие библиотеки разделены на две части: двоичную (например, общие объекты) и разработку (заголовки). Таким образом, вам понадобятся оба libfoo и libfoo-devel (или -dev) пакеты.
  • Рассмотрите возможность использования fpm (https://github.com/jordansissel/fpm) для преобразования архивов в аккуратные RPM и DEB
  • Если вы запускаете свои собственные пакеты, вы несете ответственность за их обновления, тестирование и обслуживание. Если у вас для этого нет инфраструктуры, вы определенно ставите слишком высокие цели.

Поиск зависимостей по имени файла для RPM

http://rpmfind.net Это хорошее место для поиска названий пакетов, если вы знаете имя файла, на который жалуется процедура установки. Однако не рекомендуется сопоставлять и смешивать пакеты из разных дистрибутивов.