Błąd instalacji Nginx w Ubuntu 16.04

58
: ~ $ sudo apt-get usuń nginx * && sudo apt-get zainstaluj nginx-full *

Czytanie list pakietów ... Gotowe
Budowanie drzewa zależności       
Odczytywanie informacji o stanie ... Gotowe

Po tej operacji zostanie wykorzystanych 5 579 kB dodatkowego miejsca na dysku.
Czy chcesz kontynuować? [T / n] y
Uzyskaj: 1 http://in.archive.ubuntu.com/ubuntu xenial-updates / universe amd64 nginx-full-dbg amd64 1.10.0-0ubuntu0.16.04.1 [3 789 kB]
Pobrano 3789 kB w 33 s (112 kB / s)                                             
Wybranie poprzednio niezaznaczonego pakietu nginx-common.
(Czytanie bazy danych ... 189767 plików i katalogów aktualnie zainstalowanych.)
Przygotowanie do rozpakowania ... / nginx-common_1.10.0-0ubuntu0.16.04.1_all.deb ...
Rozpakowywanie nginx-common (1.10.0-0ubuntu0.16.04.1) ...
Wybieranie wcześniej niezaznaczonego pakietu nginx-full.
Przygotowanie do rozpakowania ... / nginx-full_1.10.0-0ubuntu0.16.04.1_amd64.deb ...
Rozpakowywanie nginx-full (1.10.0-0ubuntu0.16.04.1) ...
Wybieranie wcześniej niezaznaczonego pakietu nginx-full-dbg.
Przygotowywanie do rozpakowania ... / nginx-full-dbg_1.10.0-0ubuntu0.16.04.1_amd64.deb ...
Rozpakowywanie nginx-full-dbg (1.10.0-0ubuntu0.16.04.1) ...
Przetwarzanie wyzwalaczy dla ufw (0.35-0ubuntu1) ...
Zaktualizowano reguły dla profilu „Apache Full”
Zaktualizowano reguły dla profilu „Nginx HTTP”

Przetwarzanie wyzwalaczy dla systemd (229-4ubuntu4) ...
Przetwarzanie wyzwalaczy dla ureadahead (0.100.0-19) ...
Przetwarzanie wyzwalaczy dla man-db (2.7.5-1) ...
Konfigurowanie nginx-common (1.10.0-0ubuntu0.16.04.1) ...
Konfigurowanie nginx-full (1.10.0-0ubuntu0.16.04.1) ...
Zadanie dla usługi nginx.service nie powiodło się, ponieważ proces kontroli zakończył się z kodem błędu. Zobacz „systemctl status nginx.service” i „journalctl -xe”, aby uzyskać szczegółowe informacje.

invoke-rc.d: initscript nginx, działanie „start” nie powiodło się.

dpkg: pakiet przetwarzania błędów nginx-full (--configure):
 podproces zainstalowany skrypt poinstalacyjny zwrócił błąd wyjścia status 1
dpkg: problemy z zależnościami uniemożliwiają konfigurację nginx-full-dbg:
 nginx-full-dbg zależy od nginx-full (= 1.10.0-0ubuntu0.16.04.1); jednak:
  Pakiet nginx-full nie jest jeszcze skonfigurowany.

dpkg: pakiet przetwarzania błędów nginx-full-dbg (--configure):

 problemy z zależnościami - pozostawiając nieskonfigurowane
Nie napisano raportu apport, ponieważ komunikat o błędzie wskazuje, że jest to błąd wynikający z poprzedniego niepowodzenia.

                          Napotkano błędy podczas przetwarzania:
 nginx-full

 nginx-full-dbg

E: Podproces / usr / bin / dpkg zwrócił kod błędu (1)
Mohit
źródło
Spróbuj apt-get -f installbez żadnego pakietu
Motte001
już sprawdzone, ten sam błąd !! Proszę spojrzeć:: ~ $ sudo apt-get -f install nginx-full-dbg zależy od nginx-full (= 1.10.0-0ubuntu0.16.04.1); jednak: Pakiet nginx-full nie jest jeszcze skonfigurowany. dpkg: pakiet przetwarzania błędów nginx-full-dbg (--configure): problemy z zależnościami - pozostawienie nieskonfigurowanych Napotkano błędy podczas przetwarzania: nginx-full nginx-full-dbg E: Podproces / usr / bin / dpkg zwrócił kod błędu (1)
Mohit
1
Czy masz zainstalowany Apache i działa na porcie 80 przed instalacją Nginx? Edytuj swoje pytanie, aby uwzględnić systemctl -l status nginxrównież wyniki
Thomas Ward
Czy masz również zainstalowaną inną wersję nginx? Widzę, że uruchomiłeś zadanie usuwania, ale jeśli starsze konfiguracje nadal istnieją, mogą przerwać instalację, jeśli mają przestarzałe polecenia lub podobne załączone.
Thomas Ward
See "systemctl status nginx.service" and "journalctl -xe" for details.- Czy możesz to zrobić i dołączyć wynik do pytania?
David Foerster

Odpowiedzi:

140

Wyłączenie apache2 przed instalacją nginx powinno rozwiązać ten problem:

sudo service apache2 stop
Andrew Chan
źródło
3
Witamy w Ask Ubuntu! Zalecam edycję tej odpowiedzi, aby rozszerzyć ją o szczegółowe informacje na temat tego, jak to zrobić. (Zobacz także Jak napisać dobrą odpowiedź? Zawiera ogólne porady na temat tego, jakie rodzaje odpowiedzi są uważane za najbardziej wartościowe w Ask Ubuntu.)
David Foerster
To dało mi wskazówkę, której potrzebowałem. W moim przypadku korzystałem z kontenera
dokującego,
Uderzyłem w to samo, ale znajdując winowajcę netstat -tulpn | grep :80, w moim przypadku skonfigurowano Varnish do nasłuchiwania na porcie 80. systemctl stop varnish, a następnie instalując Nginx, naprawiłem to dla mnie. Dlaczego pakiety Debian / Ubuntu próbują uruchomić się podczas instalacji, to mnie nie
obchodzi
Dziwne, że NGINX nie sprawdza tego w swoim instalatorze, a przynajmniej zapewnia bardziej pomocny komunikat. Apache jest bardzo często instalowany w systemach Linux.
machineghost
28

Andrew Chan udzielił mi właściwej odpowiedzi. Aby nieco rozszerzyć swoją odpowiedź, oto, co możesz zrobić w wierszu poleceń;

zatrzymaj apache2

sudo systemctl stop apache2.service

zapobiec uruchamianiu apache2 podczas uruchamiania

sudo systemctl disable apache2.service

Ponownie zainstaluj nginx

sudo apt-get install nginx

AR Winters
źródło
1
Sugerowałbym, aby nie wyłączać Apache2 podczas rozruchu, jeśli jest to potrzebne - istnieje wiele przypadków, w których nie trzeba wyłączać Apache, jeśli w końcu skonfigurujesz go do nasłuchiwania na innym porcie. Po zrobieniu tego sam, w przypadku niektórych konfiguracji, mogę mówić z pewnego doświadczenia (wykonuję również dużo pracy w pakiecie nginx, stąd pochodzi to doświadczenie)
Thomas Ward
7

Właśnie miałem ten problem, ale rozwiązanie było nieco inne.

Po rozwiązaniu prostej błędnej konfiguracji witryny udało mi się zaktualizować nginx.

Sprawdź swój dziennik błędów Nginx :

sudo cat /var/log/nginx/error.log|less

Następnie spróbuj ponownie:

sudo apt-get update;sudo apt-get upgrade
Taiger
źródło
loguje FTW, w moim przypadku port 80 był już w użyciu, co było przyczyną błędu
xliiv
6

W moim przypadku błąd polega na tym, że serwer ma wyłączoną IPv6. Rozwiązanie:

Edytuj /etc/nginx/sites-enabled/defaulti komentuj IPv6 out:

listen [::]:80 default_server;

Ponownie zainstaluj nginx:

apt purge nginx
apt autoremove
apt install nginx
użytkownik551419
źródło
@DavidFoerster Wraz z apt 1.0 wprowadzono nowy plik binarny, który zbiera wiele znanych (pod-) poleceń, które były dystrybuowane między apt-get, apt-cachei tak dalej. Na przykład apt updaterówna się apt-get update, apt search some-namerówna się apt-cache search some-namei tak dalej. W niektórych przypadkach nastąpiło przeredagowanie, takie jak apt full-upgradeto jest równe apt-get dist-upgrade. Stare pliki binarne i ich polecenia są nadal dostępne również dla tych, którzy je lubią.
Henning Kockerbeck
@HenningKockerbeck: Dzięki. Naprawdę wtedy nie wiedziałem i myślałem, że to literówka, ale w międzyczasie się kształciłem.
David Foerster,
Pracował dla mnie, ale nie mogę tego zaimplementować w skryptach powłoki do wdrażania serwera, to absurdalnie rondo ...
Menasheh
1

Kiedy sprawdziłem /var/log/nginx/error.log, zobaczyłem, że instalator nie może otworzyć / var / cache / nginx / microcache

Wykaz katalogów pokazał, że nie ma katalogu / var / cache / nginx, więc utworzyłem go i instalacja się powiodła.

Charles Oertel
źródło
1

W moim przypadku był to źle skonfigurowany plik w / etc / nginx / sites-enabled / nazwałem je jako pliki .old, ale to nie ma znaczenia. Zostaną odczytane i mogą uniemożliwić pomyślną instalację lub uruchomienie tej usługi. Uważaj na pliki w tym folderze i przeczytaj uważnie dane wyjściowe błędów, jak zalecił @Taiger

Godot85
źródło
0

Przed instalacją usuń ręcznie dodane dowiązania symboliczne z /sites-enabled.

Deto
źródło
0

W moim przypadku nic nie pomogło, poza tym:

sudo fuser -k 80/tcp

service nginx start
mansim
źródło