![为什么我会收到主机名:名称或服务未知错误?](https://linux22.com/image/1111664/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BC%9A%E6%94%B6%E5%88%B0%E4%B8%BB%E6%9C%BA%E5%90%8D%EF%BC%9A%E5%90%8D%E7%A7%B0%E6%88%96%E6%9C%8D%E5%8A%A1%E6%9C%AA%E7%9F%A5%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我通过以下方式安装任何软件包时都会收到此错误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
。
打开终端并执行此命令将它们移动到当前目录
sudo mv /var/lib/dpkg/info/ssmtp* .
然后尝试使用
apt-get
问题原因:
之前的安装或卸载可能未成功完成,留下一些软件包配置步骤需要完成ssmtp
。由于 dpkg 在没有先完成这些步骤的情况下无法继续,因此后续使用apt-get
now 会卡在该步骤上。
答案4
今天早上我遇到了这个错误,结果发现主机名在 中拼写错误/etc/hostname
。更正此错误,使其与 中的主机名拼写一致,/etc/hosts
问题就解决了。hostname -b -F /etc/hostname
启动时运行的命令显然无法完成,除非/etc/hostname
和/etc/hosts
一致。