有人使用libapt或libept来列出包并在类似debian的系统中获取有关包的信息吗?
Libapt没有详细记录,我发现很少有关于libept的例子和教程.有人可以解释我最好的方法
获取apt-system中每个包的列表
获取有关单个包的信息(如名称,版本,依赖关系,描述等).
获取单个包安装的文件列表
直接使用apt内部文件非常简单,但我想使用库来遵守apt规范.
在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; }
看看apt-cache(8)是如何实现的.使用apt获取源代码很简单:
# apt-get source apt
在源文件中,cmdline/apt-cache.cc
theres是一个调用的函数DumpPackage()
,它从缓存中的命名文件中提取信息.