gpt4 book ai didi

c++ - 如何在类 debian 系统中使用 libapt(或 libept)来列出包并获取它们的信息?

转载 作者:可可西里 更新时间:2023-11-01 15:09:46 28 4
gpt4 key购买 nike

有人使用 libapt 或 libept 在类 debian 系统中列出软件包并获取有关软件包的信息吗?

Libapt 根本没有很好的文档,我发现很少有关于 libept 的示例和教程。有人可以向我解释最好的方法吗

  1. 获取apt系统中所有包的列表
  2. 获取有关单个包的信息(如名称、版本、依赖项、描述等)。
  3. 获取单个包安装的文件列表

直接使用 apt 内部文件非常简单,但我想使用一个库来遵守 apt 规范。

最佳答案

在 debian 中有一个名为 libapt-pkg-doc 的包,其中包含一些文档(如 API 引用)。安装后,您可以在 file:///usr/share/doc/libapt-pkg-doc/html/index.xhtml 访问它。

我只看了 libapt,这是我到目前为止学到的东西:

如何列出所有包:

#include <apt-pkg/cachefile.h>
#include <apt-pkg/pkgcache.h>

int main() {
// _config and _system are defined in the libapt header files
pkgInitConfig(*_config);
pkgInitSystem(*_config, _system);

pkgCacheFile cache_file;
pkgCache* cache = cache_file.GetPkgCache();

for (pkgCache::PkgIterator package = cache->PkgBegin(); !package.end(); package++) {
std::cout << package.Name() << std::endl;
}

return 0;
}

关于c++ - 如何在类 debian 系统中使用 libapt(或 libept)来列出包并获取它们的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/341520/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com