problème de dépendance nginx essayant de mettre à niveau

12

En essayant de mettre à jour mon Ubuntu 12.04 vps, j'obtiens l'erreur suivante:

henrik@neung:~$ sudo apt-get upgrade
[sudo] password for henrik: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 nginx-full : Depends: nginx-common (= 1.2.4-1ubuntu0ppa2~precise) but 1.2.4-2ubuntu0ppa1~precise is installed
E: Unmet dependencies. Try using -f.

J'essaye donc de lancer ceci:

henrik@neung:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  nginx-full
The following packages will be upgraded:
  nginx-full
1 upgraded, 0 newly installed, 0 to remove and 42 not upgraded.
2 not fully installed or removed.
Need to get 0 B/441 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
dpkg: dependency problems prevent configuration of nginx-full:
 nginx-full depends on nginx-common (= 1.2.4-1ubuntu0ppa2~precise); however:
  Version of nginx-common on system is 1.2.4-2ubuntu0ppa1~precise.
dpkg: error processing nginx-full (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of nginx:
 nginx depends on nginx-full | nginx-light; however:
  Package nginx-full is not configured yet.
  Package nginx-light is not installed.
dpkg: error processing nginx (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                          No apport report written because the error message indicates its a followup error from a previous failure.
                                                    Errors were encountered while processing:
 nginx-full
 nginx
E: Sub-process /usr/bin/dpkg returned an error code (1)

Quelqu'un peut-il aider à résoudre ce problème?

hstr
la source
2
Prenez votre temps pour regarder cette question à usage général . Si vous n'avez pas de chance avec cela, essayez de réinstaller le nginxpaquet:sudo apt-get remove nginx* && sudo apt-get install nginx-full
Lucio
2
J'ai traversé tout ça, mais pas de chance. J'ai donc essayé de supprimer et d'installer, et après un redémarrage, tout a bien fonctionné. Pourriez-vous poster ceci comme une réponse afin que je puisse l'accepter comme la bonne solution.
hstr

Réponses:

20

Le problème est que cela nginx-fulldépend de nginx-common, cela signifie que vous ne pouvez pas installer le package nginx-fullsans avoir une version spécifique de nginx-common.

Voici une question consacrée à ce problème, mais la résolution est très étendue, atteignant non seulement un, mais des cas différents. Je vais donc vous montrer une méthode courte mais efficace.

En fait, je ne sais pas comment installer cette version de nginx-common, mais je sais que vous résoudrez votre problème en réinstallant tout le paquet . Pour ce faire, vous devez entrer la commande suivante dans un terminal.

sudo apt-get remove nginx* && sudo apt-get install nginx-full
Lucio
la source
3
un redémarrage était nécessaire après ces étapes pour que tout fonctionne! Merci
Aakash Goyal
4
J'avais besoin d'arrêter Apache (servant également sur le port 80) avant que cela ne fonctionne.
Ahmed Fasih
6

J'ai eu le même problème. JE N'AI PAS Apache, et rien d'autre ne bloquait mon port 80. Je ne pouvais PAS installer nginx avec

sudo apt-get install nginx

ni avec

sudo apt-get install nginx-common nginx-full

Après une semaine, je suis tombé sur ce petit blog: https://etc.banana.fish/?p=75

Dans ce blog, la solution est:

  1. Installez nginx-common: sudo apt-get install nginx-common
  2. Supprimer listen [::]:80 default_server;de / etc / nginx / sites-enabled / default (je l'ai fait en utilisant l'utilisateur root)
  3. Juste pour être sûr, j'ai redémarré mon serveur.
  4. Juste pour être sûr deux fois, je l'ai fait sudo apt-get updateet ensuite sudo apt-get upgrade.
  5. Maintenant, j'ai finalement appelé sudo apt-get install nginx-fullet cela a fonctionné!

Afterwords j'ai pu voir le Titlescreen de nginx, quand j'ai tapé l'IP de mon serveur distant!

ElectRocnic
la source
0

J'ai le sentiment fort que vous avez oublié d'exécuter sudo apt-get updateavant d'exécuter sudo apt-get upgrade- le gestionnaire de packages utilise d'anciennes informations sur la nginx-commonversion du package alors qu'il nginx-fullnécessite une version plus récente.

Sergey
la source
1
Non, je l'ai fait.
hstr