Perché ottengo il nome host: errore nome o servizio sconosciuto?


23

Ricevo questo errore ogni volta che installo pacchetti tramite 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)

Perché sta succedendo questo?


Ho avuto lo stesso problema, il problema era legato al fatto che il DNS non aiutava alcuna voce per il nome host, quindi il nome di dominio completo non era disponibile.

Risposte:


10

Soluzione:

(Questi tipi di problemi non hanno buone soluzioni. Ma solo alcuni haking-ish)

Dovresti prima provare questo comando in un terminale:

sudo apt-get -f install

Se non funziona, elaborare con la soluzione haking-ish .

Prova a spostare temporaneamente lo script di configurazione di ssmtp.

  1. Aprire un terminale ed eseguire questo comando per spostarli nella directory corrente

     sudo mv /var/lib/dpkg/info/ssmtp* .
    
  2. Quindi prova a usare apt-get

La causa del problema:

La precedente installazione o rimozione potrebbe non essere stata completata correttamente, lasciando alcuni passaggi di configurazione da eseguire per il ssmtppacchetto. Dato che dpkg non progredirà senza prima aver completato i passaggi, l'utilizzo successivo di apt-getora rimane bloccato su quel passaggio.


18

correre hostname --fqdn

Se ricevi un errore, modifica / etc / hostname e / etc / hosts con un nome host appropriato.

Quindi di aptitude install ssmtpnuovo per farlo installare.


13

Solo così tutti sanno, la modifica di / etc / hosts ha fatto il trucco che etc / hostname era giusto con server.exmaple.com

tuttavia gli host non erano corretti

127.0.0.1 localhost
127.0.0.1 server

cambiarlo in questo:

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

Ho eseguito hostname -f e hostname --fqdn e ho ottenuto quanto segue.

server.example.com

Ho pensato che tutti vorrebbero sapere.


5

Molto probabilmente la tua connessione Internet non funziona correttamente. In particolare, penso che il tuo DNS non si risolva correttamente.

prova ad aggiungere la linea

nameserver 80.80.80.80 

alla tua /etc/resolv.conf

Ciò aggiungerà temporaneamente il server DNS freenom (fino all'avvio successivo)


Questo è un file generato. Come lo gestisco?
Chovy

@chovy se ti stai ancora chiedendo questo, è sicuro andare avanti e sudoedit /etc/resolv.confsostituire qualsiasi indirizzo ci sia con 8.8.8.8per risolvere i problemi temporanei del DNS. Il file verrà rigenerato al prossimo avvio, quindi non puoi fare nulla di troppo disastroso qui a meno che il riavvio non sia un'opzione
Zanna

2

Ho ricevuto il messaggio sulla mia rete domestica su un sistema Ubuntu con un indirizzo IP assegnato dinamicamente da un router che fornisce un server DHCP e DNS combinato per la mia rete.

Il messaggio: hostname: Name or service not knownpuò essere causato dalla caduta di un tale dispositivo, anche se solo per un istante.

Ad esempio, ciò può accadere se il router di casa viene riavviato quando si spegne.

Il problema qui è che il servizio DHCP su cui si basa la tua rete dimentica tutti gli indirizzi IP che ha assegnato e i nomi di dominio associati. Quando il computer controlla il proprio server DNS associato per il proprio nome, il server non lo ha più. Alcuni server DHCP possono evitare problemi scrivendo le assegnazioni che hanno effettuato sul disco o sulla memoria flash, in modo da non perdere nulla al riavvio.


Il server può normalmente prendere il tuo nomecomputer dalla richiesta DHCP del tuo sistema, renderlo nomecomputer .local e archiviarlo nei suoi record, rendendolo disponibile nel suo server DNS associato contemporaneamente. Di solito hostname -fqdnrichiede il nome di dominio completo sulla rete dal server DNS e se ha il record restituirà quel nome. Il .localsuffisso lo fa sembrare un nome di dominio completo valido (sebbene non sia in realtà un nome di dominio globale valido). Questo è il motivo per cui potrebbe non essere necessario specificare manualmente un nome di dominio nei file / etc / hosts o / etc / hostname.


Il riavvio del server DHCP può causare ulteriori problemi in quanto gli indirizzi IP possono essere assegnati a più computer contemporaneamente, impedendo ad alcuni di comunicare. L'indirizzo viene assegnato una volta prima del riavvio del server e di nuovo successivamente.

Se il tuo server DHCP dimentica le sue assegnazioni, la cosa sicura da fare è ricollegare ogni computer che serve al riavvio. Quando ho perso il mio, mi sono semplicemente disconnesso e ricollegato al mio punto di accesso wifi. Su una rete cablata è possibile utilizzare ifdowne / ifupo semplicemente disconnettere e ricollegare il cavo di rete. Quando ricollego il mio sistema utilizza automaticamente dhclient per ottenere un nuovo indirizzo: il mio computer e il server ora concordano su chi sono e il messaggio non viene più visualizzato.

Se si attende abbastanza a lungo, il lease DHCP scadrà e il sistema richiederà e otterrà un nuovo lease dal server, risolvendo il problema. Probabilmente ci vorranno ore o giorni dopo (per il mio server è un giorno).

Se è stato definito un nome e un indirizzo IP statici e se i record di ricerca inversa DNS sono corretti, il problema non dovrebbe verificarsi.


1

Mi sono imbattuto in questo errore questa mattina e ho scoperto che il nome host era errato /etc/hostname. Correggendolo, si concordava con l'ortografia dell'hostname /etc/hostsrisolto il problema. Il hostname -b -F /etc/hostnamecomando che viene eseguito al momento del boot a quanto pare non possono completare se non /etc/hostnamee /etc/hostsd'accordo.


Questa risposta l'ha risolto per me: per prima cosa mi sono assicurato /etc/hostse sono /etc/hostnamed'accordo. Quindi ho eseguito il "comando che viene eseguito all'avvio", solo senza il -bflag (poiché consente semplicemente al file specificato di essere inesistente, ma è qui). E bang: hostname --fqdnrestituisce di nuovo il nome di dominio completo corretto.
isync,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.