Компиляция из исходников
Тема дорожной карты · Linux & Unix Fundamentals
Сборка из исходников — это важный навык, который позволяет вам устанавливать и обновлять программное обеспечение, когда стандартные пакеты недоступны или не соответствуют вашим требованиям. Этот метод особенно полезен, если вам нужны более свежие версии программ или если вы хотите настроить опции компиляции под свои нужды. Сборка из исходников обеспечивает гибкость и контроль над процессом установки программного обеспечения, что особенно важно для разработчиков и администраторов систем.
Как это работает
Процесс сборки программного обеспечения из исходников зависит от используемой операционной системы и инструментов сборки. Для классических проектов с использованием autotools, вы можете использовать стандартные команды, такие как ./configure, make и sudo make install. Для проектов, использующих CMake или Meson, процесс немного отличается: сначала вы создаете директорию сборки и затем запускаете команды сборки, такие как cmake -S . -B build и cmake --build build для CMake, или meson setup build и ninja -C build для Meson.
Перед тем как начать сборку, убедитесь, что у вас установлены все необходимые зависимости. В Debian и Ubuntu это можно сделать с помощью пакета build-essential, а в Fedora — с помощью группы пакетов @development-tools. Для корректного удаления установленного программного обеспечения рекомендуется использовать команды, такие как make install DESTDIR=... или инструменты, такие как checkinstall, чтобы создать собственный пакет.
Когда применять
Сборка из исходников полезна в ситуациях, когда стандартные пакеты недоступны или не соответствуют вашим требованиям. Это может быть связано с тем, что вы хотите установить более свежую версию программы, чем та, которая доступна в вашем дистрибутиве, или вы хотите настроить опции компиляции под свои нужды. Однако, всегда стоит учитывать, что использование дистрибутивного менеджера пакетов, такого как apt или dnf, является более надежным и безопасным способом установки программного обеспечения, так как он корректно обрабатывает зависимости, целостность и путь обновления.
Snap и Flatpak являются альтернативными способами установки программного обеспечения, которые обеспечивают самоуправляемые контейнеры для приложений. Они полезны, когда вам нужно установить приложение вне дерева дистрибутива, например, если вы хотите использовать более свежую версию приложения, чем та, которая доступна в вашем дистрибутиве, или если вы хотите использовать приложение в изолированной среде.
Типичные ошибки
Одним из самых распространенных типичных ошибок при сборке программного обеспечения из исходников является обновление системы без предварительного чтения изменений, которые могут быть внесены. Например, обновление ядра может привести к тому, что ваш собственный модуль ядра перестанет работать. Другой распространенной ошибкой является использование сочетания apt и pip install для установки одной и той же Python-библиотеки, что может привести к проблемам с зависимостями и конфликтами библиотек.
Следует избегать доверия к случайным PPA (Personal Package Archives), так как использование скомпрометированного PPA может привести к тому, что злоумышленник получит полный доступ к вашей системе. Также следует избегать использования опции force-yes в production, так как это может привести к тому, что вы установите программное обеспечение, которое может быть несовместимо с вашей системой. Перед выполнением нетривиальных обновлений всегда рекомендуется создать снапшот или резервную копию системы.