This project downloads repodata from a yum/dnf/rpm repository and tries to resolve for the packages the user requests.
It uses the resolvo crate to do the actual SAT resolution (instead of libsolv).
$ cargo run --release -- curl
Resolved:
- basesystem=11
- bash=5.2.15
- ca-certificates=2023.2.60
- coreutils-common=9.1
- coreutils=9.1
- curl=7.87.0
...
This is currently just an initial proof of concept. We're hoping that the community will help us figure some things out.
- Handle
suggestsproperly. Currently can only be disabled globally with--disable-suggestsbut should be iteratively removed if they conflict with other packages. - Handle
recommendsproperly. Not handled at all. - Handle
conflictsproperly. This should be fairly straightforward as we have this capability in resolvo. - Handle
obsoletesproperly. Not handled at all. - Try to actually install packages using
rpm-rs. - Store repodata in a better cache or load only what we need as repodata loading is somewhat slow right now.
There is also this open issue to track some of the ideas in resolvo: mamba-org/resolvo#1