#debian #package #apt #source #faux #key #download

bin+lib fapt

Faux的Debian apt软件包管理器

1个不稳定版本

0.1.0 2019年3月3日

#665 in 操作系统

MIT/Apache

94KB
2.5K SLoC

Faux apt

Build status Build status

这是一个类似于库的工具,用于与Debian/Ubuntu软件包元数据交互,就像使用aptaptitude一样。然而,这些工具不是作为库组织的,因此很难以这种方式驱动它们。

该项目是纯Rust,可在Windows、OSX等系统上正常运行。除非你想将其写入只限root的目录,否则不需要root权限。

它目前不包含安装软件包的方式,因此不能作为apt的替代品。

它旨在在需要时提供数据访问,例如

let mut fapt = System::cache_only()?;
commands::add_sources_entries_from_str(&mut fapt, src_line)?;
commands::add_builtin_keys(&mut fapt);
fapt.update()?;

for block in commands::all_blocks(&fapt)? {

这可以在一个示例中看到

% cargo run -q --example \
   list_source_packages deb-src https://deb.debian.org/debian buster main non-free
Downloading: https://deb.debian.org/debian/dists/buster/InRelease ... complete.
Downloading: https://deb.debian.org/debian/dists/buster/main/source/by-hash/SHA256/c3a1781dc47ba30d2c29eafd556d36917bb180c1f55c4862fedd48da28a2042f ... complete.
0ad
0ad-data
0xffff
...

还支持将这些HashMap<String, Strings>解析为合适的对象。

这两个API之间的区别可以在list_latest_source_map(对于映射API)和list_latest_source_obj(对于对象API)中看到。映射API更稳定,因为它做的工作较少,并将解析和错误处理留给您。

数据模型

以下是在amd64机器上的一个示例sources list条目

deb     https://deb.debian.org/debian sid main contrib
deb-src https://deb.debian.org/debian sid main contrib

这被解释为

  1. 下载https://deb.debian.org/debian/dists/sid/Release。这被称为ReleaseFile
  2. 查找以下命名的条目。每个都称为Listing
    • main/binary-amd64/Packages
    • contrib/binary-amd64/Packages
    • main/source/Sources
    • contrib/source/Sources
  3. 下载它们全部。

这个结果(忽略验证和压缩)现在是一个列表。

每个包含多个字段

每组字段可能描述了一个软件包,无论是源软件包还是二进制软件包。

依赖关系

~24–36MB
~635K SLoC