instale uma versão específica do NGinx no debian bullseye

instale uma versão específica do NGinx no debian bullseye

Estou construindo um contêiner docker com o seguinte Dockerfile:

FROM debian:bullseye
RUN apt -y update && echo 'deb https://nginx.org/packages/debian/ bullseye nginx' >> /etc/apt/sources.list && echo 'deb-src https://nginx.org/packages/debian/ bullseye nginx' >> /etc/apt/sources.list && apt -y install gnupg2 && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62 && apt -y update && apt -y install nginx nginx-extras luarocks
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
        && ln -sf /dev/stderr /var/log/nginx/error.log
# RUN luarocks install nginx-lua-prometheus
EXPOSE 80

STOPSIGNAL SIGTERM

De acordo com as instruções no site NGinx, adiciono as duas linhas a seguir etc/apt/sources.list:

deb https://nginx.org/packages/debian/ bullseye nginx
deb-src https://nginx.org/packages/debian/ bullseye nginx

e inicie a instalação:apt install -y nginx ...

No entanto, quando o contêiner é lançado, umvelhoversão está em execução:

# nginx -v
nginx version: nginx/1.18.0

Parece que o nginx é instalado a partir do repositório debian em vez do NGinx.

Ainda mais surpreendentemente, o pacote NGinx está marcado como atualizável:

# apt update
Hit:1 http://security.debian.org/debian-security bullseye-security InRelease
Hit:2 http://deb.debian.org/debian bullseye InRelease
Hit:3 http://deb.debian.org/debian bullseye-updates InRelease
Hit:4 https://nginx.org/packages/debian bullseye InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.

# apt list --upgradable
Listing... Done
nginx/stable 1.20.1-1~bullseye all [upgradable from: 1.18.0-6.1]
N: There is 1 additional version. Please use the '-a' switch to see it

Agora, se eu tentar atualizar o pacote nginx, ele falhará:

# apt upgrade nginx
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libnginx-mod-http-auth-pam : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-cache-purge : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-dav-ext : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-echo : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-fancyindex : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-geoip : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-geoip2 : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-headers-more-filter : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-image-filter : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-lua : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-ndk : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-perl : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-subs-filter : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-uploadprogress : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-upstream-fair : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-http-xslt-filter : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-mail : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-nchan : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-stream : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-stream-geoip : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 libnginx-mod-stream-geoip2 : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
 nginx-extras : Depends: nginx-common (= 1.18.0-6.1) but it is not installable
E: Broken packages

Minha dúvida é a seguinte: como instalar a versão mais recente (nginx/stable 1.20.1) diretamente do repositório NGinx?

Responder1

De man apt:

Uma versão específica de um pacote pode ser selecionada para instalação seguindo o nome do pacote com um igual (=) e a versão do pacote a ser selecionada. Alternativamente, a versão de um lançamento específico pode ser selecionada seguindo o nome do pacote com uma barra (/) e codinome (buster, bullseye, sid ...) ou nome do pacote (stable, testing, instável). Isto também selecionará versões desta versão para dependências deste pacote, se necessário, para satisfazer a solicitação.

Potencialmente também existem problemas com as dependências do nginx/stable 1.20.1pacote, mas você descobrirá quando tentar instalá-lo.

informação relacionada