Problem zależności nginx podczas próby aktualizacji

12

Próbując zaktualizować system Ubuntu 12.04 vps, pojawia się następujący błąd:

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.

Więc próbuję uruchomić to:

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)

Czy ktoś może pomóc to naprawić?

hstr
źródło
2
Nie spiesz się, patrząc na to pytanie ogólnego przeznaczenia . Jeśli nie masz szczęścia, spróbuj ponownie zainstalować nginxpakiet:sudo apt-get remove nginx* && sudo apt-get install nginx-full
Lucio
2
Przeszedłem przez całą sprawę, ale bez powodzenia. Próbowałem więc usunąć i zainstalować, a po ponownym uruchomieniu wszystko działało dobrze. Czy możesz to opublikować jako odpowiedź, abym mógł zaakceptować to jako właściwe rozwiązanie.
hstr

Odpowiedzi:

20

Problem polega na tym nginx-fullzależy nginx-common, to oznacza, że nie można zainstalować pakiet nginx-fullbez posiadają wersję konkretnego o nginx-common.

Oto pytanie poświęcone temu problemowi, ale jego rozdzielczość jest bardzo obszerna i dotyczy nie tylko jednego, ale różnych przypadków. Pokażę więc krótką, ale skuteczną metodę.

Właściwie nie wiem, jak zainstalować tę wersję nginx-common, ale wiem, że rozwiążesz problem, instalując ponownie cały pakiet . Aby to zrobić, musisz wprowadzić następujące polecenie w terminalu.

sudo apt-get remove nginx* && sudo apt-get install nginx-full
Lucio
źródło
3
po wykonaniu tych czynności wymagany był restart, aby wszystko działało! Dzięki
Aakash Goyal
4
Musiałem zatrzymać Apache (również obsługujący port 80), zanim to zadziała.
Ahmed Fasih
6

Miałem ten sam problem. NIE mam Apache i nic innego nie blokowało mojego portu 80. NIE mogłem zainstalować nginx

sudo apt-get install nginx

ani z

sudo apt-get install nginx-common nginx-full

Po tygodniu natknąłem się na tego małego bloga: https://etc.banana.fish/?p=75

Na tym blogu rozwiązaniem jest:

  1. Zainstaluj nginx-common: sudo apt-get install nginx-common
  2. Usuń listen [::]:80 default_server;z / etc / nginx / sites-enabled / default (zrobiłem to przy użyciu użytkownika root)
  3. Dla pewności zrestartowałem serwer.
  4. Tylko dwa razy, zrobiłem to sudo apt-get updatei wtedy sudo apt-get upgrade.
  5. Teraz w końcu zadzwoniłem sudo apt-get install nginx-fulli zadziałało!

Afterwords mogłem zobaczyć ekran tytułowy nginx, kiedy wpisałem adres IP mojego zdalnego serwera!

ElectRocnic
źródło
0

Mam silne przeczucie, że zapomniałeś uruchomić sudo apt-get updateprzed uruchomieniem sudo apt-get upgrade- menedżer pakietów używa starych informacji o nginx-commonwersji pakietu, podczas gdy nginx-fullwymaga nowszej wersji.

Siergiej
źródło
1
Nie, zrobiłem to.
hstr