我有两个 Debian 虚拟机,它们是从相同的 netinstall iso 构建的,但可能安装了不同的软件包。其中一个有/etc/exports
用于 nfs 安装的文件,但另一个没有。我希望他们都拥有由包管理器安装的这个文件。
我来自 Fedora 世界,如果我还在其中,我会的yum whatprovides /etc/exports
。有人告诉我在 Debian 土地上,我应该这样做apt-file search
。但是,我没有得到任何结果:
apt-file update
apt-file search /etc/exports
我在这里缺少什么?
答案1
当您正在查找属于您计算机上安装的软件包的文件时,您可以使用dpkg -S
(相当于dpkg-query -S
):
dpkg -S /etc/exports
在这种情况下,虽然它不会找到任何东西,因为/etc/exports
是由维护者脚本创建的(并且该类型的文件明确不由 处理dpkg-query
,或者就此而言由 处理apt-file
)。
因此,如果apt-file
找不到dkpg -S
文件,您可以尝试查看维护者脚本:
grep /etc/exports /var/lib/dpkg/info/*
这应该与nfs-kernel-server
的维护者脚本匹配;这就是创建 的包/etc/exports
,至少在我的 NFS 服务器上是这样。
答案2
在 Debian 上,/etc/exports
不包含在任何软件包中。有一个示例配置文件:
/usr/share/nfs-kernel-server/conffiles/etc.exports
您可以将其复制到 /etc/exports 并对其进行编辑以使您满意(很可能有一些 nfs 安装后设置将其复制到/etc
)。该文件作为包的一部分提供nfs-kernel-server
:
$ apt-file search /usr/share/nfs-kernel-server/conffiles/etc.exports
nfs-kernel-server: /usr/share/nfs-kernel-server/conffiles/etc.exports
答案3
如果没有apt-file
,并且如果您要查找的软件包未安装(那么dpkg -S
就是您的朋友),您可以在 Debian 网站上查找该文件:
不过,使用 Web 表单可能更容易(我有一个 shell 函数,可以$BROWSER
为我扩展此 URL):
- https://www.debian.org/distrib/packages#search_contents(也于https://packages.debian.org/) 适用于 oldstable、stable、testing、unstable、experimental 和相关向后移植
- http://archive.debian.net/#search_contents对于较旧的 Debian 版本,例如 sarge、etch、lenny 等
至于/etc/exports
- 正如上述站点所示,它不直接包含在任何包中。但是,如果您已经安装了该软件包,则可以在维护者脚本中 grep 查找它:
fgrep -r etc/exports /var/lib/dpkg/info
结果包含/var/lib/dpkg/info/nfs-kernel-server.postinst
,它指向我们目前已知的该文件的罪魁祸首。
如果失败,您可以在网站上搜索类似名称的文件。此搜索“包含名称中包含关键字的文件的包”结果太多,但正在搜索以关键字结尾的路径只有 14 个结果,其中之一是/usr/share/nfs-kernel-server/conffiles/etc.exports nfs-kernel-server [not kfreebsd-amd64, kfreebsd-i386]
,这正是我们要查找的结果。
AIUI 还没有对所有软件包的维护者脚本进行基于 Web 的搜索(还?)。
答案4
该文件/etc/exports
是一个配置文件。由于默认情况下不导出任何文件系统,因此默认情况下不会创建该文件或仅包含注释。
如果您想要从虚拟机导出某些内容,则应创建该文件并确保安装并启用相关的 NFS 服务器包。如果您不想导出任何 NFS 文件系统,则不需要此文件。