dpkg是做什么用的?


21

我的问题很简单-我想了解有关dpkg的更多信息-它有什么作用?


对此进行了至少两次编辑以提高清晰度-从目前的情况来看,可能值得保持开放(前提是它不是重复的),因为它已经产生了至少一个好的答案。
belacqua

1
您应该先访问:en.wikipedia.org/wiki/Dpkg
Pandya

Answers:


17

如前所述,它dpkg是提取,分析,解压缩和安装或删除.deb文件的低级系统工具。但是,最好使用Software CentreGdebi安装或删除从其他来源获得的.deb文件,因为这两个程序具有依赖性解析。

但是,一直没有什么解释是解剖使用更新的dpkgapt-get。例如,如果我们调用apt-getinstall 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用于列出当前已安装的软件包。


4

dpkg是从.deb安装或删除已安装的软件包的命令行方式。例如,如果您的主目录中有一个.deb文件,则运行dpkg -i yourpackage.deb将为您安装该软件包。我觉得这对我至少有用,因为有时在单击.deb文件时,它会加载Ubuntu软件中心,但从未真正安装它或出现问题。


4

与往常一样,该man命令是一个很好的起点。
man dpkg仍然可以为您提供所有选择:

dpkg是基于Debian的系统的软件包管理器。它可以安装,删除和构建软件包,但是与其他软件包管理系统不同,它不能自动下载和安装软件包及其依赖项。

因此,基本上,它易于获得而无需解决依赖关系,并且用于安装.deb文件。

但是,我警告您:在大多数情况下,不建议使用dpkg卸载软件包。最好使用处理依赖性的程序包管理器,以确保系统处于一致状态。

例如,使用dpkg -r zip可以删除zip软件包,但是所有依赖该zip的软件包仍将被安装,并且可能不再正常运行。

您可以在服务器指南其他地方阅读更多有关它的内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.