Tem várias versões do Nginx no Debian

1

Eu tenho uma versão padrão do Nginx (instalado através de apt-get ) executando meu ambiente de produção (Debian Jessie).

Agora eu quero compilar a versão mais recente do Nginx da fonte com alguns módulos extras para teste. O executável pode estar em qualquer lugar, mas quero ter certeza de não substituir minha versão de produção acidentalmente.

O que eu sei: preciso de cd para o diretório de origem nginx e executar:

./configure --add-module=/path/to/some/module
make
make install

O que eu não sei: como garantir que a versão de teste não seja instalada na versão de produção. Ou como instalar em um lugar específico que eu especificar.

(Eu tentei ler as man-pages no make, mas não cheguei a nenhuma resposta conclusiva. Eu sou bastante inexperiente com a compilação da fonte.)

    
por lhermann 23.02.2017 / 17:42

3 respostas

2

Você especifica o destino da instalação como uma opção para ./configure , não make . Por padrão, o nginx se configura com um prefixo de /usr/local/nginx , portanto não há risco de sobrescrever a versão empacotada; você pode especificar seu próprio caminho com

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

A configuração nginx padrão não instala nenhum arquivo fora de seu prefixo, por exemplo. em /etc .

O processo de instalação está documentado no site da nginx .

Uma estratégia geral para verificar se uma parte do software é segura para instalar a partir da fonte é rodar a etapa instalação com a opção -n (que diz ao Make para não fazer nada de fato):

make -n install

Isto listará todas as operações que seriam feitas em uma instalação real. (Alguns sistemas de compilação quebram essa opção porque as etapas de instalação posteriores dependem das alterações feitas pelos anteriores; a compilação do nginx funciona bem.)

É claro que você deve brincar com as etapas de compilação e instalação de origem em outro sistema antes de tocar em seu sistema de produção ...

    
por 23.02.2017 / 17:58
0

Você deve executar ./configure com a opção --sbin-path= :

--sbin-path=path — sets the name of an nginx executable file. This name is used only during installation. By default the file is named prefix/sbin/nginx.

    
por 23.02.2017 / 18:01
0

Outra ideia seria usar ansible para fazer a configuração. Depois você pode criar novas máquinas virtuais (por exemplo, com vagrant ) e lançar sua configuração ansible (assim chamadas playbooks ).

    
por 23.02.2017 / 19:22