it-swarm-ru.tech

В чем разница между yum, apt-get, rpm, ./configure && make install?

Я новичок в Linux и использую CentOS. Я сталкивался с четырьмя способами обновить или установить программное обеспечение.

До сих пор я видел:

  • yum install [program]
  • apt-get install [program]
  • rpm -i [program].rpm
  • wget [program].tar.gz -> unpack -> ./configure -> make -> make install

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

Итак, мои вопросы:

  • Почему в Linux так много разных способов сделать это?
  • Какой из них вы рекомендуете использовать и почему?
  • Существуют ли другие способы установки программ в Linux?
118
Saif Bechan

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

  • ./configure && make install

    Запуск ./configure && make install создает и устанавливает библиотеки или исполняемые файлы непосредственно из исходного кода.

    Шаг make install в основном просто копирует окончательные файлы в вашу систему. Многие источники поставляются со специальным правилом make uninstall для их повторного удаления, но это не гарантируется и, конечно, работает только при наличии настроенных источников. Кроме того, это не заботится о необходимых зависимостях.

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

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

  • RPM(Redhat Package Manager)

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

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

    В системах Debian эквивалентный формат пакета - .deb, а установка и база данных обрабатываются инструментом dpkg.

  • Yum

    yum - это дополнительная обертка вокруг rpm. Он хранит свою собственную базу данных rpm-файлов, доступных для вашего распространения, как правило, в онлайн-хранилищах. Для стабильных версий большинства дистрибутивов все пакеты в этой базе данных будут хорошо взаимодействовать друг с другом. В этой базе данных можно искать (например, с помощью yum search some_name).

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

    В системах Debian Apt (apt-get и aptitude) предоставляет эквивалентные инструменты для репозитория и разрешения зависимостей.

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

109
Benjamin Bannier

Yum - это RPM - это то же самое, за исключением того, что yum автоматически получает пакеты из сети и устанавливает их (используя rpm -i) за один шаг. По возможности его следует использовать для облегчения обновления. Используйте rpm только тогда, когда yum не найдет пакет, а метод make только тогда, когда пакет .rpm недоступен или вам нужно изменить некоторые параметры времени компиляции.

4
marcusw