如何在不求助于 Google 的情况下找出某些内容的包裹?

Kit*_*nde 29 package-management aptitude software-installation

我经常发现自己想要安装一些东西,但我不确定它在哪个包中。这对我来说很常见:

$ make html
sphinx-build -b djangohtml -d _build/doctrees   . _build/html
make: sphinx-build: Command not found
make: *** [html] Error 127

$ sudo apt-get install sphinx
E: Unable to locate package sphinx

$ sudo apt-get install sphinx-build
E: Unable to locate package sphinx-build
Run Code Online (Sandbox Code Playgroud)

谷歌

$ sudo apt-get install python-sphinx
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

Flo*_*sch 31

安装apt-file并运行apt-file update

然后用于apt-file search sphinx-build搜索包含名为sphinx-build的文件的包


小智 15

Ubuntu 非常聪明。试着运行它。

$ sphinx-build

The program 'sphinx-build' is currently not installed.  You can install it by typing:
sudo apt-get install python-sphinx
Run Code Online (Sandbox Code Playgroud)

  • @entropo:提供此功能的包是“command-not-found”。 (5认同)
  • 这应该非常小心地使用,因为如果从您的 shell 调用,则该命令在脚本或 makefile 中不起作用(例如,因为脚本正在使用另一个 $PATH 或者您的 shell 中有一个同名的别名)和可能会产生不良影响。 (3认同)
  • 有谁知道这种“智能”是如何在 Ubuntu 中实现的?例如,哪个包提供了这个? (2认同)