Benutzer-Werkzeuge

Webseiten-Werkzeuge


knowledge_base:linux:apt-repo

Dies ist eine alte Version des Dokuments!


Host an apt repo

Big thanks to https://earthly.dev/blog/creating-and-hosting-your-own-deb-packages-and-apt-repo/

Live system at pkg.julian-lemmerich.de/deb

sudo apt-get install -y dpkg-dev gpg

Start at Step 2, i already have built .deb packages

Basically:

~ is root of webserver, like pkg.julian-lemmerich.de

This Folder (~/deb/pool/main/) contains all the packages. Create subfolder for the packages for easier management. Like ./i/ical-relay/

Create Packages file. dpkg-scanpackges to the newest file manually, if there are beta and stable files at the same time.

dpkg-scanpackages --arch amd64 pool/main/i/ical-relay/ical-relay_1.3.1_amd64.deb > dists/stable/main/binary-amd64/Packages
cat dists/stable/main/binary-amd64/Packages | gzip -9 > dists/stable/main/binary-amd64/Packages.gz

Create release file with this script

generate_release.sh
#!/bin/sh
set -e
 
do_hash() {
    HASH_NAME=$1
    HASH_CMD=$2
    echo "${HASH_NAME}:"
    for f in $(find -type f); do
        f=$(echo $f | cut -c3-) # remove ./ prefix
        if [ "$f" = "Release" ]; then
            continue
        fi
        echo " $(${HASH_CMD} ${f}  | cut -d" " -f1) $(wc -c $f)"
    done
}
 
cat << EOF
Origin: JM-Lemmi Repository
Suite: stable
Codename: bullseye
Architectures: amd64
Components: main
Description: Julian Lemmerich's apt repository
Date: $(date -Ru)
EOF
do_hash "MD5Sum" "md5sum"
do_hash "SHA1" "sha1sum"
do_hash "SHA256" "sha256sum"
cd ~/dists/stable
generate_release.sh > Release

I think the last two steps have to be repeated after every release.

Signing stuff

pubkey into the root directory

gpg --armor --export 5472160F9992859FC5E542A73BACACF9D35CFBFC > pgp-key.public

Then sign Release files

https://github.com/keybase/keybase-issues/issues/2798

export GPG_TTY=$(tty)
cat dists/stable/Release | gpg -abs > dists/stable/Release.gpg
cat dists/stable/Release | gpg -abs --clearsign > dists/stable/InRelease

Install repo

echo "deb [arch=amd64] http://pkg.julian-lemmerich.de/deb stable main" | tee /etc/apt/sources.list.d/jm-lemmi.list
curl http://pkg.julian-lemmerich.de/deb/gpg.key | apt-key add -
apt update
apt install ical-relay
/app/www/public/data/attic/knowledge_base/linux/apt-repo.1679091099.txt.gz · Zuletzt geändert: 2023/03/17 23:11 von julian.lemmerich