web-dev-qa-db-fra.com

APT essaie-t-il de rétrograder un package?

Depuis le mois dernier (ou deux), j'observe ce genre d'erreur lors de l'exécution de 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)

Bien que l'ensemble du processus de mise à niveau n'échoue pas, j'ai toujours cette erreur mentionnée à la fin du processus de mise à niveau:

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)

Si je comprends bien, j'ai la version 1.10.1 actuellement installée tandis que apt essaie d'installer la version 1.9.3 par dessus ... C'est-à-dire qu'il essaie de le mettre à niveau. Ai-je raison? Est-il possible que la version la plus récente provienne d'un PPA alors que la ancienne provient d'une liste officielle?

J'ai Ubuntu 15.10 installé.

Comment puis-je empêcher cette dégradation de se produire?

EDIT: Voici une sortie 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
1
shadyyx

Je voudrais d'abord vérifier quel package APT est configuré pour être installé (parmi les options disponibles), vous pouvez le faire avec:

apt-cache policy nginx

par exemple.

% 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

Cela me dit que si je n'avais pas déjà installé nginx, apt essaierait d'installer le

1.10.0-0ubuntu0.16.04.2

version de nginx.
Ensuite, pour installer un package particulier - non candidat - vous pouvez le spécifier comme option pour apt-get par exemple. de man apt (J'ai tronqué la sortie pour la rendre plus facile à comprendre)

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

par exemple.

apt-get install nginx=1.9.15-0ubuntu1

installerait la version non candidate du package nginx si cela était nécessaire. Notez que vous devrez peut-être faire une partie de votre propre gestion des dépendances dans ce cas, mais pas toujours.

2
the_velour_fog