Сборка из исходного кода и использование Snap/Flatpak
Выйдите за рамки системного менеджера пакетов: компилируйте программы из исходного кода, когда готового пакета нет, и используйте универсальные форматы Snap и Flatpak для независимой от репозиториев вашего дистрибутива установки современных приложений.
«Сборка из исходного кода и использование Snap/Flatpak» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Когда пакетного менеджера недостаточно
APT и YUM покрывают большинство потребностей, но иногда нужный инструмент не упакован, его версия в репозиториях слишком старая или Вам требуется определённая версия. В таких случаях есть два варианта:
- Скомпилировать программу из исходного кода
- Использовать универсальный формат пакетов, например Snap или Flatpak
В этом уроке рассматриваются оба варианта.
Подготовка инструментов сборки
Для компиляции нужен набор инструментов: компилятор, make и библиотеки разработки. В Debian/Ubuntu метапакет build-essential устанавливает основные компоненты.
sudo apt install build-essential
# RHEL/Fedora:
sudo dnf groupinstall 'Development Tools'Получение исходного кода
Исходный код обычно поставляется в виде сжатого tar-архива или репозитория git. Скачайте и распакуйте его, затем перейдите в каталог.
wget https://example.com/tool-1.2.tar.gz
tar -xzf tool-1.2.tar.gz
cd tool-1.2Цикл configure / make / install
Классический процесс сборки GNU состоит из трёх шагов:
./configure— проверяет систему и подготавливает сборкуmake— компилирует кодsudo make install— копирует исполняемые файлы в нужное место
Этой схеме уже несколько десятилетий, и она по-прежнему широко используется.
./configure
make
sudo make installВыбор префикса установки
По умолчанию программы устанавливаются в /usr/local. Вы можете изменить это с помощью --prefix, чтобы изолировать установку и упростить очистку.
Установка в домашний каталог позволяет полностью обойтись без прав root.
./configure --prefix=/opt/tool
make
sudo make installРабота с отсутствующими зависимостями
Если ./configure останавливается с сообщением об отсутствующей библиотеке, установите соответствующий пакет -dev. Пакеты разработки предоставляют заголовочные файлы, необходимые исходному коду для компиляции.
sudo apt install libssl-dev zlib1g-dev
./configureУдаление программ, собранных из исходного кода
Недостаток установки из исходного кода — отсутствие автоматического удаления. Если проект это поддерживает, выполните make uninstall из каталога сборки. В противном случае изолированный --prefix позволит просто удалить каталог.
sudo make uninstall
# or, if you used --prefix=/opt/tool:
sudo rm -rf /opt/toolУниверсальные пакеты: Snap
Пакеты Snap объединяют приложение с его зависимостями, поэтому работают в любом дистрибутиве, где есть snapd. Они обновляются автоматически и запускаются в изолированной среде.
sudo snap install htop
snap list
sudo snap remove htopУниверсальные пакеты: Flatpak
Flatpak — ещё один универсальный формат, популярный для настольных приложений и распространяемый через такие удалённые источники, как Flathub. Добавьте источник один раз, а затем устанавливайте приложения по их идентификатору.
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gimp.GIMP
flatpak run org.gimp.GIMPВыбор подходящего метода
Выберите подход, который Вам подходит:
- APT/YUM — стандартный вариант, лучшая интеграция, автоматические обновления
- Snap/Flatpak — последние версии, работа в разных дистрибутивах, изолированная среда
- Исходный код — крайний вариант для неупакованных программ или особых сборок
По возможности выбирайте пакеты; собирайте из исходного кода только при необходимости.
Рекомендации
Безопасно устанавливайте программы в обход пакетного менеджера:
- Всегда устанавливайте зависимости сборки до запуска настройки
- Используйте отдельный
--prefix, чтобы впоследствии удалить сборки из исходного кода - Проверяйте контрольные суммы или подписи загруженных файлов
- Если существует поддерживаемый пакет, отдавайте предпочтение Snap/Flatpak, а не исходному коду
Быстрая проверка
Проверьте свои знания об установке программ.
Итоги
Теперь Вы умеете устанавливать программное обеспечение не только из стандартных репозиториев:
- Из исходного кода:
./configure→make→make install, с параметром--prefixдля изоляции - Snap:
snap installдля автономных приложений с автоматическим обновлением - Flatpak: удалённые репозитории Flathub и идентификаторы приложений
Используйте эти способы только тогда, когда APT/YUM не могут предоставить нужное Вам программное обеспечение.
Часто задаваемые вопросы
Урок «Сборка из исходного кода и использование Snap/Flatpak» бесплатный?
Да — полный текст урока «Сборка из исходного кода и использование Snap/Flatpak» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Сборка из исходного кода и использование Snap/Flatpak»?
Выйдите за рамки системного менеджера пакетов: компилируйте программы из исходного кода, когда готового пакета нет, и используйте универсальные форматы Snap и Flatpak для независимой от репозиториев… Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?
Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Сборка из исходного кода и использование Snap/Flatpak»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?
Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Менеджеры пакетов APT и YUM
- Установка и обновление программного обеспечения
- Управление репозиториями программного обеспечения
- Сборка из исходного кода и использование Snap/Flatpak