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

der*_*ert 5 debian udev directory-structure initramfs

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

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

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

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

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

Gil*_*il' 4

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

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

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