什么是 nss-myhostname?为什么它不能安装?

use*_*632 50 package-management apt dmesg

dmesg 显示线

systemd-hostnamed[3964]: Warning: nss-myhostname is not installed. 
Changing the local hostname might make it unresolveable. Please install nss-myhostname!    
Run Code Online (Sandbox Code Playgroud)

sudo apt-get install nss-myhostname

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
E: Paket nss-myhostname kann nicht gefunden werden.
Run Code Online (Sandbox Code Playgroud)

...意思是“找不到 nss-myhostname”。

为什么?我必须对 dmesg 消息做出反应吗?

yoy*_*ma2 30

有一个针对 systemd-hostnamed的已确认错误记录说;

由于 nss-myhostname 被拒绝作为https://bugs.launchpad.net/ubuntu/+source/libnss-myhostname/+bug/1162478/comments/6 中的正确方法,我们不应在 LTS 中打印警告消息发布,即使 hostnamed 当前没有修改 /etc/hosts。

我们能否修补此警告以防止用户认为他们的系统出现问题并引导他们安装 libnss-myhostname?。

尽管它可以避免警告,但您可能不想仅为此目的安装 libnss-myhostname。

任何看到消息的机构

 systemd-hostnamed
[16495]: Warning: nss-myhostname is not installed. Changing the local hostname might make it unresolveable. Please install nss-myhostname!
Run Code Online (Sandbox Code Playgroud)

必须阅读这个 https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1277608 这个 https://bugs.launchpad.net/ubuntu/+source/libnss-myhostname/+bug/1162478/comments /6在安装 nss-myhostname 包之前。


job*_*bin 27

这里

nss-myhostname 是 GNU C 库 (glibc) 的 GNU 名称服务切换 (NSS) 功能的插件,为 gethostname(2) 返回的本地配置的系统主机名提供主机名解析有两种可能的解决方案:

  • 您可能没有(或错误地)在/etc/hosts. 更正可能会解决此问题。

  • 正如警告所暗示的那样,另一种方法是安装 nss-myhostname,它在 debian 中被称为libnss-myhostname. 这只是一种解决方法,而不是相关错误的建议解决方案。安装使用:

    sudo apt-get install libnss-myhostname
    
    Run Code Online (Sandbox Code Playgroud)

来源:13.04 dmesg:警告:未安装 nss-myhostname

  • 有没有办法合并答案?我觉得您的回答没有考虑 yoyoma2 强调的内容,因为不建议纯粹为了防止 dbus 消息请求而安装该软件包。这是 yoyoma2 突出显示的已知错误。yoyoma2 还解释了“为什么?我必须对 dmesg 消息做出反应吗?” 问的问题的一部分。我看不出如何在不完全更改答案的情况下编辑您的答案! (5认同)

Ken*_*arp 6

我怀疑你会想要安装这些库。既然它只是一种滋扰,您可以简单地将消息静音。

在其中创建一个新的配置文件/etc/rsyslog.d/并告诉要删除的消息:

$ sudo nano /etc/rsyslog.d/20-systemd-hostnamed.conf
Run Code Online (Sandbox Code Playgroud)

添加以下单行:

:msg, contains, "Warning: nss-myhostname is not installed." stop
Run Code Online (Sandbox Code Playgroud)

保存并关闭,然后重新启动守护进程:

$ sudo service rsyslog restart
Run Code Online (Sandbox Code Playgroud)

任务完成。您可以通过故意尝试向您发送垃圾邮件来确保邮件被丢弃syslog

$ logger -t TEST "Warning: nss-myhostname is not installed."
Run Code Online (Sandbox Code Playgroud)

该消息应该被悄悄丢弃。