我的问题很简单-我想了解有关dpkg的更多信息-它有什么作用?
我的问题很简单-我想了解有关dpkg的更多信息-它有什么作用?
Answers:
如前所述,它dpkg
是提取,分析,解压缩和安装或删除.deb文件的低级系统工具。但是,最好使用Software Centre
或Gdebi
安装或删除从其他来源获得的.deb文件,因为这两个程序具有依赖性解析。
但是,一直没有什么解释是解剖使用更新的dpkg
和apt-get
。例如,如果我们调用apt-get
install cheese
,则将分析依赖关系树apt-get
,并通过提取必需的文件,然后将其传递dpkg
到提取,分析和安装到正确的位置,并根据其中的脚本进行配置。
dpkg
每个.deb文件内部读取的脚本很重要,因为它们向程序提供有关软件包的安装,删除和配置的信息。因此,当您查看时,/var/log/dpkg.log
会有很多关于“触发器”和程序包的详细信息,这些详细信息会经历不同的拆包和配置阶段。Raphael Hertzog(他是Debian的主要开发者和dpkg
软件包维护者)在他的博客中解释了有关dpkg触发器以及dpkg
检查和配置软件包的方式的更多信息。
我们现在正在做事的核心dpkg
。它熟练地处理Debian软件包,而不是其依赖项。随着dpkg-deb
,例如,您可以执行从.deb文件档案在分析各种动作和手动解压文件; 请参阅man dpkg-deb
以获取更多信息。
中列出了每个软件包的状态,/var/lib/dpkg/status
可用于grep
检查特定的软件包。Dpkg
也可以被调用来重新配置已配置的特定软件包(请参阅参考资料man dpkg-reconfigure
):
sudo dpkg-reconfigure <package>
或者,如果更新存在问题并且某些程序包的配置仍在等待处理,请对所有未配置的程序包进行配置:
sudo dpkg --configure -a
有关侧重于dpkg
和的出色教程apt-get
,请参见Debian Handbook的第5章和第6章,这是可获得的最佳讨论。man dpkg
在终端中输入或在线查看Ubuntu手册页,以查看所有可用的许多选项,例如dpkg -l
用于列出当前已安装的软件包。
与往常一样,该man
命令是一个很好的起点。
man dpkg
仍然可以为您提供所有选择:
dpkg是基于Debian的系统的软件包管理器。它可以安装,删除和构建软件包,但是与其他软件包管理系统不同,它不能自动下载和安装软件包及其依赖项。
因此,基本上,它易于获得而无需解决依赖关系,并且用于安装.deb文件。
但是,我警告您:在大多数情况下,不建议使用dpkg卸载软件包。最好使用处理依赖性的程序包管理器,以确保系统处于一致状态。
例如,使用dpkg -r zip
可以删除zip软件包,但是所有依赖该zip的软件包仍将被安装,并且可能不再正常运行。