0Pricing
Linux Server Deployment & SSH Mastery · Урок

Сборка из исходного кода и использование 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 — локальная установка не требуется.

Все уроки этого курса

  1. Менеджеры пакетов APT и YUM
  2. Установка и обновление программного обеспечения
  3. Управление репозиториями программного обеспечения
  4. Сборка из исходного кода и использование Snap/Flatpak
← Назад к Linux Server Deployment & SSH Mastery