Бинарные пакеты против источник: какой использовать?
Независимо от того, какой менеджер пакетов вы используете, существует два способа установки программ в Linux. Либо используйте предопределенный пакет, либо скомпилируйте программу самостоятельно. В наши дни первый обычно побеждает по умолчанию, но бывают случаи, когда вам может понадобиться компилирование из исходного кода.
Что такое бинарные пакеты?
Установка программ в Linux, как правило, сильно отличается от традиционного способа установки программного обеспечения в Windows. Вместо того, чтобы загружать установщик с веб-сайта поставщика, файлы поступают из репозитория программы, который обычно адаптирован к вашему дистрибутиву Linux. Доступ к этому хранилищу осуществляется с помощью диспетчера пакетов Linux или магазина приложений Linux.
Файлы, которые составляют программы в этих хранилищах, доступны в формате архива. Это группирует все в один файл для легкого доступа и распространения. Например, Debian использует формат DEB для архивирования и распространения программ. Эти пакеты называются бинарными пакетами .
Для извлечения этих файлов и установки их на компьютер требуется специальная программа, обычно это менеджер пакетов или магазин приложений. Эти инструменты также выполняют другие полезные функции, такие как отслеживание установленных файлов и управление обновлениями программного обеспечения.
Откуда берутся посылки?
Все программное обеспечение состоит из строк текста, известных как исходный код, написанных на определенных языках программирования, таких как C или C ++. Как правило, вы не можете просто сгруппировать этот исходный код в архив и назвать его пакетным. Эти строки должны быть переведены на язык, понятный и исполняемый компьютером.
Этот процесс называется компиляцией, конечный результат создает двоичные файлы, которые может выполнять ваш компьютер. Разница между пакетами и программным обеспечением заключается в том, что двоичные файлы программного обеспечения хранятся вместе в пакете вместе с другими вещами, такими как файлы конфигурации .
Что устанавливает "Из источника"?
Установка программы «из исходного кода» означает установку программы без использования менеджера пакетов. Скомпилируйте исходный код и скопируйте двоичные файлы на свой компьютер.
В большинстве случаев вы можете загрузить исходный код проекта с таких хостинговых сервисов, как GitHub, GitLab или Bitbucket. Более крупные программы могут даже размещать исходный код на личном веб-сайте. Код обычно сжимается в архивном формате (также называемом исходным пакетом ).
Специальный набор инструментов помогает автоматизировать процесс строительства. На рабочих столах Linux это часто происходит в форме программы командной строки, называемой make . Исходный код, написанный на разных языках, требует определенных компиляторов и команд для их редактирования в двоичных файлах. Программа make автоматизирует этот процесс.
Для этой автоматизации на работе программы предоставляют make с make-файлом, который говорит ему, что делать и компилировать. В наши дни он обычно автоматически генерируется специальным программным обеспечением, таким как CMake. Это где вы входите. Отсюда вы можете указать, какие именно функции вы хотите встроить в свое программное обеспечение.
Построение примера «Из источника»
Например, следующая команда создает файл конфигурации для Calligra Office Suite с использованием CMake. Созданный файл сообщает программе make для компиляции только компонента Calligra Writer.
cmake -DPRODUCTSET=WORDS -DCMAKE_INSTALL_PREFIX=$HOME/kde/inst5 $HOME/kde/src/calligra
Как только это будет сделано, все, что нужно сделать человеку, это запустить инструмент make, чтобы скомпилировать и скопировать результаты на свой компьютер. Это делается следующим образом:
make make install
Хотя это общая схема компиляции программ, существует множество других способов установки исходных пакетов. Например, Gentoo Linux имеет интегрированный способ управления им, что делает процес
с намного быстрее и проще. Но создание бинарных пакетов требует еще нескольких шагов, чем предыдущие команды.
Преимущества использования бинарных пакетов
Если вы используете Linux, возможно, кто-то предварительно скомпилировал установленное вами программное обеспечение. Это стало гораздо более распространенным, чем использование исходных пакетов. Но почему?
Бинарные версии проще в управлении
Бинарные пакеты содержат гораздо больше, чем просто скомпилированные установочные файлы. Они также хранят информацию, которая позволяет менеджеру пакетов легко отслеживать все программы. Например, файлы DEB (формат пакета для производных Debian и Debian) также содержат важную информацию, например, какое другое программное обеспечение должно запускаться программой и ее текущую версию.
Это значительно упрощает установку пакетов, поскольку вам не нужно беспокоиться о том, какие другие файлы необходимы для правильной работы программы. Менеджер пакетов может считывать эту информацию из самого пакета и автоматически загружать все необходимые зависимости.
Во время установки программ из исходных кодов, если вы не скомпилируете код в отдельный двоичный пакет, вы будете нести ответственность за управление этим программным обеспечением. Вам нужно будет помнить, какие другие программы вам нужны, чтобы он работал, и устанавливать их самостоятельно.
Бинарные версии имеют улучшенную стабильность
Люди, которые управляют репозиториями для менеджера пакетов, как правило, проверяют двоичные файлы на наличие проблем и делают все возможное, чтобы исправить то, что появляется. Это может привести к лучшей стабильности программы, что может потерять тот, кто установил из источника.
Плюс пакеты обычно должны придерживаться строгого набора правил, чтобы гарантировать, что они будут работать в вашей системе. Например, Debian и Ubuntu имеют руководство по политике, а также многие другие дистрибутивы Linux.
Некоторые программы также используют разные версии одной и той же зависимости от программного обеспечения. Репозитории пакетов делают все возможное, чтобы разрешить эти конфликты, поэтому вам не нужно об этом беспокоиться.
Преимущества построения пакетов исходного кода
Установка программ из исходного кода — это не то, что нужно делать всем, так как обычно легче поддерживать ваш компьютер, если вы остаетесь с бинарными пакетами. Несмотря на это, у этого немного более сложного способа установки программ есть некоторые преимущества.
Исходный код предлагает новейшее программное обеспечение
Недостатком повышения надежности программ является то, что для их улучшения и устранения требуется время. В результате это может привести к использованию предыдущих версий программного обеспечения. Для людей, которые хотят больше всего и последних, они могут даже предпочесть некоторую нестабильность в обмен на это.
Хотя существуют операционные системы Linux, которые удовлетворяют эту потребность без компиляции программ, у них есть некоторые недостатки. Например, программное обеспечение, которое не часто выпускает установленные версии пакетов, сложнее обновить в репозитории, чем установка из источника.
Это связано с тем, что бинарные пакеты обычно создаются официальными версиями программ. Поэтому изменения между этими версиями обычно не принимаются во внимание. Скомпилировав собственное программное обеспечение из исходного кода, вы сразу же сможете воспользоваться этими изменениями.
Также возможно, что ваша операционная система Linux не имеет программного обеспечения, которое вы хотите предварительно создать для вас. В этом случае его установка из источника является единственным вариантом.
ты можешь выбрать
Другое преимущество использования пакетов с исходным кодом заключается в том, что вы получаете больший контроль над установленными программами. При установке из бинарного репозитория вы ограничены способами настройки пакетов.
Например, посмотрите на FFmpeg, конвертер аудио и видео на основе командной строки. По умолчанию он имеет огромное количество функций, некоторые из которых вы даже
не могли коснуться. Например, поддержка аудио JACK доступна в FFmpeg, хотя это программное обеспечение обычно используется только в производственных средах.
Компиляция FFmpeg позволяет вам удалить из него то, что вам не нужно, что делает его легче и более приспособленным к вашим потребностям. И то же самое относится и к другим тяжелым программам.
Когда ресурсов недостаточно, удаление функций может стать отличным способом уменьшить нагрузку. Неудивительно, что Chrome OS, установленная на многих недорогих компьютерах, основана на Gentoo Linux. Основываясь на исходном коде, Gentoo строит большую часть своего программного обеспечения, потенциально облегчая эти системы.
Почему бы не установить с обоими?
Хотя вам, вероятно, не захочется собирать пакеты ежедневно, об этом стоит помнить. Тем не менее, благодаря новым универсальным форматам пакетов, доступным на сайтах, таких как Snap Store и Flathub , вам с меньшей вероятностью придется компилировать из исходного кода, чтобы получить новейшее программное обеспечение.
Читайте полную статью: Бинарные и исходные пакеты: какой использовать?