ホスト名を取得する理由:名前またはサービスが不明なエラーですか?


23

を介してパッケージをインストールすると、このエラーが発生します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)

なぜこれが起こっているのですか?


私は同じ問題を抱えていました、問題はDNSがホスト名のエントリを助けなかったという事実に関連していました-したがって、FQDNは利用できませんでした。

回答:


10

溶液:

(これらのタイプの問題には良い解決策はありません。しかし、いくつかの問題があります)

まず、ターミナルでこのコマンドを試してください:

sudo apt-get -f install

動作しない場合は、もやしっぽいソリューションで処理します。

の構成スクリプトを一時的に移動してみてくださいssmtp

  1. ターミナルを開いてこのコマンドを実行し、現在のディレクトリに移動します

     sudo mv /var/lib/dpkg/info/ssmtp* .
    
  2. 次に使用してみてください apt-get

問題の原因:

以前のインストールまたは削除が正常に完了せず、ssmtpパッケージの構成手順が残っている場合があります。dpkgは最初にステップを完了するまで進行しないため、その後の使用はapt-getそのステップにとどまります。


18

走る hostname --fqdn

エラーが発生した場合は、適切なホスト名で/ etc / hostnameおよび/ etc / hostsを編集します。

その後、aptitude install ssmtpもう一度インストールします。


13

誰もが知っているように、/ etc / hostsの編集は、etc。/ hostnameがserver.exmaple.comで正しいトリックを実行した

しかし、ホストは正しくありませんでした

127.0.0.1 localhost
127.0.0.1 server

これに変更します:

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

hostname -fおよびhostname --fqdnを実行すると、次の結果が得られました。

server.example.com

誰もが知りたいと思っただけです。


5

インターネット接続が適切に機能していない可能性があります。具体的には、DNSが適切に解決されていないと思います。

行を追加してみてください

nameserver 80.80.80.80 

あなたへ /etc/resolv.conf

これにより、(次のブートまで)freenom DNSサーバーが一時的に追加されます。


それは生成されたファイルです。どのように管理しますか?
チョビー

@chovyまだこれについて疑問に思っているなら、一時的なDNSの問題を解決するためsudoedit /etc/resolv.confに、先に進んでそこにあるアドレスを置き換えても安全8.8.8.8です。あなたがここにあまりにも悲惨な何もできないので、再起動はオプションではありませんしない限り、このファイルは、次回の起動時に再生成されます
Zanna

2

Ubuntuシステムのホームネットワークで、ネットワークにDHCPサーバーとDNSサーバーを組み合わせたルーターから動的に割り当てられたIPアドレスを持つメッセージを受け取りました。

メッセージ:hostname: Name or service not knownそのようなデバイスが一瞬だけダウンした場合に発生します。

たとえば、電源が切れたときにホームルーターを再起動すると、これが発生する可能性があります。

ここでの問題は、ネットワークが依存しているDHCPサービスが、割り当てたすべてのIPアドレスと関連するドメイン名を忘れてしまうことです。お使いのコンピューターが、関連付けられているDNSサーバーの名前を確認すると、サーバーにはその名前がありません。一部のDHCPサーバーは、ディスクまたはフラッシュメモリに行った割り当てを書き込むことで問題を回避できるため、再起動しても何も失われません。


サーバーは通常、システムのDHCPリクエストからコンピューター名を取得し、コンピューター名 .localにしてレコードに保存し、関連するDNSサーバーで同時に利用できるようにします。通常hostname -fqdn、ネットワーク経由でDNSサーバーから完全なドメイン名を要求し、レコードがある場合はその名前を返します。.local接尾辞は、それが有効な完全修飾ドメイン名(それが本当に有効なグローバルドメイン名ではありませんが)のように見えます。これが、/ etc / hostsまたは/ etc / hostnameファイルでドメイン名を手動で指定する必要がない場合があるためです。


DHCPサーバーが再起動すると、IPアドレスが複数のコンピューターに同時に割り当てられ、一部のコンピューターが通信できなくなるため、さらに問題が発生する場合があります。アドレスは、サーバーが再起動する前に一度割り当てられ、再起動後に再び割り当てられます。

DHCPサーバーがその割り当てを忘れた場合、安全なことは、再起動したときにサービスを提供する各コンピューターを再接続することです。私が私のものを失ったとき、私は単に私の無線LANアクセスポイントに切断して再接続しました。有線ネットワーク上では使用することができますifdownし、ifupあるいは単にネットワークケーブルを切断し、再接続します。システムを再接続すると、自動的にdhclientを使用して新しいアドレスが取得されます。私のコンピューターとサーバーは、私が誰であるかについて同意し、メッセージは表示されなくなりました。

十分に長く待つと、DHCPリースがタイムアウトになり、システムはサーバーに新しいリースを要求して取得します(問題を解決します)。これはおそらく数時間または数日後です(私のサーバーでは1日です)。

静的IP名とアドレスを定義していて、DNS逆引き参照レコードが正しい場合、問題は発生しません。


1

今朝、このエラーに遭遇し、ホスト名のスペルが間違っていることが判明しました/etc/hostname。これを修正して、ホスト名のスペルに同意し/etc/hosts、問題を解決しました。hostname -b -F /etc/hostname起動時に実行されますが、明らかにしない限り、完了しないことを命令/etc/hostnameし、/etc/hosts同意するものとします。


この答えは私のためにそれを解決しました:最初に私は確かめ/etc/hosts/etc/hostname同意します。次に、-bフラグなしで「ブート時に実行するコマンド」を実行しました(指定されたファイルが存在しないようにするだけですが、ここにあります)。bang:hostname --fqdn適切なFQDNを再度返します。
isync
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.