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

Установить программное обеспечение из пакетов или собрать его из исходников?

Это Канонический вопрос о том, когда использовать упакованное программное обеспечение, а когда его собрать и установить самостоятельно.

Когда мне следует устанавливать программное обеспечение из пакетов, предоставленных моим дистрибутивом ОС, вместо того, чтобы собирать и устанавливать его самостоятельно из исходников? Когда лучше строить из исходников?

Вам следует использовать пакеты вашего дистрибутива, если у вас нет веской причины не делать этого. Использование пакетов дистрибутива дает вам важные преимущества:

  • Меньше работы по установке и удалению пакетов, а также по поддержанию их в актуальном состоянии.
  • Система упаковки автоматически установит зависимости программного обеспечения, а также будет поддерживать их в актуальном состоянии.
  • Обновления безопасности предоставляются автоматически дистрибутивом, поэтому вам не нужно их отслеживать или беспокоиться о том, что вы их пропустите.
  • Система упаковки настроит все так, как вам нравится в вашем дистрибутиве. Например, в системах на основе apt Apache поставляется с символическими ссылками в / etc / apache2 / * - enabled и инструментами (a2enconf, a2enmod, ...) для их использования для включения или отключения функций Apache. Хотя сначала вам может потребоваться больше усилий для изучения, в конечном итоге ваша жизнь станет проще, и ваша конфигурация будет лучше интегрирована, если вы будете использовать собственные инструменты и способы работы дистрибутива.

Если вам нужно использовать более новую версию некоторого программного обеспечения, чем предоставляет ваш дистрибутив, или включить функцию, которая должна быть скомпилирована, вы можете найти более свежие или функциональные версии пакета в репозиториях сообщества. Репо Реми - это хорошо известный пример, предлагающий, помимо прочего, гораздо более современные версии PHP, чем те, которые поставляются с RHEL / CentOS. Использование репозитория сообщества дает вам многие преимущества репозиториев ОС, но с риском, что автор выпускает вредоносное ПО, которое вы затем устанавливаете с полными привилегиями в вашу систему. Вам придется самостоятельно принимать решения о риске / вознаграждении в каждом конкретном случае.

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

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

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

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

Мне нравится ответ Эндрю.

Я хочу отметить одно конкретное дополнение к комментарию Эндрю о «лучшей интеграции». Если вы устанавливаете приложение из исходного кода (зависимость будущего проекта), а затем пытаетесь установить пакет из двоичного файла (например, пакет deb или rpm), этот пакет может не распознать, что зависимость установлена. Если бы вы установили начальное приложение зависимости из пакета RPM или DEB, будущий пакет узнал бы, что он установлен. Лучше всего использовать тот же метод пакета (например, yum, pip, rpm и т. Д.). Еще один метод - установка из исходников. Так что легкость, о которой говорит Эндрю, требует серьезного внимания.

Я хочу добавить, что «создавайте свои собственные двоичные пакеты» имеет преимущество ведения журнала процесса установки. Установка из исходных файлов не имеет возможности ведения журнала.