如何在 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 命令行中实现相同的功能?是的,我知道如果我想要的是软件包建议,我可以简单地使用正则表达式搜索apt-cache 搜索。然而,我希望在输入程序名称时立即得到更简单的建议。

根据讨论,该功能由包提供找不到命令。但是即使安装了它,并且安装了 bash-completion 包,它在 Debian bash shell 上仍然不可用。

答案1

安装没有开始为未安装的软件包提供建议的原因command-not-found是我在安装过程中错过了 dpkg 的一个小通知。

应该update-command-not-found在运行后立即运行该命令apt-get install command-not-found。事实上 dpkg 会提示运行此命令。

答案2

debian 软件包似乎不完整。自述文件说你应该/etc/bash_command_not_found在你的.bashrc.奇怪的是,该文件不包含在包中。

德比安command-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 中的新命令未找到 shell 脚本运行。或者您可以手动运行/获取它们。

相关内容