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

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

我有一个用于安装的 deb 包。

我应该使用 apt 安装dpkg -i my.deb还是使用 apt 安装?

两者都能很好地处理软件依赖问题吗?

如果通过 apt,我如何通过 apt 从 deb 安装?

答案1

当你使用apt安装包时,在引擎盖下它用dpkg。当您使用 apt 安装软件包时,它首先创建所有依赖项的列表并从存储库下载它。

下载完成后,它会调用dpkg安装所有这些文件,以满足所有依赖项。

因此,如果您有.deb文件,可以通过以下方式安装它:

  1. 使用:

    sudo dpkg -i /path/to/deb/file
    sudo apt-get install -f
    
  2. 使用:

    sudo apt install ./name.deb
    

    或者

    sudo apt install /path/to/package/name.deb
    

    对于旧apt-get版本,您必须首先将 deb 文件移至 /var/cache/apt/archives/目录。对于两者,执行此命令后,都会自动下载其依赖项。

  3. 首先安装gdebi然后使用它打开 .deb 文件(右键点击->打开用)。它将安装您的 .deb 包及其所有依赖项。

笔记:APT 维护包索引,它是文件和目录/var/cache/apt/*.bin中定义的存储库中可用包的数据库 ( ) 。如果 deb 所需的依赖项不存在于包索引中,则所有这些方法都将无法满足软件依赖项。/etc/apt/sources.list/etc/apt/sources.list.d


为什么要使用sudo apt-get install -fafter sudo dpkg -i /path/to/deb/file (如方法1中提到的)?

man apt-get

 -f, --fix-broken
           Fix; attempt to correct a system with broken dependencies in place.

dpkg安装一个包并且不满足包依赖关系时,它会使该包处于“未配置”状态,并且该包被视为已损坏。

sudo apt-get install -f命令尝试通过安装缺少的依赖项来修复这个损坏的包。

答案2

安装您的foo.deb文件dpkg -i foo.deb。如果存在一些未解决的依赖关系的错误,请apt-get install -f稍后运行。

答案3

您可以通过以下方式安装本地 .deb 包:

sudo apt install ./foo.deb

确保指定本地相对或绝对路径(如果在当前目录中),否则它将在远程存储库中./查找并失败。foo.deb

答案4

检查dpkg -I my.debapt-get install之前的依赖关系dpkg -i my.deb

也许你可以复制my.deb/var/cache/apt/archives直接安装它,apt-get但我从未尝试过。 不起作用,apt-get正在dpkg寻找档案中列出的包。

相关内容