Основы Linux для хакеров, команда Make: компиляция и установка программного обеспечения из исходного кода в Linux

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Добро пожаловать снова, начинающие энтузиасты Linux!

В нашем путешествии по экосистеме Linux мы часто сталкиваемся с ситуациями, когда нужное нам программное обеспечение недоступно в стандартных менеджерах пакетов, таких как apt или yum. Или, возможно, нам нужна новейшая версия с функциями, которых ещё нет в репозиториях. В таких случаях умение компилировать и устанавливать программное обеспечение из исходного кода становится бесценным навыком в вашем арсенале Linux.

Make — это инструмент автоматизации сборки, который собирает исполняемые программы и библиотеки из исходного кода, считывая файлы Makefile. Эти файлы определяют, как извлечь целевую программу из её зависимостей. Освоив этот процесс, вы сможете свободно устанавливать любое программное обеспечение с открытым исходным кодом в свою систему Linux.

Некоторые из ключевых особенностей команды make включают в себя:

  1. Отслеживание зависимостей : Make перестраивает только то, что необходимо перестроить, экономя время во время компиляции.
  2. Параллельное выполнение : современные версии могут компилировать несколько исходных файлов одновременно, используя многоядерные процессоры.
  3. Кроссплатформенность : утилита make работает практически во всех Unix-подобных операционных системах, что позволяет переносить ваши навыки.
  4. Настройка : процесс компиляции можно настроить в соответствии с вашими конкретными потребностями и конфигурацией системы.

Давайте скачаем и скомпилируем пакет из исходного кода!

Шаг №1. Подготовка системы к компиляции


Прежде чем компилировать любое программное обеспечение, необходимо убедиться, что в системе есть необходимые инструменты. Процесс компиляции требует набора инструментов разработки, включая компиляторы, компоновщики и утилиты сборки.

В системах на базе Debian, таких как Kali, вы можете установить эти инструменты с помощью:

kali > sudo apt-get install build-essential

f0b171_86f3524620734e1aaad84654d9588db8~mv2.png


Эти пакеты включают компиляторы gcc/g++ и библиотеки, необходимые для компиляции программного обеспечения из исходного кода. Без этих инструментов вы не сможете продолжить компиляцию.

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

В нашем примере мы скомпилируем curl — консольный инструмент для передачи данных по URL. Хотя в большинстве систем curl предустановлен, самостоятельная компиляция продемонстрирует процесс, применимый к большинству программных пакетов.

Шаг №2. Загрузка и извлечение исходного кода


Давайте загрузим исходный код curl:

kali > wget -O curl.tar.gz https://curl.se/download/curl-8.13.0.tar.gz

f0b171_4dd97afb851a4ebe9c5069e7f86ca701~mv2.png


Эта команда загружает исходный код curl и сохраняет его как curl.tar.gz в текущем каталоге.

Далее нам необходимо извлечь содержимое этого файла:

kali > tar -xvzf curl.tar.gz

f0b171_0a2c8213a9434ab6bce2bc34407f8c3e~mv2.png


Команда tar с этими параметрами (-xvzf) извлекает (-x) содержимое архива с подробным (-v) отображением извлекаемых файлов из сжатого программой gzip (-z) файла (-f).

После распаковки у вас появится новый каталог с исходным кодом. Перейдём в него:

kali > cd curl-8.13.0

f0b171_be2e2607edeb45b09cef56ff0d587762~mv2.png


Внутри этого каталога вы найдете множество файлов и подкаталогов, содержащих исходный код и инструкции по сборке для curl.

Шаг №3. Настройка среды сборки


Перед компиляцией необходимо настроить среду сборки. Это делается с помощью скрипта конфигурации, который предназначен для обеспечения работы программ на самых разных компьютерных системах.

Скрипт конфигурации проверяет вашу систему на наличие необходимых зависимостей, настраивает среду сборки и создаёт Makefile, адаптированный под вашу систему. Это критически важный шаг, гарантирующий корректную компиляцию программного обеспечения в вашем дистрибутиве Linux.

Давайте запустим скрипт настройки:

кали > ./configure

f0b171_fa2b00353aaf4b2faf51be2f1e77cdc5~mv2.png


Эта команда запускает скрипт конфигурации в текущем каталоге. Скрипт выполнит множество проверок вашей системы, найдёт необходимые библиотеки и инструменты и соответствующим образом настроит среду сборки.

Как видите, мы получили ошибку SSL. Можно выбрать любой вариант из списка, я буду использовать OpenSSL:

кали> ./configure –with-openssl

f0b171_cae35c0787b140259feca7c6584cc076~mv2.png


Скрипт конфигурации, по сути, сопоставляет библиотеки, необходимые программе, с установленными в вашей системе. Благодаря этому компилятор знает, где искать библиотеки, необходимые curl. После этого он генерирует файл Makefile со всей необходимой информацией для процесса компиляции.

Во время этого процесса вы можете увидеть ошибку об отсутствующей библиотеке, для продолжения вам просто нужно установить ее через apt и повторить скрипт.

Скрипт конфигурации часто принимает различные параметры, позволяющие настроить сборку. Например, вы можете установить программное обеспечение в другом месте или включить/отключить определённые функции (как мы сделали с SSL). Обычно эти параметры можно увидеть, выполнив:

кали > ./configure –help

f0b171_f4e5f67a40d94ed582f64d6da69e36ea~mv2.png


Шаг №4. Компиляция исходного кода с помощью Make


Теперь, когда мы настроили среду сборки и сгенерировали Makefile, мы можем скомпилировать исходный код с помощью команды make:

кали > сделать

f0b171_ccba10abbd024bac91d1388319300917~mv2.png


Команда make считывает инструкции из Makefile и выполняет команды, необходимые для компиляции программы. Этот процесс может занять от нескольких секунд до нескольких часов, в зависимости от размера и сложности программы.

Во время компиляции вы увидите множество выходных данных, поскольку компилятор обрабатывает каждый исходный файл. Не беспокойтесь, если вы не понимаете весь этот вывод — он в первую очередь полезен для отладки, если что-то пойдёт не так.

Команда make невероятно мощна, поскольку она пересобирает только то, что необходимо. Если вы внесёте изменения в исходный код и снова запустите make, она перекомпилирует только изменившиеся файлы, что значительно экономит время разработки.

Шаг №5. Установка скомпилированного программного обеспечения


После успешной компиляции программного обеспечения последний шаг — его установка в систему. Это делается с помощью команды make install, которую обычно необходимо выполнить с правами root:

кали > sudo make install

f0b171_91c4ce2113164378922c82aa9609e5f6~mv2.png


Эта команда копирует скомпилированные двоичные файлы, библиотеки и документацию в соответствующие расположения в вашей системе, указанные в Makefile. Расположение для установки обычно определяется на этапе настройки.

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

kali > curl -V

f0b171_e6997b408b774fed99861c4a2a008b86~mv2.png


Должна отобразиться версия curl, которую вы только что скомпилировали и установили, а также информация о поддерживаемых функциях и протоколах.


Краткое содержание


Помните, что менеджеры пакетов обеспечивают удобство, но умение компилировать из исходного кода даёт вам гибкость и контроль, недоступные менеджерам пакетов. Это важный навык для любого серьёзного пользователя Linux, администратора или хакера.
 
Назад
Сверху Снизу