Linux с нуля

Linux с нуля

В настоящее время я занимаюсь Linux From Scratch. Я загрузил несколько пакетов. Я распаковываю их с помощью команды «tar» и делаю следующее внутри этого извлеченного пакета:

  1. настроить
  2. делать
  3. сделать тест
  4. сделать установку

Еще один момент: что такое makefile?

Пожалуйста, объясните мне назначение этих команд, особенно в контексте LFS. Заранее спасибо.

решение1

Я (вроде) знаю, что он делает, но не уверен, смогу ли объяснить.

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

Makefile — это текстовый файл, который использует команда make. Он помогает (автоматизирует) задачи. Один makefile может содержать информацию для более чем одной задачи или действия, которые make должен выполнить. Без makefile вам пришлось бы выполнять много сложных ручных шагов, чтобы что-то сделать.

"configure": (объяснение взято изздесь) Проверяет некоторые сведения о машине, на которую будет установлено программное обеспечение. Этот скрипт проверяет множество зависимостей в вашей системе. Для правильной работы конкретного программного обеспечения может потребоваться, чтобы на вашей машине уже было много всего. Если в вашей системе отсутствуют какие-либо основные требования, скрипт конфигурации завершит работу, и вы не сможете продолжить установку, пока не получите эти необходимые вещи. В противном случае он создает Makefile для использования на следующем этапе.

"make" без параметров: указывает make выполнить действие по умолчанию (правило) в makefile. Обычно это компилирует, связывает и генерирует двоичный файл, который вы пытаетесь создать (т. е. программу или библиотеку). Обычно это включает преобразование исходного кода в объектные файлы (которые обычно имеют расширение .o) и связывание их в конечный двоичный файл (который в случае программ Linux обычно не имеет расширения или в случае библиотек Linux обычно имеет расширение .soили .a). Я не уверен в шагах, потому что я программист Java, и мы не так часто выполняем эти шаги).

«make test»: выполняет тесты для этого двоичного файла.

«make install»: по сути перемещает двоичный файл в нужную папку.

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

Это краткое руководствоможет предоставить дополнительную информацию.

решение2

Использование a Makefileоблегчает жизнь как разработчику, так и конечному пользователю. По сути, это шпаргалка о том, как собрать определенную часть программного обеспечения. Для простого "Hello world" a g++ hw.cpp -o hello_worldможет подойти. Однако, когда у вас гораздо более сложное программное обеспечение, часто бывает так, что часть A должна быть собрана до части B, а после того, как эти две будут готовы, можно собрать часть C. Ручной ввод этих данных, а также вставка путей к включенным библиотекам, временным выходным файлам, окончательным путям установки и т. д. (обычно определяемым при configureзапуске скрипта), может привести к ошибке.

Связанный контент