如何在Debian上实施软件包安装建议?


21

我注意到在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 search进行正则表达式搜索。但是,我希望在键入程序名称时立即提出更简单的建议。

根据讨论,该功能由package command-not-found提供。但是,即使在安装它并安装bash-completion软件包之后,在Debian bash shell上也不可用。

Answers:


22

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

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


1
我还必须apt-get update先运行update-command-not-found然后再运行一个新的bash会话或source /etc/bash.bash.rc
jordanbtucker

我做了一个apt updateapt install command-not-foundupdate-command-not-found,然后开始了新的外壳,却发现我需要另一种apt update,也许update-command-not-found它开始工作之前。
戴夫X

9

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

debian command-not-found软件包基于ubuntu软件包。在这方面,ubuntu软件包似乎更完整。

bash_command_not_found的ubuntu版本的内容

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功能应该可以使用。


1
自述文件不正确,Debian不使用该文件。该处理程序包含在/etc/bash.bashrc中(至少在Debian 9中包含),它由Bash交互式shell在启动时自动运行。
hackerb9

command-not-found软件包(来自debian.org的0.2.38-4版本)安装到MX Linux(Debian 9 Stretch base)并没有修改/etc/bash.bashrc,随后直到在此答案中添加行之后才起作用。
Xen2050
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.