Из чего состоит Linux / Unix 'make install'? - PullRequest
24 голосов
/ 09 февраля 2009

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

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

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

Ответы [ 3 ]

37 голосов
/ 09 февраля 2009

Установка

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

  • исполняемый файл входит в $INSTALL_PATH/bin
  • любые библиотеки, созданные для внешнего потребления, входят в $INSTALL_PATH/lib или $INSTALL_PATH/lib/yourappname
  • Справочные страницы входят в $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

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

1038 * Деинсталляция * Вы также иногда видите make install s, которые создают манифест, чтобы помочь с деинсталляцией. Манифест может даже быть написан как скрипт для выполнения работы. Другой подход - просто make uninstall, который ищет вещи make install и удаляет их, если они существуют.

3 голосов
/ 09 февраля 2009

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

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

0 голосов
/ 09 февраля 2009

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

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

Не все файлы Makefile имеют make install

...