Techne

A practical knowledge base

User Tools

Site Tools


create-an-rpm-repository

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
create-an-rpm-repository [2026-02-23 07:40:20] – created hyperrealcreate-an-rpm-repository [2026-03-14 20:20:50] (current) – removed hyperreal
Line 1: Line 1:
-======= Create an RPM repository ====== 
  
-===== Install dependencies ===== 
- 
-<code bash> 
-sudo dnf install -y gnupg createrepo dnf-utils rpm-sign wget 
-</code> 
- 
-===== Setup GnuPG ===== 
- 
-<code bash> 
-echo "%echo Generating a PGP key 
-Key-Type: RSA 
-Key-Length: 4096 
-Name-Real: Jeffrey Serio 
-Name-Email: hyperreal@moonshadow.dev 
-Expire-Date: 0 
-%no-ask-passphrase 
-%no-protection 
-%commit" > ~/hyperreal-pgp-key.batch 
-</code> 
- 
-Now generate the key with the following command: 
- 
-<code bash> 
-gpg --no-tty --batch --gen-key ~/hyperreal-pgp-key.batch 
-</code> 
- 
-Export the public key. 
- 
-<code bash> 
-gpg --armor --export "Jeffrey Serio" > ~/hyperreal-pgp-key.pub 
-</code> 
- 
-Export the private key to back it up somewhere safe. 
- 
-<code bash> 
-gpg --armor --export-secret-keys "Jeffrey Serio" > ~/hyperreal-pgp-key.sec 
-</code> 
- 
-After backup up the private key, shred it from the working directory. 
- 
-<code bash> 
-shred -xu ~/hyperreal-pgp-key.sec 
-</code> 
- 
-===== Setup RPM signing ===== 
- 
-Replace ''E1933532750E9EEF'' with your key's ID. 
- 
-<code bash> 
-echo "%_signature gpg 
-%_gpg_name E1933532750E9EEF" > ~/.rpmmacros 
-</code> 
- 
-Create a directory to serve the repository. 
- 
-<code bash> 
-mkdir -p ~/rpm-repo/packages 
-</code> 
- 
-Move RPM packages into the repo directory. Then sign them with the following command: 
- 
-<code bash> 
-rpm --addsign ~/rpm-repo/packages/*.rpm 
-</code> 
- 
-===== Create repo index ===== 
- 
-Once all the packages are signed, create the repository with the following command: 
- 
-<code bash> 
-createrepo ~/rpm-repo/packages/ 
-</code> 
- 
-The above command will create a directory in the repo named ''repodata'' containing a file named ''repomd.xml''. 
- 
-<quote> 
-Note that the ''createrepo'' command must be run against each directory in the repo that contains .rpm files. 
-</quote> 
- 
-Now sign the repo metadata with the following command: 
- 
-<code bash> 
-gpg --detach-sign --armor ~/rpm-repo/packages/repodata/repomd.xml 
-</code> 
- 
-===== Create a .repo file ===== 
- 
-''~/rpm-repo/hyperreal-kernel-bazzite.repo'' 
-<code ini> 
-[hyperreal-kernel-bazzite] 
-name=hyperreal kernel bazzite $releasever 
-baseurl=https://rpm.hyperreal.coffee/kernel-bazzite/fedora-$releasever/$basearch 
-enabled=1 
-gpgcheck=1 
-gpgkey=https://rpm.hyperreal.coffee/hyperreal-pgp-key.pub 
-</code> 
create-an-rpm-repository.1771832420.txt.gz · Last modified: by hyperreal

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain