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)

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

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


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

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

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


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


0

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


0

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

sudo fuser -k 80/tcp

service nginx start
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.