コマンドが存在するかどうかをスクリプトで確認し、必要に応じてそのパッケージをインストールするように提案したいと思います。
Debian システムでは、dpgk
次のような特定のファイルを提供するパッケージを頻繁に探します。
$ dpkg -S */envsubst
gettext-base: /usr/bin/envsubst
すべてのLinuxシステムで動作するソリューションはありますか、それとも少なくとも最も一般的なシステムで動作しますか?
数行のコードがない場合は、いくつかのオープンソースライブラリも歓迎します。
答え1
PackageKitをサポートするディストリビューションでは、次のものを使用できます。
$ pkcon search file envsubst
Searching by file [=========================]
Starting [=========================]
Loading cache [=========================]
Querying [=========================]
Finished [=========================]
Installed gettext-base-0.21-4.amd64 (installed:debian-stable-main) GNU Internationalization utilities for the base system
Installed git-1:2.30.2-1+deb11u2.amd64 (installed:debian-stable-security-main) fast, scalable, distributed revision control system
残念ながら、ディストリビューション全体でより信頼性の高い結果を得るには、フルパスを指定する必要があります。つまり、あなたの場合は、可能な限りさまざまなインストール場所を試す必要があることを意味します。だからDebianでは:
$ pkcon search file /usr/bin/envsubst
Searching by file [=========================]
Loading cache [=========================]
Querying [=========================]
Finished [=========================]
Installed gettext-base-0.21-4.amd64 (installed:debian-stable-main) GNU Internationalization utilities for the base system
RHEL 8の場合:
$ pkcon search file /usr/bin/envsubst
Searching by file [=========================]
Finished [=========================]
Installed gettext-0.19.8.1-17.el8.x86_64 (installed:anaconda) GNU libraries and utilities for producing multi-lingual messages
Available gettext-0.19.8.1-14.el8.x86_64 (rhel-8-for-x86_64-baseos-rpms) GNU libraries and utilities for producing multi-lingual messages
command-not-found
多くのディストリビューションには、指定されたコマンドを使用可能にする方法(可能な場合)を知らせるか、タイプミス候補を提案するこの機能もインストールされています。
答え2
あなたはそれを使用することができますpkgs.orgあなたが望むほとんどのディストリビューションをサポートするオンラインWebサービスはアフィリエイト関係ではありませんが、非常に便利です。
CLIからインポートするには、月5ドルでAPIを購読し、小さなbash機能を構築して接続するだけです。