Debian でパッケージのインストール提案を実装するには?

Debian でパッケージのインストール提案を実装するには?

Ubuntuで次のように入力すると、次のことがわかりました。

mc

まだインストールされていませんが、次のメッセージが表示されます。

The program 'mc' is currently not installed. You can install it by typing: sudo apt-get install mc

しかし Debian ではこれはできません。 「-bash:/usr/bin/mc: ファイルまたはディレクトリがありません」というメッセージのみが表示されます。 Debianのbashコマンドラインから同じ機能をどのように取得できますか?はい、私が望むものがパッケージ提案だけであれば、単に正規表現検索を使用するだけです。適切なキャッシュ検索。しかし、プログラム名を入力するとすぐにより簡単な提案を受け取ることができたらと思います。

議論によると、この機能はパッケージで提供されます。命令が見つかりません。ただし、bash-completionパッケージがインストールされていても、Debian bashシェルではまだ使用できません。

答え1

インストールが削除されたパッケージの提案の提供を開始しなかったのは、command-not-foundインストール中にdpkgの小さな通知を見逃したためです。

update-command-not-foundこのコマンドは直後に実行する必要がありますapt-get install command-not-found。実際、dpkgはこのコマンドを実行するように求めます。

答え2

Debian パッケージが不完全なようです。 Readme/etc/bash_command_not_foundにはこれを.bashrc

Debiancommand-not-foundパックに基づいてUbuntuパッケージ。これに関して、Ubuntuパッケージはより完璧なようです。

Ubuntuバージョンの内容bash_command_not_found:

command_not_found_handle() {
  if  [ -x /usr/lib/command-not-found ]; then
     /usr/lib/command-not-found -- "$1" 
     return $?
  else
     return 127
  fi        
}

~/.bashrc(または/etc/bash.bashrc)に次の行を追加すると、command-not-found機能が機能します。

答え3

私はこの問題を次のように解決しました。

まずインストールコマンドが見つかりません

sudo apt update
sudo apt install command-not-found

以来

sudo update-command-not-found
sudo apt update

答え4

Debian では command-not-found をインストールした後、次のコマンドを実行する必要があります。

apt-get update

または

apt-file update

このコマンドはupdate-command-not-found効果がありません。また、/etc/profileで新しいコマンドが見つからないシェルスクリプトを実行するようにログアウトしてから再度ログインする必要があります。または、手動で実行/インポートすることもできます。

関連情報