问题描述
每当我通过 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)
为什么会这样?
最佳方案
运行 hostname --fqdn
如果出现错误,请使用正确的主机名编辑 /etc/hostname 和 /etc/hosts。
然后 aptitude install ssmtp
再次安装。
次佳方案
编辑 /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
第三种方案
解决方案:
(这类问题没有很好的解决方案。但只有一些haking-ish)
您应该首先在终端中尝试此命令:
sudo apt-get -f install
如果不起作用,请使用 haking-ish 解决方案进行处理。
尝试暂时移动 ssmtp
的配置脚本。
-
打开终端并执行此命令将它们移动到当前目录
sudo mv /var/lib/dpkg/info/ssmtp* .
-
然后尝试使用
apt-get
问题的原因:
之前的安装或删除可能无法成功完成,需要为 ssmtp
包完成一些配置步骤。因为,如果不先完成这些步骤,dpkg 将无法进行,因此 apt-get
的后续使用现在卡在该步骤上。
第四种方案
您的互联网连接很可能无法正常工作。具体来说,我认为您的 DNS 解析不正确。
尝试添加该行
nameserver 80.80.80.80
到您的 /etc/resolv.conf
这将临时添加 freenom DNS 服务器(直到下次启动)