返回介绍

binfmt.d 中文手册

发布于 2020-11-08 09:27:14 字数 2277 浏览 2020 评论 0 收藏 0

名称

binfmt.d — 在系统启动时为可执行文件配置额外的二进制格式

大纲

/etc/binfmt.d/*.conf

/run/binfmt.d/*.conf

/usr/lib/binfmt.d/*.conf

描述

在系统启动时,systemd-binfmt.service(8)会从上述目录中读取配置文件,并根据配置文件的指引,在内核中为可执行文件注册额外的二进制格式。

配置文件格式

每个配置文件都包含一个 binfmt_misc 内核二进制格式规范的列表。参见内核的 binfmt-misc.rst 文档以了解如何注册额外的二进制格式,以及如何编写规则。[译者注]《如何在Linux下指定特定类型的文件用特定的程序打开》也是篇不错的参考文章。

空白行和以 # 或 ; 开头的行将被忽略。这意味着不能在二进制格式规则中将 # 与 ; 用作分隔符。

配置目录及其优先级

配置文件依次从/etc/, /run/, /usr/lib/目录中读取。配置文件的名称必须符合 filename.conf 格式。对于不同目录下的同名配置文件,仅以优先级最高的目录中的那一个为准。具体说来就是:/etc/ 的优先级最高、/run/ 的优先级居中、/usr/lib/ 的优先级最低。

软件包应该将自带的配置文件安装在/usr/lib/ 目录中。/etc/ 目录仅供系统管理员使用。所有的配置文件(无论位于哪个目录中),统一按照文件名的字典顺序处理。如果在多个配置文件中设置了同一个选项,那么仅以文件名最靠后(字典顺序)的那一个为准。为了便于排序,建议给所有配置文件都加上两位十进制数字的文件名前缀。

如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件,那么最佳做法是在 /etc/ 目录中创建一个指向 /dev/null 的同名符号链接,即可彻底屏蔽 /usr/lib/ 目录中的同名文件。如果软件包自带的某个配置文件位于 initrd 镜像中,那么还必须重新生成 initrd 镜像。

例子

例 1. /etc/binfmt.d/wine.conf 文件:

[译者注]关于Java的实例可以查看 Binfmt misc for Java(ArchLinux Wiki) 以及OpenSuSE的 java-binfmt-misc 软件包。

# 在执行 Windows 程序时启动 WINE
:DOSWin:M::MZ::/usr/bin/wine:

参见

systemd(1),systemd-binfmt.service(8),systemd-delta(1),wine(8)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文