Походить із світу C та C ++, більшість систем побудови мають install
ціль, зокрема Makefiles (де, наприклад, рекомендує GNU ) або CMake . Ця мета копіює файли виконання (виконувані файли, бібліотеки, ...) в операційну систему (наприклад, в C:\Program Files\
Windows).
Це відчувається по-справжньому хакі, оскільки для мене це не відповідальність системи збирання за встановлення програм (що фактично є обов'язком оператора / менеджера пакетів). Це також означає, що система збирання або сценарій збірки повинні знати організацію встановлених програм, зі змінними середовища, змінними реєстру, символьними посиланнями, дозволами тощо.
У кращому випадку в системах побудови повинна бути release
ціль, яка виводить встановлену програму (наприклад, .deb
або .msi
), а потім люб'язно попросіть операційну систему встановити цю програму. Це також дозволить користувачу видалити без необхідності введення make uninstall
.
Отже, моє запитання: чому система побудови зазвичай рекомендує мати install
ціль?
make install
зазвичай встановлюється під /usr/local
(або навіть /opt
), які є каталогами, якими не керує "основна система управління ОС / пакетами". Не маю уявлення, чи має Windows подібне домовленості.
make install
немає сенсу, коли ми говоримо про перехресне складання
DESTDIR
.