Answers:
当您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维护软件包索引,它是/etc/apt/sources.list
文件和/etc/apt/sources.list.d
目录中定义的repo中可用软件包的数据库。如果软件包索引中未包含deb所需的依赖关系,则所有这些方法将无法满足软件依赖关系)
为什么要使用sudo apt-get install -f
aftersudo dpkg -i /path/to/deb/file
(在第一种方法中提到)?
来自man apt-get
:
-f, --fix-broken
Fix; attempt to correct a system with broken dependencies in place.
当dpkg
安装软件包并且不满足软件包依赖性时,它将使软件包处于“未配置”状态,并且该软件包被视为损坏。
sudo apt-get install -f
命令尝试通过安装缺少的依赖项来修复此损坏的程序包。
apt-cache search <package name>
。您也可以使用apt-cache policy <package name>
,这还将提供一些其他信息。
apt-get install /path/to/package/name.deb
。如果这个答案的作者决定整合它,那将是整齐的。如果没有,我会在这里有足够的代表的时候去添加答案
使用安装foo.deb
文件dpkg -i foo.deb
。如果存在一些无法解决的依赖关系错误,请apt-get install -f
随后运行。
Unable to locate package
尝试这种方式,感到困惑。在切换到存档文件夹后,我仅在Windows中使用了软件包名称。应该是./<file name>
为Unix,如果当前文件夹或完整路径英寸 也就是说,如果deb
不在中的文件夹中PATH
。
这是在.deb
命令行上在Ubuntu上安装文件的最佳方法:
sudo gdebi skype.deb
如果尚未gdebi
安装,请使用进行安装sudo apt install gdebi-core
。
gdebi
将查找.deb
文件的所有依赖项,并在尝试安装.deb
文件之前安装它们。我发现这比sudo dpkg -i skype.deb && sudo apt install -f
。后者在某些情况下非常渴望删除依赖项。例如,当我尝试安装Skype时,它尝试删除96(!)软件包,包括诸如compiz
和unity
!之类的软件包。gdebi
给出了更清晰的错误消息:
$ sudo gdebi skype.deb
Cannot install 'libqtgui:i386'
(顺便说一下,这是该特定问题的解决方案。)
您可以通过以下方式安装本地.deb软件包:
sudo apt install ./foo.deb
确保指定本地相对或绝对路径(./
如果在当前目录中),否则它将foo.deb
在远程存储库中查找并失败。
./
之前的deb
。
在之前检查的依赖dpkg -I my.deb
和apt-get install
的依赖dpkg -i my.deb
。
也许您可以复制
不工作,my.deb
in /var/cache/apt/archives
并直接使用进行安装,apt-get
但我从未尝试过。apt-get
并dpkg
正在寻找档案列出的软件包。
apt-get install my.deb
是apt-get install
?是否可以从deb文件安装?那之后为什么需要dpkg -i my.deb
呢?
.deb
s dpkg -i
,我的理解是apt
,除了/var/cache/...
可以下载的目录(我可能是错的)之外,没有安装它们的选项
apt-get install ./my.deb
可以做些什么,因为它可以输出很多东西。它有什么作用?
-f
最简单的答案是通过运行来使用dpkg dpkg -i packagename.deb
。然后,您可以通过运行卸载它dpkg -r packagename.deb
。
apt-get
是基于dpkg的更高级别的安装程序,因此您可以这样做apt-get install packagename.deb
。
将其添加到apt-get存档目录(/var/cache/apt/archives
)中将是有益的,因此您可以将其作为具有相关性的程序包而不是独立的.deb存档来引用。
另外,通过将其添加到apt-get存档目录中,您就有机会将依赖项与一起使用apt-get install packagename
。这样一来,您便可以使用任何手动添加的依赖项来安装它,而不是dpkg的独立基于存档的系统。
可以使用apt-get来简单地通过安装软件包apt-get install /path/to/package/name.deb
。
(应作为对最高答案的编辑,但被拒绝-请参见https://unix.stackexchange.com/posts/159114/edit)
apt 1.0.9.8.4 for amd64 compiled on Dec 11 2016 09:48:19
如果要安装Chrome,这非常简单。
将您的Chrome文件安装为:
dpkg -i googlechrome.deb.
有时可能会出现一些依赖项错误,如下所示:
dpkg: dependency problems prevent configuration of google-chrome-stable:
google-chrome-stable depends on libappindicator1; however:
Package libappindicator1 is not installed.
因此,要解决上述问题,您需要添加依赖项。输入以下命令:
apt-get install -f
输入上述命令后,依赖项将添加到您的计算机中,并且.deb
将安装Debian软件包()文件。
aptitude
来删除不必要的软件包。