Dlaczego otrzymuję nazwę hosta: nieznany błąd nazwy lub usługi?


23

Ten błąd pojawia się, gdy instaluję jakiekolwiek pakiety za pośrednictwem apt-get:

hostname: Name or service not known
dpkg: error processing ssmtp (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up libt1-5 (5.1.2-3.4ubuntu1) ...
Setting up php5-gd (5.3.10-1ubuntu3.2) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Errors were encountered while processing:
 ssmtp
E: Sub-process /usr/bin/dpkg returned an error code (1)

Dlaczego tak się dzieje?


Miałem ten sam problem, problem był związany z tym, że DNS nie pomógł w żadnym wpisie dla nazwy hosta - dlatego nazwa FQDN była niedostępna.

Odpowiedzi:


10

Rozwiązanie:

(Tego rodzaju problemy nie mają dobrych rozwiązań. Ale tylko niektóre hakowanie)

Najpierw wypróbuj to polecenie w terminalu:

sudo apt-get -f install

Jeśli to nie zadziała, wykonaj procedurę przy użyciu hakującego rozwiązania.

Spróbuj tymczasowo przenieść skrypt konfiguracji ssmtp.

  1. Otwórz terminal i wykonaj to polecenie, aby przenieść je do bieżącego katalogu

     sudo mv /var/lib/dpkg/info/ssmtp* .
    
  2. Następnie spróbuj użyć apt-get

Przyczyna problemu:

Poprzednia instalacja lub usunięcie może się nie powieść, pozostawiając krok konfiguracji dla ssmtppakietu. Ponieważ dpkg nie będzie się rozwijał bez uprzedniego ukończenia kroków, kolejne użycie apt-getteraz utknie na tym kroku.


18

biegać hostname --fqdn

Jeśli pojawi się błąd, edytuj / etc / hostname i / etc / hosts z poprawną nazwą hosta.

Następnie aptitude install ssmtpponownie, aby zainstalować.


13

Wszyscy wiedzą, że edycja pliku / etc / hosts rozwiązała problem, jeśli nazwa pliku etc / host była odpowiednia dla server.exmaple.com

jednak gospodarze nie byli poprawni

127.0.0.1 localhost
127.0.0.1 server

zmień to na:

127.0.0.1 localhost.localdomain  localhost
192.168.xxx.xxx  server.example.com   server

Uruchomiłem nazwę hosta -f i nazwę hosta --fqdn i otrzymałem następujące informacje.

server.example.com

Pomyślałem, że każdy chciałby wiedzieć.


5

Najprawdopodobniej twoje połączenie internetowe nie działa poprawnie. W szczególności uważam, że twój DNS nie rozwiązuje się poprawnie.

spróbuj dodać linię

nameserver 80.80.80.80 

dla Twojej /etc/resolv.conf

Spowoduje to tymczasowe dodanie serwera DNS Freenom (do następnego uruchomienia)


To jest wygenerowany plik. Jak mam to zarządzać?
chovy,

@chovy, jeśli nadal się nad tym zastanawiasz, możesz śmiało i sudoedit /etc/resolv.confzastąpić dowolny adres, 8.8.8.8aby rozwiązać tymczasowe problemy z DNS. Plik zostanie zregenerowany przy następnym uruchomieniu, więc nie możesz zrobić nic katastrofalnego, chyba że ponowne uruchomienie nie jest możliwe
Zanna

2

Otrzymałem wiadomość w mojej sieci domowej w systemie Ubuntu z dynamicznie przypisywanym adresem IP z routera zapewniającego połączony serwer DHCP i DNS dla mojej sieci.

Komunikat: hostname: Name or service not knownmoże być spowodowany awarią takiego urządzenia, choćby na chwilę.

Może się to na przykład zdarzyć, jeśli mój domowy router zostanie zrestartowany, gdy wyłączy się zasilanie.

Problem polega na tym, że usługa DHCP, na której polega sieć, zapomina o wszystkich przypisanych adresach IP i powiązanych nazwach domen. Gdy komputer sprawdza, czy powiązany serwer dns ma własną nazwę, serwer już go nie ma. Niektóre serwery DHCP mogą uniknąć problemów, zapisując przypisania na dysku lub pamięci flash, aby nic nie zostało utracone po ponownym uruchomieniu.


Serwer może zwykle pobrać twoją nazwę komputera z twojego systemowego żądania DHCP, ustawić ją na nazwę komputera .local i zapisać ją w swoich rekordach, udostępniając ją jednocześnie na powiązanym serwerze DNS. Zwykle hostname -fqdnżąda pełnej nazwy domeny przez serwer DNS i jeśli ma rekord, zwróci tę nazwę. .localPrzyrostek sprawia, że wyglądają jak ważny w pełni kwalifikowanej nazwy domeny (choć nie jest to prawidłowa nazwa domeny globalne). Dlatego może nie być konieczne ręczne określenie nazwy domeny w plikach / etc / hosts lub / etc / hostname.


Ponowne uruchomienie serwera DHCP może powodować dalsze problemy, ponieważ adresy IP mogą być przypisywane do wielu komputerów jednocześnie, powodując, że niektóre nie będą w stanie się komunikować. Adres jest przypisywany jeden raz przed ponownym uruchomieniem serwera i ponownie po tym.

Jeśli serwer DHCP zapomni przypisania, bezpieczną rzeczą jest ponowne podłączenie każdego obsługiwanego komputera po ponownym uruchomieniu. Kiedy straciłem swoją, po prostu odłączyłem się i ponownie połączyłem z punktem dostępowym Wi-Fi. W sieci przewodowej możesz używać ifdowni / ifuplub po prostu odłączyć i ponownie podłączyć kabel sieciowy. Po ponownym połączeniu mój system automatycznie używa dhclient, aby uzyskać nowy adres - mój komputer i serwer zgadzają się teraz, kim jestem, i komunikat nie jest już wyświetlany.

Jeśli zaczekasz wystarczająco długo, dzierżawa DHCP przekroczy limit czasu, a system poprosi o nową dzierżawę i dostanie nową od serwera - rozwiązując problem. Będzie to prawdopodobnie kilka godzin lub dni później (dla mojego serwera to jeden dzień).

Jeśli zdefiniowałeś statyczną nazwę IP i adres, a rekordy wyszukiwania wstecznego DNS są prawidłowe, problem nie powinien wystąpić.


1

Tego ranka natknąłem się na ten błąd i okazało się, że nazwa hosta została wpisana niepoprawnie /etc/hostname. Poprawienie tego, aby zgadzało się z pisownią nazwy hosta, /etc/hostsrozwiązało problem. hostname -b -F /etc/hostnameKomenda, która biegnie w czasie startu najwyraźniej nie może ukończyć chyba /etc/hostnamei /etc/hostszgadzają.


Ta odpowiedź rozwiązała dla mnie: Najpierw upewniłem się /etc/hostsi /etc/hostnamezgodziłem się. Następnie uruchomiłem „polecenie, które uruchamia się w czasie uruchamiania”, tylko bez -bflagi (ponieważ po prostu pozwala, aby określony plik nie istniał, ale jest tutaj). I bang: hostname --fqdnponownie zwraca poprawną nazwę FQDN.
isync
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.