FHSは/usr/binのサブディレクトリを実際に禁止しますか?

FHSは/usr/binのサブディレクトリを実際に禁止しますか?

Lintianラベルの説明:

ファイルシステム階層標準は、/usr/bin/mhではなく/usr/binに新しいディレクトリをインストールすることを禁止しています。

しかし、私が見つけることができるリンクされたドキュメントは次のとおりです。

これは、システムで実行可能なコマンドのホームディレクトリです。

これ許可する実行可能なコマンドはそこにありますが、何も無効にしません。 Lin Tianはどの段落に言及していますか?

私がサブディレクトリをここに置くのが好きなのは、ユーザーがバイナリの代わりに使用するラッパースクリプトがあり、プログラムを「インストール」するときにラッパースクリプトを変更せずに動作したいからです。簡単に言えば、スクリプトは次のようになります。

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

おすすめ記事