Benutzer-Werkzeuge

Webseiten-Werkzeuge


knowledge_base:linux:apt-repo

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
knowledge_base:linux:apt-repo [2023/03/17 23:06] – split into beta and stable julian.lemmerichknowledge_base:linux:apt-repo [2023/10/24 12:13] (aktuell) – Switch to Bash Script for release julian.lemmerich
Zeile 4: Zeile 4:
  
 Live system at pkg.julian-lemmerich.de/deb Live system at pkg.julian-lemmerich.de/deb
 +
 +==== Setup ====
  
 <code> <code>
Zeile 11: Zeile 13:
 Start at [[https://earthly.dev/blog/creating-and-hosting-your-own-deb-packages-and-apt-repo/#step-2-creating-an-apt-repository|Step 2]], i already have built .deb packages Start at [[https://earthly.dev/blog/creating-and-hosting-your-own-deb-packages-and-apt-repo/#step-2-creating-an-apt-repository|Step 2]], i already have built .deb packages
  
-== Basically: ==+==== Adding a new package====
  
 ''~'' is root of webserver, like pkg.julian-lemmerich.de ''~'' is root of webserver, like pkg.julian-lemmerich.de
Zeile 17: Zeile 19:
 This Folder (''~/deb/pool/main/'') contains all the packages. Create subfolder for the packages for easier management. Like ''./i/ical-relay/'' 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.+Add a new debian file to the ''~/deb/pool/main/<letter>/<package>'' and then
  
-<code> +Run the script from https://github.com/jm-lemmi/apt-repo''apt-repo.sh <file.deb> <stable/testing>''
-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 +
-</code>+
  
-Create release file with this script +The filename here is not a relative path, but just the filename.
- +
-<file sh 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: Example Repository +
-Label: Example +
-Suite: stable +
-Codename: stable +
-Version: 1.0 +
-Architectures: amd64 arm64 arm7 +
-Components: main +
-Description: An example software repository +
-Date: $(date -Ru) +
-EOF +
-do_hash "MD5Sum" "md5sum" +
-do_hash "SHA1" "sha1sum" +
-do_hash "SHA256" "sha256sum" +
-</file> +
- +
-<code bash> +
-cd ~/dists/stable +
-generate_release.sh > Release +
-</code> +
- +
-I think the last two steps have to be repeated after every release. +
- +
-== Signing stuff == +
- +
-pubkey into the root directory +
- +
-<code> +
-gpg --armor --export 5472160F9992859FC5E542A73BACACF9D35CFBFC > pgp-key.public +
-</code> +
- +
-Then sign Release files +
- +
-https://github.com/keybase/keybase-issues/issues/2798 +
- +
-<code> +
-export GPG_TTY=$(tty) +
-cat dists/stable/Release | gpg -abs > dists/stable/Release.gpg +
-cat dists/stable/Release | gpg -abs --clearsign > dists/stable/InRelease +
-</code>+
  
 ==== Install repo ==== ==== Install repo ====
Zeile 92: Zeile 33:
 apt install ical-relay apt install ical-relay
 </code> </code>
 +
 +==== Watch out ====
 +
 +The paths in ''Packages'' are relative paths!
 +
 +==== See also ====
 +
 +  * [[documentation:systems:pkg-builder|pkg-builder.stu]]
/app/www/public/data/attic/knowledge_base/linux/apt-repo.1679090812.txt.gz · Zuletzt geändert: 2023/03/17 23:06 von julian.lemmerich