RPM (dnf/yum) — Beta
Beta. Repository serving, proxying, and upload work, but behaviour and configuration may still change.
Dependably serves a standard dnf/yum repository: it caches upstream packages
on first fetch, verifies them before storage, and can host your own .rpm
builds.
Create a token in the web UI — see Getting started —
and use it where the examples below show <your token>. Your repository base
URL is:
https://repo.example.com/rpm/
Configure
dnf/yum reads its repositories from .repo files in /etc/yum.repos.d/ —
that is the OS's own mechanism, and there's no CLI or in-app alternative. Create
/etc/yum.repos.d/dependably.repo:
[dependably]
name=dependably
baseurl=https://repo.example.com/rpm/
enabled=1
gpgcheck=0
username=user
password=<your token>
dnf authenticates with HTTP Basic: the token is the password and the
username can be anything (user is conventional), set with the username and
password keys. gpgcheck=0 is the default — turn it on once you have package
signing wired up. Because this file holds the literal token, keep its
permissions tight:
sudo chmod 600 /etc/yum.repos.d/dependably.repo
If your instance allows anonymous pulls, you can drop the username and
password lines and read without a token.
Verify
sudo dnf clean all
sudo dnf makecache
sudo dnf repolist # "dependably" should be listed
sudo dnf --disablerepo='*' --enablerepo='dependably' install <package>
The first install of each proxied package is recorded on the Activity page in the web UI.
Publishing
Upload an .rpm with an HTTP PUT (HTTP Basic; the token is the password):
curl --user user:<your token> \
--upload-file mypackage-1.0.0-1.x86_64.rpm \
https://repo.example.com/rpm/upload
Uploading requires a token with a push scope (push only or push & pull) — see Access tokens.
Revert
sudo rm /etc/yum.repos.d/dependably.repo
sudo dnf clean all