make installделает все, что Makefileхочет автор. Как правило, к этому моменту уже слишком поздно менять каталог установки, как это часто известно ранее , во время сборки, поэтому на файлы справки и файлы конфигурации можно ссылаться с правильными путями.
Многие проекты используют GNU Autotools, чтобы попытаться улучшить их переносимость между аппаратными средствами и операционными системами. (Различные варианты Unix используют немного разные заголовки для объявлений функций, которые немного отличаются от обычного пути - за исключением того, что большинству программ нужна та или иная из тех, которые объявлены в разных местах.)
Когда проект использует Автоинструменты, обычная мантра для его установки:
./configure
make
make install
./configure, Как правило , позволяет использовать параметр командной строки , как --prefix /opt/apacheили что - то подобное , чтобы указать другой путь к файлу. /usr/local/это общее значение по умолчанию prefix. Локально построенному программному обеспечению гораздо проще жить в одном месте, а распространяемое программное обеспечение - в «главных каталогах»: /usr/ /bin/и так далее. (Упаковщики очень осторожны, чтобы никогда не трогать файлы /usr/local/- они знают, что это исключительно для системных администраторов.)
В любом случае, ./configure --prefix /path/to/new/prefixпеременная будет установлена в том, Makefileчто доступно при компиляции программы, изменении страниц руководства, чтобы они указывали на правильные местоположения для файлов, изменении файлов конфигурации и т. Д. Таким образом make, программное обеспечение будет создано специально для места установки, которое вы хотите, и make installустановит его в это место.
Большинство программ могут работать даже без последнего make installшага - просто ./program_nameчасто их запускают. Это определенно вещь для каждого проекта - некоторые, например postfix, qmailи т. Д. Состоят из множества разных движущихся частей и полагаются на то, что они работают вместе. Другие, такие как lsили suмогут быть достаточно автономными, чтобы нормально работать из каталога, в котором они были встроены. (Это не часто полезно, но иногда очень полезно.)
Однако не все проекты используют Autotools - они огромные , сложные и убогие в обслуживании. Написанные от руки Makefileгораздо проще писать, и я лично считаю, что просто распространять простое Makefileс доступными переменными конфигурации намного проще как для разработчиков, так и для пользователей. (Хотя ./configure ; make ; make installмантра действительно проста для пользователей, когда она работает.)
make installшагами с точки зрения программистов.