problema de dependência do nginx tentando atualizar

12

Tentando atualizar meu Ubuntu 12.04 vps, recebo o seguinte erro:

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.

Então, eu tento executar isso:

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)

Alguém pode ajudar a consertar isso?

hstr
fonte
2
Não tenha pressa em procurar esta pergunta de propósito geral . Se você não tiver sorte com isso, tente reinstalar o nginxpacote:sudo apt-get remove nginx* && sudo apt-get install nginx-full
Lucio
2
Eu passei pela coisa toda, mas sem sorte. Então, tentei remover e instalar e, após uma reinicialização, tudo funcionou bem. Você poderia postar isso como uma resposta para que eu possa aceitá-lo como a solução certa.
hstr 15/01

Respostas:

20

O problema é que nginx-fulldepende nginx-commondisso, isso significa que você não pode instalar o pacote nginx-fullsem ter uma versão específica do nginx-common.

Aqui está uma pergunta dedicada a esse problema, mas a resolução é muito extensa, atingindo não apenas um, mas diferentes casos. Então, vou mostrar um método curto, mas eficaz.

Na verdade, não sei como instalar essa versão nginx-common, mas sei que você resolverá o problema reinstalando todo o pacote . Para fazer isso, você deve digitar o seguinte comando em um terminal.

sudo apt-get remove nginx* && sudo apt-get install nginx-full
Lucio
fonte
3
foi necessária uma reinicialização após essas etapas para fazer tudo funcionar! Obrigado
Aakash Goyal
4
Eu precisava parar o Apache (também servindo na porta 80) antes que isso funcionasse.
Ahmed Fasih 22/09
6

Eu tive o mesmo problema. Eu NÃO tenho Apache, e nada mais estava bloqueando minha porta 80. Eu NÃO conseguia instalar o nginx com

sudo apt-get install nginx

nem com

sudo apt-get install nginx-common nginx-full

Depois de uma semana, me deparei com este pequeno blog: https://etc.banana.fish/?p=75

Neste blog, a solução é:

  1. Instale o nginx-common: sudo apt-get install nginx-common
  2. Remova listen [::]:80 default_server;de / etc / nginx / sites-enabled / default (eu fiz isso usando o usuário root)
  3. Só para ter certeza, reiniciei meu servidor.
  4. Só para ter certeza duas vezes, eu fiz sudo apt-get updatee depois sudo apt-get upgrade.
  5. Agora eu finalmente liguei sudo apt-get install nginx-fulle funcionou!

Posteriormente, pude ver a tela de títulos do nginx, quando digitei o IP do meu servidor remoto!

ElectRocnic
fonte
0

Tenho uma forte sensação de que você esqueceu de executar sudo apt-get updateantes de executar sudo apt-get upgrade- o gerenciador de pacotes usa informações antigas sobre a nginx-commonversão do pacote enquanto nginx-fullrequer uma versão mais nova.

Sergey
fonte
1
Não, eu fiz isso.
hstr 15/01