Обычно необходимо сделать make, а затем make install?

714
Jason Baker

Это то, что всегда беспокоило меня. Кажется, я всегда вижу инструкции по сборке для сборки, а затем устанавливаю что-то, говорящее:

make sudo make install 

Есть ли причина звонить make? Не sudo make installзвонит неявно make?

3

2 ответа на вопрос

3
Shannon Nelson

Технически, нет причин, почему бы и нет - это действительно основано на том, как был создан make-файл. Это все разработано вокруг зависимостей. Если цель 'install' сделана зависимой от остальной части продукта, она неявно создаст продукт, как вы думаете.

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

1
John T

2 команды делают разные вещи.

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

make install - это читает make-файл для целевого каталога установки и помещает файлы, созданные make, в соответствующие каталоги.

Есть ли хотя бы одна платформа, на которой `make` вызывается` make install`? Jason Baker 14 лет назад 0
Вы можете вызвать make с помощью `make install`, make install ищет метку в make-файле с именем install и следует указаниям ниже. Если вы поместите директивы make под ним, вы можете сделать все это за один раз. Обычно это делается другим способом, вероятно, для предотвращения путаницы, поэтому все программное обеспечение устанавливается одинаково. Я не знаю ни одного программного обеспечения, созданного мной, которое позволило бы мне пропустить процесс создания. Вы также заметите, что make install имеет префикс sudo, потому что процесс make может выполняться где угодно, `make install` перемещает файлы в каталоги, которые обычно запрещены для записи обычным пользователям. John T 14 лет назад 0