在/ usr可用之前运行的本地软件的安装位置?

Modified on: Sat, 30 Jun 2018 08:36:00 +0800

我正在编写一个由udev IMPORT{program}规则调用的本地程序。通常,我会在/usr/local中安装本地软件,但是当出现块设备时会运行这些udev规则。因此,在必须安装/usr之前,它们已经运行很久了。

我相信我还必须将其配置为复制到initramfs(可以使用/etc/initramfs-tools/hooks/轻松完成)。通常情况下,在initramfs上使用与根文件系统相同的路径。 (编辑:看来我实际上不必将它添加到initramfs,挂载rootfs后重新触发事件)

/etc受版本控制,因此最好避免使用二进制文件。

我认为我最好的选择可能只是在/lib/udev中,在local-开头的文件名下安装它,以避免与任何未来发生冲突来自发行版的文件。这也使得udev规则文件更漂亮(因为它不需要指定完整路径)。

这台机器正在运行Debian Squeeze。这个文件有一些标准位置吗?我不相信FHSDebian Policy指定了一个。

最佳答案

如果由deb包提供,我会将它们放在/lib/udev中,否则放在/etc中。

如果你在多台机器上部署程序,我建议制作deb软件包;它将使部署和版本跟踪更容易。 Debian wiki有相关信息,或者您可以阅读Debian新维护者指南(忽略非技术位)。 dh使这变得轻而易举(甚至还有一个dh_installudev)。

如果这只适用于一台机器,我也会将二进制文件放在版本控制中,否则请检查源代码和makefile并忽略二进制文件。您可能还想在/lib/udev中放置一个符号链接。我不建议在/lib/udev中放置一个非打包的文件,因为你会忘记它。

作者:Gilles

相关问答

添加新评论