林田标签说明:
文件系统层次结构标准禁止在 /usr/bin 中安装除 /usr/bin/mh 之外的新目录。
但是,我所能找到的链接文档是
这是系统上可执行命令的主目录。
这允许可执行命令去那里,但它不禁止任何事情。林天指的是哪一段?
我喜欢在那里放置子目录的原因是我有一个包装脚本,用户使用它而不是二进制文件,并且我希望包装脚本在“安装”程序时无需更改即可工作。简而言之,脚本看起来像
options=()
debug=0
mode="rel"
for option in "$@"; do
if [ "$option" == "--debug" ]; then
debug=1
mode="dbg"
else
options+=("$option")
fi
done
current_dir=$(dirname "`readlink -f "${BASH_SOURCE[0]}"`")
binary="$current_dir"/__anja_"$mode"_"$arch"/anja
if [ $debug -eq 1 ]; then
gdb --args "$binary" "${options[@]}"
else
exec "$binary" "${options[@]}"
fi
其中arch
是从 推导出来的/proc/cpuinfo
。构建系统在__anja_"$mode"_"$arch"
项目根目录的 目录中发出二进制文件。
是的,真正的二进制文件的正确位置是/usr/libexec
,但是在安装过程中必须更改脚本。
答案1
FHS 3.0 版第 4.4.2 节,特别指出
中不能有子目录
/usr/bin
。
既然你使用的是 Lintian,我想你的目标是 Debian 或衍生版本;在这样的环境中,二进制文件的适当位置是/usr/lib
. Debian 及其衍生版本不使用/usr/libexec
.