RPM
Relic generates an RPM repository's repodata from its packages, with repomd.xml signed by the repository's key pair.
Upload a package to any folder of a local repository:
relic artifact upload hello-1.0-1.x86_64.rpm rpm-local/el9/hello-1.0-1.x86_64.rpm
As root, this command writes /etc/yum.repos.d/relic-rpm-virtual.repo with your token. Its
gpgkey is the repository's repodata/repomd.xml.key, so dnf reads the public keys from Relic:
relic package setup dnf rpm-virtual --write
For a repository with a metadataDepth, --folder names the folder whose repodata dnf uses,
such as --folder el9. For a remote, the file checks no signature: the upstream signs its
repodata and packages, so add the upstream's gpgkey to check them.
Install through Relic:
dnf install hello
To configure dnf by hand, add /etc/yum.repos.d/relic.repo:
[relic]
name=Relic
baseurl=https://relic.example.com/rpm/rpm-virtual
username=<you>
password=<token>
gpgcheck=0
repo_gpgcheck=1
gpgkey=https://relic.example.com/rpm/rpm-virtual/repodata/repomd.xml.key
metadataDepth (Metadata depth) and signingKey (Signing key) are repository settings:
apiVersion: relic.build/v1
kind: Repository
metadata:
name: rpm-local
spec:
class: local
format: rpm
metadataDepth: 1
signingKey: rpm-signing
repo_gpgcheck=1checksrepomd.xml.asc, Relic's signature. dnf downloadsgpgkeywith the repository'susernameandpassword. Whenrepomd.xml.ascis signed by a key dnf has not imported, dnf downloadsgpgkeyagain, imports the keys it does not have and checks again, asking first unless it runs with-y.gpgcheckchecks the packages' own signatures; enable it for signed packages, with their vendor's key.signingKeynames an OpenPGP key pair, created on first use; key pairs cannot be imported. The default isrelic-gpg.secondarySigningKeynames a second key pair whose public keyrepomd.xml.keyalso holds, so the key can be replaced without running setup again on clients whosegpgkeyis that URL (Signing keys).relic api key-pairslists them.metadataDepth0 (default) indexes the whole repository atrepodata/; 1 indexes each top folder (el9/repodata/,el10/repodata/), so one repository serves several releases.- A remote proxies an upstream repository, such as
https://dl.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os. A virtual repository merges its members' repodata, remote ones included, and signs the result. - A virtual repository serves repodata at its own
metadataDepth, from the same folder of each member: withmetadataDepth: 1,el9/repodata/lists its members'el9/packages. With 0, it lists all of its members' packages. - A virtual repository's repodata is rebuilt at most every 30 seconds. A request after that gets the last built copy while one rebuild runs, and waits for the rebuild when the copy is older than 10 minutes.
- Through the JFrog® Artifactory® API, package type
yumis an RPM repository,yumRootDepthis the metadata depth,primaryKeyPairRefthe signing key andsecondaryKeyPairRefthe secondary signing key.