我试图找出/etc/nsswitch.conf
我的 Debian 机器上属于哪个软件包,但dpkg --search /etc/nsswitch.conf
不告诉我。有人知道吗?
答案1
该文件属于基本文件包裹。您可以使用以下 apt-file 命令查看文件属于哪个包:
sudo apt-get install apt-file
apt-file update
apt-file search nsswitch.conf
检查 debian README 文件以获取有关基本文件包中某些文件的说明
cat /usr/share/doc/base-files/README
问:最近升级系统后,我注意到基本文件中的某些文件与全新安装的squeeze 上安装的文件不匹配。我不应该被警告吗?
A. 这些文件是配置文件,因此它们完全在系统管理员的控制之下。基本文件安装的文件只是默认文件。默认文件中的更改不足以警告用户,因为策略还应将提示减少到最低限度。这也是它们不通过 dpkg 的 conffile 机制处理的原因。
在任何一种情况下,如果您想“升级”这些文件,只需查看基本文件的 postinst(即 /var/lib/dpkg/info/base-files.postinst),您就会看到它们是如何创建的以及在哪里创建的他们的原版是:
install_from_default /usr/share/base-files/nsswitch.conf /etc/nsswitch.conf
install_from_default /usr/share/base-files/dot.profile /root/.profile
install_from_default /usr/share/base-files/dot.bashrc /root/.bashrc
install_from_default /usr/share/base-files/profile /etc/profile
install_from_default /usr/share/base-files/motd /etc/motd
因此,如果您希望您的系统尽可能与新安装的挤压系统相似,您可能需要手动同步这些文件。
答案2
dpkg --search
不显示/etc/nsswitch.conf
,因为它没有注册为配置文件所以这有点特殊。例如,dpkg -S /etc/deluser.conf
可用于识别拥有/etc/deluser.conf
文件的包。
省略路径dpkg --search nsswitch.conf
实际上显示结果。
我也喜欢定位实用程序对于查找哪个包拥有文件非常有帮助。dlocate
是更快的替代方案dpkg -S
。
apt-file
对于搜索未安装的软件包中的文件最有用。
答案3
File Packages
/usr/share/base-files/nsswitch.conf base-files
我从那里得到这个https://packages.debian.org/index并在“内容”下搜索
答案4
这里已经有一些很好的答案,我只需要补充一点,尽管对于评论来说似乎太多了:
对我来说,有四个软件包似乎参与其中:
martind@swiftboat:~$ grep -l /etc/nsswitch.conf /var/lib/dpkg/info/*.postinst
/var/lib/dpkg/info/base-files.postinst
/var/lib/dpkg/info/libc-bin.postinst
/var/lib/dpkg/info/libnss-mdns:amd64.postinst
/var/lib/dpkg/info/libnss-myhostname:amd64.postinst
martind@swiftboat:~$
base-files 提供的功能比 libc-bin 多:
martind@swiftboat:~$ diff /usr/share/{libc-bin,base-files}/nsswitch.conf
9a10
> gshadow: files
martind@swiftboat:~$
libnss-mdns 将 mdns 添加到主机行。 libnss-myhostname 在那里添加了 myhostname,有可能消除对 /etc/hosts 的需要,如果不是这样的话推荐的方式让主机名 --fqdn 起作用。