如何使用 apt-get 安装本地 .deb 包

Lou*_*uis 171 linux debian packages aptitude apt

有没有办法使用 apt-get 在您的 HD 上安装软件包,例如apt-get install ./package.deb

如果没有,如何以非常简单的方式处理依赖项?

Sir*_*rex 137

通常我这样做dpkg -i <deb file>,它会失败,说它需要依赖项。之后,当你执行apt-get update它时,它会在最后说“依赖项已准备好安装”之类的东西,我认为它然后建议使用apt-get install -f.

完成后,我dpkg -i再次使用。

过去几年对我来说效果很好。

编辑:再进一步看,显然一个名为的工具gdebi可以将其作为gdebi [deb file].

  • `gdebi` 对我有用,到目前为止我见过的最简单的。 (4认同)

Mel*_*ius 62

是的,您提出的命令是正确的。

sudo apt-get install ./package.deb
Run Code Online (Sandbox Code Playgroud)

或者

sudo apt install ./package.deb
Run Code Online (Sandbox Code Playgroud)

将安装您从 APT 以外的其他来源获得的软件包,同时使用 APT 功能自动解决其依赖关系。不幸的是,此apt-get功能未记录在手册页中

有关详细信息,请参阅https://askubuntu.com/a/769542/250300https://askubuntu.com/a/795048/250300

  • 这应该是公认的答案。 (17认同)
  • @KurtFitzner 根据[发布公告](https://mvogt.wordpress.com/2015/11/30/apt-1-1-released/)(通过https://askubuntu.com/找到)在APT 1.1中添加a/795048/250300)。 (4认同)
  • 哪个版本的 apt-get 添加了此功能? (2认同)

Akr*_*kos 60

Sirex 的说法或多或少是正确的,但他的答案并不清楚。我刚刚解决了这个问题,所以这就是我所做的:

sudo dpkg -i /path/to/filename.deb

如果这失败并显示有关软件包的消息(取决于未安装的内容),则可以通过运行来修复它

sudo apt-get -f install

这将安装依赖项(假设它们在您的系统知道的存储库中可用)和您最初请求安装的包('f' 是 'fix' 选项,'y' 是 'assume yes to prompts'或“不要问我是否可以,只需安装它”选项——对于脚本化静默安装非常有用)。在我使用的系统上,不需要再次运行 dpkg (Ubuntu lucid 10.04)。

我发现有趣的是,如果您在运行时不使用 -f sudo apt-get install,它会将您的包列为由于未解析的依赖项而未配置,并提供有用的建议:Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

编辑:

如果您想安装而不必对所有问题都回答“y”,您可以添加y我最初包含的修饰符:sudo apt-get -fy install. 但是,有评论者指出,apt 有时会建议您卸载整个桌面环境。我是在 VM 中做这项工作的,并没有那个顾虑,但这篇文章已经更新,以反映更加谨慎。

  • 为了你自己的利益,**不要**添加`-y`选项。例如,如果您在错误的时间(至少在 Debian 上)使用错误的软件包尝试卸载整个桌面环境,则很常见。 (3认同)
  • 对不起,但我不知道。我建议将其作为另一个顶级问题提出。 (2认同)

Avi*_*Raj 45

您也可以使用 gdebi 安装 .deb 文件。运行以下命令安装 gdebi,

sudo apt-get install gdebi-core
Run Code Online (Sandbox Code Playgroud)

使用 gdebi 安装 .deb 包,

sudo gdebi /path/to/filename.deb
Run Code Online (Sandbox Code Playgroud)

它还修复了依赖关系。

  • 请注意,gdebi 只接受一个参数,并且*悄悄地* 将其余参数放在地板上。这意味着如果您同时安装多个 deb(可能是因为它们相互依赖),您需要仔细编写允许它们安装的 `gdebi` 命令。imo 这一半违背了 gdebi 的目的,但你可能仍然发现它对单个文件很有用 (4认同)
  • @jjmontes 只有在相互依存关系按字母顺序排列时才有效,我敢打赌这非常罕见 (3认同)