为什么 sudo apt install 无法定位 deb 文件?

Tim*_*Tim 13 sudo apt

$ ls
wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb

$ sudo apt install wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb
E: Couldn't find any package by glob 'wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb'
E: Couldn't find any package by regex 'wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb'
Run Code Online (Sandbox Code Playgroud)

我想知道为什么deb找不到文件?

是因为sudo还是apt install

谢谢。

注意

$ sudo apt install ./wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb
Run Code Online (Sandbox Code Playgroud)

有效,但我问的是上次失败的原因。

相关如何通过 dpkg -i 或 apt 安装 deb 文件?

Ste*_*itt 19

从版本1.1〜EXP1,aptapt-get从包支持安装文件可通过文件系统,而不是仅仅从资源库。但是,为了保持向后兼容性,该功能仅适用于明确无误的文件包说明符,包含/. 使用预先存在的机制,其他任何内容都被处理为包名称而不是包文件

因此

sudo apt install wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb
Run Code Online (Sandbox Code Playgroud)

作为安装名为“wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb”的包的请求处理,并apt在其存储库中查找并失败。

sudo apt install ./wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb
Run Code Online (Sandbox Code Playgroud)

被处理为安装名为“./wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb”的文件中包含的包的请求(以及其依赖项,如有必要)。这也适用于绝对路径。

apt除了更改日志中的简短提及外,我在文档中找不到任何痕迹:

  • 添加对“apt-get install foo_1.0_all.deb”的支持

一个错误要求记录此功能


小智 -3

该命令apt install不安装.deb文件。要安装 deb 文件wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb,请使用dpkg -i wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb. dpkg -i用于安装.deb文件。

  • `dpkg -i` 可以用来安装 `.deb` 包,`apt install` 也可以;我在使用“sudo apt install ./packagefile.deb”更新 Plex Media 服务器时经常这样做。 (5认同)
  • 从`apt`变更日志,1.1~exp1:*添加对“apt-get install foo_1.0_all.deb”的支持* (3认同)