Подтвердить что ты не робот

Что должно включать Linux/Unix 'make install'?

Я написал программу на С++ (командная строка, переносимый код), и я пытаюсь выпустить версию Linux одновременно с версией Windows. Я написал make файл следующим образом:

ayane: *.cpp *.h
    g++ -Wno-write-strings -oayane *.cpp

Достаточно справедливо до сих пор; но мне дано понять, что принято иметь второй шаг, сделать установку. Поэтому, когда я помещаю install: target в makefile... какая команда должна быть связана с ним? (Если возможно, я бы предпочел, чтобы он работал на всех Unix-системах, а также на Linux.)

4b9b3361

Ответ 1

Установка

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

  • исполняемый файл идет в $INSTALL_PATH/bin
  • любые библиотеки, созданные для внешнего потребления, входят в $INSTALL_PATH/lib или $INSTALL_PATH/lib/yourappname
  • man-страницы идут в $INSTALL_PATH/share/man/man1 и, возможно, в других разделах
  • другие документы входят $INSTALL_PATH/share/yourappname
  • файлы конфигурации по умолчанию находятся в $INSTALL_PATH/etc/yourappname
  • заголовки для других ссылок, чтобы перейти в $INSTALL_PATH/include/yourappname

Путь установки

INSTALL_PATH - это вход в систему сборки и обычно по умолчанию - /usr/local. Это дает вашему пользователю гибкость для установки под их $HOME без необходимости получения повышенного разрешения.

В простейшем случае просто используйте

INSTALL_PATH?=/usr/local

в верхней части файла makefile. Затем пользователь может переопределить его, установив в свою оболочку переменную среды.

Деинсталляция

Вы также иногда видите make install, которые создают манифест, чтобы помочь с деинсталляцией. Для выполнения работы манифест может быть даже записан как script.

Другой подход состоит в том, чтобы иметь make uninstall, который ищет вещи make install, и удаляет их, если они существуют.

Ответ 2

В простейшем случае вы просто копируете только что созданный исполняемый файл в путь /usr/local/bin. Конечно, обычно это сложнее.

Обратите внимание, что для большинства этих операций требуются особые права, поэтому make install обычно вызывается с помощью sudo.

Ответ 3

make install обычно является шагом, который "устанавливает" двоичный файл в нужное место.

Например, при компиляции Vim make install может поместить его в /usr/local/bin

Не все Makefile имеют make install