Установка программ из tarball: configure, make и 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 без необходимости. Скрипт только проверяет окружение и создаёт файлы сборки.

Шаг 3: make
После успешного configure соберите проект командой:
makeСовет для многоядерных систем: используйте параллельную сборку, чтобы ускорить процесс:
make -j$(nproc)Или укажите конкретное число потоков, например -j4. Если сборка завершилась ошибкой, смотрите первые упоминания ошибки в выводе — чаще всего это недостающие dev-пакеты или несовместимые версии библиотек.

Шаг 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Мини-методология перед сборкой
- Проверить требования в README/INSTALL.
- Установить базовые инструменты: build-essential, gcc, make, autotools, pkg-config.
- Настроить окружение (PKG_CONFIG_PATH, LD_LIBRARY_PATH при необходимости).
- Собрать в отдельной директории или под пользователем с ограниченными правами.
- Тестировать собранный бинарник до установки в систему.
Чеклист перед запуском 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.
Кратко: проверяйте зависимости, используйте параллельную сборку и по возможности упаковывайте результат для лёгкого управления.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента