Lintianタグの説明:
ファイルシステム階層標準では、/ usr/bin/mh以外の/ usr/binに新しいディレクトリをインストールすることは禁止されています。
ただし、リンクされたドキュメントを見つけることができるのは
これは、システム上の実行可能コマンドのプライマリディレクトリです。
これ許可実行可能コマンドはそこに移動しますが、何も禁止しません。リンティアンはどの段落を参照していますか?
サブディレクトリを配置するのが好きな理由は、ユーザーがバイナリの代わりに使用するラッパースクリプトがあり、プログラムを「インストール」するときにラッパースクリプトを変更せずに機能させたいからです。要するに、スクリプトは次のようになります
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のセクション4.4.2、バージョン3. 、具体的には
/usr/bin
にサブディレクトリがあってはなりません。
Lintianを使用しているので、Debianまたはその派生物をターゲットにしていると思います。このような環境では、バイナリの適切な場所は/usr/lib
のパッケージ固有のサブディレクトリです。 Debianとその派生物は/usr/libexec
を使用しません。