为什么我会收到主机名:名称或服务未知错误?

为什么我会收到主机名:名称或服务未知错误?

我通过以下方式安装任何软件包时都会收到此错误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)

为什么会发生这种情况?

答案1

跑步hostname --fqdn

如果出现错误,请使用正确的主机名编辑 /etc/hostname 和 /etc/hosts。

然后aptitude install ssmtp再次进行安装。

答案2

编辑/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

答案3

解决方案:

(这类问题没有好的解决方案。只有一些 hacking-ish)

您应该首先在终端中尝试此命令:

sudo apt-get -f install

如果不起作用,请使用哈金式解决方案。

尝试暂时移动的配置脚本ssmtp

  1. 打开终端并执行此命令将它们移动到当前目录

      sudo mv /var/lib/dpkg/info/ssmtp* .
    
  2. 然后尝试使用apt-get

问题原因:

之前的安装或卸载可能未成功完成,留下一些软件包配置步骤需要完成ssmtp。由于 dpkg 在没有先完成这些步骤的情况下无法继续,因此后续使用apt-getnow 会卡在该步骤上。

答案4

今天早上我遇到了这个错误,结果发现主机名在 中拼写错误/etc/hostname。更正此错误,使其与 中的主机名拼写一致,/etc/hosts问题就解决了。hostname -b -F /etc/hostname启动时运行的命令显然无法完成,除非/etc/hostname/etc/hosts一致。

相关内容