我有一个用于安装的 deb 包。
我应该使用 apt 安装dpkg -i my.deb
还是使用 apt 安装?
两者都能很好地处理软件依赖问题吗?
如果通过 apt,我如何通过 apt 从 deb 安装?
答案1
当你使用apt
安装包时,在引擎盖下它用dpkg
。当您使用 apt 安装软件包时,它首先创建所有依赖项的列表并从存储库下载它。
下载完成后,它会调用dpkg
安装所有这些文件,以满足所有依赖项。
因此,如果您有.deb
文件,可以通过以下方式安装它:
使用:
sudo dpkg -i /path/to/deb/file sudo apt-get install -f
使用:
sudo apt install ./name.deb
或者
sudo apt install /path/to/package/name.deb
对于旧
apt-get
版本,您必须首先将 deb 文件移至/var/cache/apt/archives/
目录。对于两者,执行此命令后,都会自动下载其依赖项。首先安装
gdebi
然后使用它打开 .deb 文件(右键点击->打开用)。它将安装您的 .deb 包及其所有依赖项。
笔记:APT 维护包索引,它是文件和目录/var/cache/apt/*.bin
中定义的存储库中可用包的数据库 ( ) 。如果 deb 所需的依赖项不存在于包索引中,则所有这些方法都将无法满足软件依赖项。/etc/apt/sources.list
/etc/apt/sources.list.d
为什么要使用sudo apt-get install -f
after 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.deb
和apt-get install
之前的依赖关系dpkg -i my.deb
。
也许你可以复制
不起作用,my.deb
并/var/cache/apt/archives
直接安装它,apt-get
但我从未尝试过。apt-get
正在dpkg
寻找档案中列出的包。