Исходный файл содержит исходный код, написанный разработчиком на любом языке, который он / она выбирает (C, C ++, Python и т. Д.), И является универсальным. Это не относится ни к одному дистрибутиву, а во многих случаях к любой операционной системе.
Пакет (например, RPM или DEB) - это двоичный исполняемый файл (или интерпретируемый скрипт и т. Д.), Предварительно подготовленный для вашего конкретного дистрибутива. Задача подготовки исходного кода для компиляции (добавления необходимых исправлений и т. Д.), Фактической компиляции, создания специфических для дистрибутива конфигурационных файлов, создания сценариев до и после установки и т. Д. Выполняется для вас сопровождающим пакета.
Другими словами, вся работа с ослом была выполнена для вас в пакете, в то время как вам придется делать это самостоятельно, если вы решите установить из исходного кода.
Практически во всех случаях использовать пакет намного проще:
- Их намного проще установить
- Они специально предназначены для работы с вашим дистрибутивом
- Они иногда исправляются сопровождающим пакета, чтобы исправить ошибки, специфичные для дистрибутива.
- Менеджер пакетов удалит их
- Менеджер пакетов будет управлять всеми зависимостями для вас
- Менеджер пакетов позаботится об обновлениях
- Вам не нужно устанавливать инструменты разработчика в вашей системе (компиляторы, make и т. Д.)
Однако иногда упакованная версия является старой версией или, что еще хуже, упакованной версии не существует; в этом случае ваш единственный вариант - собрать себя. Если вы это сделаете, вам нужно учитывать следующее:
- Вам нужно будет установить все инструменты разработчика в вашей системе
- Вы будете нести ответственность за проверку обновлений и перекомпиляцию
- Вам нужно будет убедиться, что все зависимости установлены, включая
dev
пакеты - их может быть много.
- Возможно, вам придется отлаживать проблемы, если они не работают должным образом в вашем дистрибутиве.
Если вы готовы приложить дополнительные усилия, то компиляция из исходного кода может дать вам следующие преимущества:
- Доступ к последней доступной версии
- Опция оптимизации процесса компиляции для производительности / стабильности
- Наслаждение!
Обратите внимание, что, хотя в готовых пакетах некоторых дистрибутивов предусмотрены двоичные исполняемые файлы, которые готовы к установке и запуску (например, RPM и DEB), другие дистрибутивы предоставляют пакеты, которые просто автоматизируют процесс компиляции.
ebuilds
Примером этого является Gentoo - пакет - это в основном инструкции для менеджера пакетов, описывающие, как скомпилировать и установить исполняемый файл. Это имеет много преимуществ традиционных менеджеров пакетов (автоматическое обновление, удаление и т. Д.), В то же время позволяя пользователю оптимизировать процесс компиляции по своему вкусу.
Arch Linux имеет систему упаковки, в которой основные пакеты являются двоичными, тогда как многие дополнительные пакеты компилируются в системе с использованием PKGBUILD
файлов.