一部のLinuxディストリビューション(...通常Ubuntuなどの初心者になじみのあるディストリビューション)で特定のパッケージに属するコマンドを実行しようとすると、実際の設置はしないシステムは次のような有用なメッセージを受け取ります。
"unknown command; it is found though in [package] or [other-package]."
(...正確な表現は覚えていません。文字通り現在そのシステムにアクセスできません。)私はそれが一種のBash + APTマジックだと思います(少なくともUbuntuの場合)。
私の質問は...どのソフトウェアがこれを達成することができ、基本的に提供されていないシステムでこれを実現するための追加文書をどこで見つけることができますか? (...または、少なくとも「パッケージ名のバイナリ名」データベースをどこで見つけることができますか?)
ベストアンサー1
はい、シェル+ APT「魔法」の組み合わせです(参照:仕様はこちら)。
Bashはコマンドが見つからないハンドラをサポートします。コマンドが見つからず、名前付きシェル関数がある場合は、command_not_found_handle
そのコマンドを呼び出します。一般的にcommand-not-found
(Debian派生物から)またはPackageKit-command-not-found
このハンドラの実装が提供されています(Fedoraおよび関連ディストリビューション、Debianでも利用可能)。
データベースはさまざまです。 Debian はapt-file
デフォルトでデータベースに付属しています。読んでください。Debianもっと学ぶ。 PackageKit 実装は PackageKit に関連情報を要求します。