O APT está tentando fazer o downgrade de um pacote?

1

Desde o último mês (ou dois) estou observando esse tipo de erro ao executar apt-get upgrade :

Preparing to unpack .../nginx-common_1.9.3-1ubuntu1.2_all.deb ...
Unpacking nginx-common (1.9.3-1ubuntu1.2) over (1.9.3-1ubuntu1.1) ...
dpkg: error processing archive /var/cache/apt/archives/nginx-common_1.9.3-1ubuntu1.2_all.deb (--unpack):
 trying to overwrite '/etc/logrotate.d/nginx', which is also in package nginx 1.10.1-1~wily
Preparing to unpack .../nginx-core_1.9.3-1ubuntu1.2_amd64.deb ...
Unpacking nginx-core (1.9.3-1ubuntu1.2) over (1.9.3-1ubuntu1.1) ...
dpkg: error processing archive /var/cache/apt/archives/nginx-core_1.9.3-1ubuntu1.2_amd64.deb (--unpack):
 trying to overwrite '/usr/sbin/nginx', which is also in package nginx 1.10.1-1~wily
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)

Embora todo o processo de atualização não falhe, ainda tenho esse erro mencionado no final do processo de atualização:

Errors were encountered while processing:
 /var/cache/apt/archives/nginx-common_1.9.3-1ubuntu1.2_all.deb
 /var/cache/apt/archives/nginx-core_1.9.3-1ubuntu1.2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Se eu entendi corretamente, eu tenho a versão 1.10.1 atualmente instalada enquanto o apt está tentando instalar a versão 1.9.3 sobre ele ... Ou seja, ele está tentando fazer isso. Estou certo? É possível que a versão mais nova tenha vindo de algum PPA, enquanto o mais antigo vem de alguma lista oficial?

Eu tenho o Ubuntu 15.10 instalado.

Como posso evitar que esse downgrade ocorra?

EDIT: Aqui uma saída de apt-cache policy nginx

nginx:
  Installed: 1.10.1-1~wily
  Candidate: 1.10.1-1~wily
  Version table:
 *** 1.10.1-1~wily 0
        500 http://nginx.org/packages/ubuntu/ wily/nginx amd64 Packages
        100 /var/lib/dpkg/status
     1.10.0-1~wily 0
        500 http://nginx.org/packages/ubuntu/ wily/nginx amd64 Packages
     1.9.3-1ubuntu1.2 0
        500 http://de.archive.ubuntu.com/ubuntu/ wily-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ wily-security/main amd64 Packages
     1.9.3-1ubuntu1 0
        500 http://de.archive.ubuntu.com/ubuntu/ wily/main amd64 Packages
     1.8.1-1~wily 0
        500 http://nginx.org/packages/ubuntu/ wily/nginx amd64 Packages
     1.8.0-1~wily 0
        500 http://nginx.org/packages/ubuntu/ wily/nginx amd64 Packages
    
por shadyyx 29.06.2016 / 12:12

1 resposta

1

Primeiro, gostaria de verificar qual pacote o pacote APT está configurado para instalar (fora das opções disponíveis), você pode fazer isso com:

apt-cache policy nginx

por exemplo,

% apt-cache policy nginx
nginx:
  Installed: 1.10.0-0ubuntu0.16.04.2
  Candidate: 1.10.0-0ubuntu0.16.04.2
  Version table:
 *** 1.10.0-0ubuntu0.16.04.2 500
        500 http://nz.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        500 http://nz.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages
        500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu xenial-security/main i386 Packages
        100 /var/lib/dpkg/status
     1.9.15-0ubuntu1 500
        500 http://nz.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
        500 http://nz.archive.ubuntu.com/ubuntu xenial/main i386 Packages

Isso me diz que se eu não tivesse o nginx instalado, o apt tentaria instalar o

1.10.0-0ubuntu0.16.04.2

versão do nginx.
Em seguida, para instalar um pacote específico - não candidato - você pode especificá-lo como uma opção para apt-get , por exemplo. from man apt (truncado a saída para facilitar a compreensão)

  

SINOPSE
         apt-get ... pkg [{= pkg_version_number] ...

por exemplo,

apt-get install nginx=1.9.15-0ubuntu1

instalaria a versão não candidata do pacote nginx , se necessário. Note que você pode ter que fazer parte de seu próprio gerenciamento de dependências neste caso, mas nem sempre.

    
por the_velour_fog 29.06.2016 / 12:50