Ich verwende Ubuntu 10.04 LTS und wenn ich den Befehl eingebe, hostname --fqdn
erhalte ich die folgende Meldung : hostname: Name or service not known
.
Aus diesem Grund kann ich nicht global
erfolgreich installieren und erhalte beim Versuch den folgenden Fehler:
Setting up global (5.7.1-1) ...
hostname: Name or service not known
dpkg: error processing global (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
global
E: Sub-process /usr/bin/dpkg returned an error code (1)
Mein /etc/nsswitch.conf
ist unten.
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Hat jemand eine Idee, was dies bedeutet und wie ich das beheben kann?
linux
ubuntu
networking
hostname
RadiantHex
quelle
quelle
Antworten:
Können Sie den Inhalt von bereitstellen
/etc/nsswitch.conf
?Es sieht so aus, als hätte /etc/nsswitch.conf einen schlechten Wert für die Zeile "hosts". Beginnt es mit "Dateien"?
Andernfalls wird der FQDN festgelegt, indem Sie / etc / hosts bearbeiten und den FQDN in die Zeile setzen, in der der Hostname angezeigt wird. Angenommen, Sie haben einen Hostnamen "foo" und finden eine Zeile:
Sie würden es so bearbeiten:
foo.localdomain
wäre dein neuer FQDN.quelle
Bearbeiten Sie / etc / hosts, um Ihren vollqualifizierten Domänennamen hinzuzufügen
Informationen zur Syntax finden Sie hier: http://www.faqs.org/docs/securing/chap9sec95.html
Update: Wenn Sie Ihre Frage noch einmal durchlesen, klingt es fast so, als hätten Sie entweder Ihren Pfad nicht richtig eingestellt oder es stimmt etwas mit dem Hostnamen-Programm nicht.
mache 'welchen Hostnamen'
Es sollte mit dem Pfad '/ bin / hostname' zurückkehren.
Wenn das funktioniert, versuchen Sie den Befehl erneut wie folgt:
'/ bin / hostname --fqdn'
quelle
Im Gegensatz zum einfachen
hostname
Befehlsaufruf versucht der Aufrufhostname --fqdn
, einige weitere Dinge zu tun, was häufig zu einigen DNS-Suchvorgängen führt.Nehmen Sie zum Beispiel den folgenden (erfolgreichen) Aufruf (dies ist aus einer Red Hat-Box, aber ich würde mir vorstellen, dass es für Ubuntu dasselbe sein sollte):
Beachten Sie die sehr hilfreiche
--verbose
Option.Kurz gesagt, alles andere als ein einfaches
hostname
macht wahrscheinlich mehr als Sie erwarten. Hier ist ein weiteres Beispiel:Und um es abzurunden:
Beachten Sie, dass der Hostname eines Systems (wie von gethostname zurückgegeben) ein nicht qualifizierter Hostname sein kann, z. B. nur 'myserver'. Aus diesem Grund verwendet das Programm, das Sie installieren möchten,
hostname --fqdn
stattdessen das.Die Fehlermeldung
hostname: Name or service not known
stammt von den Resolver- Funktionen: Dies sind die Teile der Systembibliothek, die zwischen Namen und Adressen (normalerweise DNS-Namen und IP-Adressen) übersetzt werden.Tatsächlich kann der Resolver mehr als nur DNS (und mehr als nur zwischen Hostnamen und IP-Adressen übersetzen). Sein Verhalten wird teilweise durch die Datei konfiguriert. In der
/etc/nsswitch.conf
Regel wird Folgendes angezeigt, normalerweise in dieser Reihenfolge:(Beachten Sie, dass Sie auch einen Caching-DNS-Server wie dnsmasqd haben können --- für den oben genannten Punkt, der sich noch unter dem 'dns'-Mechanismus befindet).
Es sei darauf hingewiesen, dass Tools wie dig , host und das ehrwürdige nslookup dieser Reihenfolge nicht folgen. Sie sind explizit DNS-Abfragetools. Dies bedeutet, dass Sie, wenn Sie sich auf sie verlassen (z. B. in einem Skript), möglicherweise ein anderes Ergebnis erhalten als bei normalen Client-Programmen (die den System-Resolver verwenden). Verwenden Sie aus diesem Grund das Programm getent in Skripten, insbesondere wenn eine Caching-Komponente wie nscd ausgeführt wird.
Der Schlüssel zum Erfolg hier ist also, dass a) wenn Sie / etc / hosts gut mit einem Eintrag für Ihren eigenen Computer konfiguriert haben und b) Ihre /etc/nsswitch.conf die übliche Konfiguration hat -
hosts: files dns
in dieser Reihenfolge, dann c) sogar Wenn Sie DNS in Ihrer Umgebung nicht gut konfiguriert haben,hostname --fqdn
sollte dies funktionieren.In einem gut konfigurierten DNS wird erwartet, dass Sie eine "umgekehrte" Adresse (einen "PTR-Eintrag") haben, die den "kanonischen" Namen Ihres Servers angibt, und dieser Name sollte auch nachgeschlagen werden können (ein " Ein Datensatz "für IPv4).
Kurzfassung: hinzufügen
--verbose
; es wird Sie auf das hinweisen, was Ihnen fehlt.Ich hoffe, das hilft Ihnen zu verstehen, was los ist.
quelle