Есть несколько версий Nginx в Debian

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 на правильные места (что, вероятно, является правильным способом сделать это, но также является большой проблемой).

2
23.02.2017, 18:42
3 ответа

Другая идея - использовать ansible для настройки. После этого вы можете создать новые виртуальные машины (например, с vagrant ) и развернуть свою конфигурацию ansible (так называемые playbooks ).

0
27.01.2020, 22:03

Вы указываете цель установки как параметр ./ configure , а не make . По умолчанию nginx настраивается с префиксом / usr / local / nginx , поэтому нет риска перезаписать упакованную версию; вы можете указать свой собственный путь с помощью

./configure --prefix=/your/installation/path

. По умолчанию установка nginx не устанавливает никаких файлов за пределами своего префикса, например. в / и т. Д. .

Процесс установки задокументирован на веб-сайте nginx .

Общая стратегия проверки безопасности установки программного обеспечения из исходного кода заключается в выполнении шага установки с параметром -n (который указывает Make не выполнять что угодно):

make -n install

Здесь перечислены все операции, которые будут выполняться в реальной установке. (Некоторые системы сборки не используют этот параметр, потому что более поздние этапы установки зависят от изменений, внесенных ранее; сборка nginx работает нормально.)

Конечно, вам следует сначала поиграть с этапами сборки и установки исходного кода в другой системе, прежде чем касаться ваша производственная система ...

3
27.01.2020, 22:03

Вы должны запустить ./configure с опцией --sbin-path=:

--sbin-path=path - задает имя исполняемого файла nginx. Это имя используется только во время установки. По умолчанию файл имеет имя prefix/sbin/nginx.

0
27.01.2020, 22:03

Теги

Похожие вопросы