Fhs

/usr/bin 中的子目錄是否真的被 FHS 禁止

  • July 28, 2017

臨田標籤說明:

文件系統層次標準禁止在 /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,但是在安裝過程中必須更改腳本。

FHS 3.0 版的第 4.4.2 節特別指出

中不能有子目錄/usr/bin

由於您使用的是 Lintian,我想您的目標是 Debian 或衍生產品;在這樣的環境中,二進製文件的適當位置是/usr/lib. Debian 及其衍生產品不使用/usr/libexec.

引用自:https://unix.stackexchange.com/questions/382438