如何在类似 debian 的系统中使用 libapt(或 libept)来列出软件包并获取其信息?
有人使用 libapt 或 libept 来列出软件包并获取有关 debian 类系统中软件包的信息?
Libapt 根本没有很好的文档记录,而且我发现了一些关于 libept 的示例和教程。 有人可以向我解释一下
- 获取 apt 系统中每个包的列表的
- 最佳方法吗?获取有关单个包的信息(如名称、版本、依赖项、描述等)
- 获取单个包安装的文件列表
直接使用 apt 内部文件很简单,但我想使用一个库来尊重适当的规范。
Somebody used libapt or libept to list packages and get informations about package in a debian-like system?
Libapt is not well-documented at all, and i've found few examples and tutorials about libept. Can someone explain me best methods to
- get a list of every packages in the apt-system
- get informations about single packages (like name, version, dependences, description, etc.
- get list of files installed by a single package
Work directly with apt internal files is quite simple, but i want to use a library to respect apt specifications.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 debian 中,有一个名为 libapt-pkg-doc 的包,其中包含一些文档(如 API 参考)。 安装后,您可以通过 file:///usr/share/doc/libapt-pkg-doc/html/index.xhtml 访问它。
我刚刚浏览了 libapt,这是我到目前为止学到的内容:
如何列出所有包:
In debian there is a package called
libapt-pkg-doc
which contains some documentation (like an API reference). Once installed, you can access it at file:///usr/share/doc/libapt-pkg-doc/html/index.xhtml.I only just had a look at libapt and here is what I have learned so far:
How to list all packages:
看一下 apt-cache(8) 是如何实现的。 使用 apt 获取源代码很容易:
在源文件
cmdline/apt-cache.cc
中,有一个名为DumpPackage()
的函数,它从缓存。Take a look at how apt-cache(8) is implemented. Obtaining the source with apt is easy:
In the source file
cmdline/apt-cache.cc
theres is a function calledDumpPackage()
which extracts information from a named file in the cache.如果您使用 perl,还有来自 CPAN 的 DPKG::Parse。
There is also DPKG::Parse from CPAN if you are using perl.