Bash

如何在 Debian 上實施軟體包安裝建議?

  • February 13, 2022

我注意到在 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: No such file or directory”消息。如何在 Debian 的 bash 命令行中實現相同的功能?是的,我知道如果是我想要的包建議,我可以簡單地使用apt-cache search進行正則表達式搜尋。但是,我希望在鍵入程序名稱時立即獲得更簡單的建議。

根據討論,該功能由包command-not-found提供。但是,即使在安裝了它並安裝了 bash-completion 包之後,Debian bash shell 也無法使用它。

安裝command-not-found沒有開始為未安裝的軟體包提供建議的原因是我在安裝過程中錯過了來自 dpkg 的一個小通知。

一個應該在執行update-command-not-found後立即執行命令apt-get install command-not-found。實際上 dpkg 會提示執行此命令。

debian 軟體包似乎不完整。自述文件說你應該/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(or /etc/bash.bashrc) 中,該command-not-found功能應該可以工作。

引用自:https://unix.stackexchange.com/questions/67466