当前位置: 首页>>技术教程>>正文


dpkg 是做什么用的?

问题描述

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

最佳回答

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

但是,尚未解释的是使用 dpkgapt-get 进行更新的剖析。例如,如果我们调用 apt-get 来安装 cheese ,则分析依赖树并由 apt-get 获取必要的文件,然后将它们传递给 dpkg 以提取、分析并安装到正确的位置,并根据其中的脚本进行配置.

dpkg 在每个 .deb 文件中读取的脚本很重要,因为它们向程序提供有关软件包安装、删除和配置的信息。因此,当您查看 /var/log/dpkg.log 时,会发现很多关于 ‘triggers’ 的详细信息,并且包会经历不同的解包和配置阶段。在他的博客中,Raphael Hertzog(他是 dpkg 包的关键 Debian 开发人员和维护者)explains more about dpkg triggersdpkg 检查和配置包的方式。

我们现在开始了解 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

有关专注于 dpkgapt-get 的精彩教程,请参阅 Debian Handbook 的第 5 章和第 6 章,这是可用的最佳讨论。在您的终端中输入 man dpkg 或在线查看 the Ubuntu manpages 以查看所有可用选项,例如使用 dpkg -l 列出当前安装的包。

次佳回答

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

第三种回答

一如既往,man 命令是一个很好的起点。\n man dpkg 可以为您提供所有选项,但是:

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

所以基本上它是没有依赖解析的 apt-get,它用于安装 .deb 文件。

不过我警告你:在大多数情况下,不推荐使用 dpkg 卸载软件包。最好使用处理依赖关系的包管理器,以确保系统处于一致的状态。

例如,使用 dpkg -r zip 可以删除 zip 包,但依赖于它的任何包仍将被安装并且可能不再正常运行。

您可以在 server guideelsewhere 中阅读更多相关信息。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13585.html,未经允许,请勿转载。