为什么无法在 ebuilds 中为二进制文件指定安装选项?
Why is there no way to specify install options for binaries in ebuilds?
Gentoo 的 ebuild 机制带有几个内置的 eclasses/commands 来管理(除其他外)库、二进制文件、可执行文件等...其中一些在安装阶段非常有用,比如设置权限,修改默认安装目录等...
关于库的安装,ebuild documentation说:
dolib [list of more libraries]
Installs a library or a list of libraries into DESTTREE/lib. Creates all necessary dirs.
libopts [options for install(1)]
Can be used to define options for the install function used in the dolib functions. The default is -m0644.
同样适用于“可执行文件”:exeopts 与 doexe 一起使用。
问题
我真的不明白的是为什么dobin和dosbin存在而binopts 和 sbinopts?
是否可能有 libopts 或 exeopts 等同于 dobin 和 dosbin,在安装阶段管理权限?
因为dobin
和dosbin
是doexe
的特例,它们有预定义的选项;如果您需要特殊权限(例如 suid),您可以根据需要使用 doexe
。
实际上 (/usr)/bin
和 (/usr)/sbin
应该对所有用户都可执行,除非需要一些特殊的东西(比如限制对有权访问硬件的组的访问)。
(我可能也赞成删除 libopts
,但我想那是另外一回事了。)
Gentoo 的 ebuild 机制带有几个内置的 eclasses/commands 来管理(除其他外)库、二进制文件、可执行文件等...其中一些在安装阶段非常有用,比如设置权限,修改默认安装目录等...
关于库的安装,ebuild documentation说:
dolib [list of more libraries]
Installs a library or a list of libraries into DESTTREE/lib. Creates all necessary dirs.
libopts [options for install(1)]
Can be used to define options for the install function used in the dolib functions. The default is -m0644.
同样适用于“可执行文件”:exeopts 与 doexe 一起使用。
问题
我真的不明白的是为什么dobin和dosbin存在而binopts 和 sbinopts?
是否可能有 libopts 或 exeopts 等同于 dobin 和 dosbin,在安装阶段管理权限?
因为dobin
和dosbin
是doexe
的特例,它们有预定义的选项;如果您需要特殊权限(例如 suid),您可以根据需要使用 doexe
。
实际上 (/usr)/bin
和 (/usr)/sbin
应该对所有用户都可执行,除非需要一些特殊的东西(比如限制对有权访问硬件的组的访问)。
(我可能也赞成删除 libopts
,但我想那是另外一回事了。)