OP здесь. В итоге я загрузил старую версию драйверов (15.2) с веб-сайта AMD и выполнил чистую установку. Произошла ошибка с одной ошибкой: компилятор не смог найти файл i387.h . В моем ядре это связано с тем, что этот файл был переименован в api.h и перемещен командой Linux в другой каталог (очевидно, поскольку пакет драйверов был собран). Я нашел его здесь:
/usr/src/linux-headers-4.40-42-generic/arch/x86/include/asm/fpu/api.h
Сначала я переименовал его в i387.h и переместил в каталог / asm , где его ожидал пакет. Это устранило ошибку, но я также получил другие ошибки #include для mman.h , poll.h и ioctl32.h . Первые два файла также были перемещены после сборки пакета, а я вообще не могу найти ioctl32.h (и даже не уверен, что он мне нужен для 64-битной сборки).
Прямо сейчас я пытаюсь решить, переместить ли два других заголовка и посмотреть, будет ли он построен без ioctl32.h , или зайти в пакет и изменить операторы #include на правильные места (что, вероятно, является правильным способом сделать это, но также является большой проблемой).
Вы указываете цель установки как параметр ./ configure
, а не make
. По умолчанию nginx настраивается с префиксом / usr / local / nginx
, поэтому нет риска перезаписать упакованную версию; вы можете указать свой собственный путь с помощью
./configure --prefix=/your/installation/path
. По умолчанию установка nginx не устанавливает никаких файлов за пределами своего префикса, например. в / и т. Д.
.
Процесс установки задокументирован на веб-сайте nginx .
Общая стратегия проверки безопасности установки программного обеспечения из исходного кода заключается в выполнении шага установки с параметром -n
(который указывает Make не выполнять что угодно):
make -n install
Здесь перечислены все операции, которые будут выполняться в реальной установке. (Некоторые системы сборки не используют этот параметр, потому что более поздние этапы установки зависят от изменений, внесенных ранее; сборка nginx работает нормально.)
Конечно, вам следует сначала поиграть с этапами сборки и установки исходного кода в другой системе, прежде чем касаться ваша производственная система ...
Вы должны запустить ./configure
с опцией --sbin-path=
:
--sbin-path=path - задает имя исполняемого файла nginx. Это имя используется только во время установки. По умолчанию файл имеет имя
prefix/sbin/nginx
.