Гид по технологиям

Установка программ из tarball: configure, make и make install

5 min read Linux Обновлено 04 Dec 2025
Установка из tarball: configure, make, install
Установка из tarball: configure, make, install

Введение

Установка программ в Linux обычно проста благодаря пакетным менеджерам вроде apt, yum, pacman и portage. Но иногда нужного пакета нет в репозитории — тогда приходится собирать из исходников, которые распространены в виде tarball (обычно с расширениями .tar.gz, .tgz или .tar.bz2).

Сборка из исходников может пугать новичков, но это пошаговый и предсказуемый процесс. Ниже описан стандартный поток для GNU-совместимых проектов: распаковка, ./configure, make, sudo make install. Пример взят по образцу сборки Python, но инструкция универсальна.

Что такое tarball

Tarball — это архив, объединяющий файлы (аналог ZIP). Формат tar сам по себе не сжимает; сжатие делает gzip или bzip2, поэтому часто видите двойное расширение .tar.gz или укороченно .tgz. Для пользователя важно только одно — распаковать и перейти в полученную папку.

Шаг 1: распаковка архива

Откройте терминал и выполните:

tar -zxvf mytarball.tar.gz

Параметры:

  • -z — пропустить через gzip (для bzip2 используйте -j)
  • -x — распаковать
  • -v — подробный вывод
  • -f — работать с файлом

Альтернативно можно использовать графический архиватор — два клика по файлу в файловом менеджере.

Шаг 2: configure

Перейдите в распакованную папку и запустите скрипт configure:

./configure

Задача configure — проверить наличие компилятора, заголовков и утилит для сборки, а также определить пути установки. Часто полезны опции configure, например указать префикс установки:

./configure --prefix=/opt/myprogram

Если configure выдал ошибки, прочитайте вывод — он обычно подсказывает, каких пакетов не хватает (заголовочные файлы, библиотеки разработки, pkg-config и т. п.).

Важно: не запускайте configure от root без необходимости. Скрипт только проверяет окружение и создаёт файлы сборки.

Запуск скрипта configure: вывод проверки зависимостей

Шаг 3: make

После успешного configure соберите проект командой:

make

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

make -j$(nproc)

Или укажите конкретное число потоков, например -j4. Если сборка завершилась ошибкой, смотрите первые упоминания ошибки в выводе — чаще всего это недостающие dev-пакеты или несовместимые версии библиотек.

Этап компиляции: make собирает файлы

Шаг 4: make install

По умолчанию make просто собирает файлы. Команда make install копирует бинарники и прочие файлы в системные каталоги, например /usr/bin или /usr/local/bin. Для этого требуются права root:

sudo make install

Если вы хотите сначала проверить, какие файлы будут установлены, посмотрите цель install в Makefile или используйте DESTDIR для упаковки в временную директорию:

make DESTDIR=/tmp/my-package install

Это удобно, если вы создаёте пакет или хотите проанализировать структуру установки.

Советы и альтернативы

  • Используйте checkinstall вместо sudo make install, чтобы создать пакеты .deb/.rpm и при необходимости легко удалить установленное.
  • Для системных администраторов хорошая практика — собирать и устанавливать в /opt или в префикс пользователя, а затем управлять программами через систему упаковки или GNU stow.
  • Если проект поддерживает CMake, используйте cmake . && make вместо ./configure.
  • Для больших проектов проверяйте наличие файла README или INSTALL — там часто указаны важные опции.

Частые ошибки и их решения

  • Отсутствие заголовков типа foo.h — установите соответствующий пакет с суффиксом -dev или -devel, например libssl-dev.
  • Ошибка pkg-config — установите pkg-config и проверьте переменные окружения PKG_CONFIG_PATH.
  • Несовместимая версия компилятора — обновите gcc/clang или используйте подходящую версию через sdkman/alternatives.
  • Проблемы с правами — запускать make install от root безопасно только если вы доверяете исходникам. Лучше использовать упаковку.

Быстрые команды-справочник

# Распаковка
tar -zxvf archive.tar.gz
# Configure с префиксом
./configure --prefix=/opt/example
# Сборка с параллелизмом
make -j$(nproc)
# Установка
sudo make install
# Чистка артефактов
make clean
# Быстрая цепочка (ручная)
./configure && make && sudo make install

Мини-методология перед сборкой

  1. Проверить требования в README/INSTALL.
  2. Установить базовые инструменты: build-essential, gcc, make, autotools, pkg-config.
  3. Настроить окружение (PKG_CONFIG_PATH, LD_LIBRARY_PATH при необходимости).
  4. Собрать в отдельной директории или под пользователем с ограниченными правами.
  5. Тестировать собранный бинарник до установки в систему.

Чеклист перед запуском make

  • Распаковали архив
  • Запустили ./configure без ошибок
  • Установили отсутствующие dev-пакеты
  • Запустили unit-тесты проекта (если есть)
  • Поняли, куда установится программа (–prefix или DESTDIR)

Роль-ориентированные заметки

  • Пользователь: собирайте в домашней директории и используйте –prefix=$HOME/.local или /opt, чтобы не требовать root.
  • Разработчик: добавляйте make test и поддерживайте логичную структуру Makefile.
  • Системный администратор: предпочитайте создание .deb/.rpm через checkinstall или официальный билд-сервер и автоматизируйте сборку.

Решение по схеме (flowchart)

flowchart TD
  A{Есть пакет в репозитории?} -->|Да| B[Установить через пакетный менеджер]
  A -->|Нет| C[Скачать tarball]
  C --> D[Распаковать]
  D --> E[Запустить ./configure]
  E --> F{configure прошёл?}
  F -->|Нет| G[Установить недостающие зависимости]
  G --> E
  F -->|Да| H[Запустить make]
  H --> I{make прошёл?}
  I -->|Нет| J[Разобрать логи и исправить ошибки]
  I -->|Да| K[Установить: sudo make install или пакет]

Безопасность и права

  • Не запускайте неясный build-скрипт от root.
  • Предпочитайте упаковку и проверяемые репозитории.
  • Для повторяемости используйте контейнеры или chroot-среды при сборке.

Когда лучше не собирать из исходников

  • Если пакет есть в официальном репозитории — используйте его (удобнее обновлять и удалять).
  • Если вам нужна поддержка и автообновления — пакеты удобнее.

Критерии приёмки

  • Программа запускается и возвращает ожидаемую версию через –version или -v.
  • Бинарник доступен из PATH (если это было требование).
  • Тесты проекта проходят (если они есть).

Заключение

Сборка из исходников — полезный навык. Он даёт контроль над опциями, путями установки и версиями библиотек. Следуйте шагам: распаковка, configure, make, sudo make install. Применяйте безопасность — собирайте в изолированной среде и избегайте запуска сомнительных скриптов с правами root.

Кратко: проверяйте зависимости, используйте параллельную сборку и по возможности упаковывайте результат для лёгкого управления.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро