当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在类似debian的系统中使用libapt(或libept)来列出包并获取它们的信息?》经验,为你挑选了2个好方法。

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

Libapt没有详细记录,我发现很少有关于libept的例子和教程.有人可以解释我最好的方法

    获取apt-system中每个包的列表

    获取有关单个包的信息(如名称,版本,依赖关系,描述等).

    获取单个包安装的文件列表

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



1> eyelash..:

在debian中有一个libapt-pkg-doc包含一些文档的包(如API参考).安装后,您可以通过file:///usr/share/doc/libapt-pkg-doc/html/index.xhtml访问它.

我只是看了一下libapt,这是我到目前为止所学到的:

如何列出所有包:

#include 
#include 

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;
}



2> joveha..:

看看apt-cache(8)是如何实现的.使用apt获取源代码很简单:

# apt-get source apt

在源文件中,cmdline/apt-cache.cctheres是一个调用的函数DumpPackage(),它从缓存中的命名文件中提取信息.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有