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
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.