diff --git a/05-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md b/05-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md index d25d1b6..778c478 100644 --- a/05-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md +++ b/05-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md @@ -296,7 +296,26 @@ Anwendungen von Gitea Actions bei dieser Diplomarbeit: ### Debian Paket -TODO +Um die Anwendung und ihre Abhängigkeiten konsistent auf dem Zielserver (Linux/Hetzner) zu installieren, wurde ein eigenes Debian-Paket (`.deb`) erstellt. Das Debian-Paketformat bietet den Vorteil, dass es Metadaten über Versionen, Abhängigkeiten und Installationsskripte (Maintainer Scripts) enthält. + +#### Struktur eines Debian-Pakets + +Ein `.deb`-Paket ist im Grunde ein `ar`-Archiv, das drei wesentliche Bestandteile enthält: + +- **debian-binary**: Eine Textdatei mit der Versionsnummer des Paketformats. +- **control.tar.gz**: Enthält die Metadaten (`control`-Datei) und Skripte, die vor oder nach der Installation ausgeführt werden (z. B. `postinst` zum Starten des Systemd-Services). +- **data.tar.gz**: Enthält die eigentlichen Anwendungsdateien (die kompilierten Oqtane-DLLs und statischen Assets), die in das Zielverzeichnis (z. B. `/opt/alumnihub`) entpackt werden. + +#### Automatisierung im Build-Prozess + +Der Bau des Pakets erfolgt vollautomatisch in der Gitea-CI-Pipeline. Dabei werden die folgenden Schritte durchlaufen: + +1. **Dotnet Publish**: Kompilieren der Anwendung für Linux-x64. +2. **Paketierung**: Erstellen der Verzeichnisstruktur gemäß dem FHS (Filesystem Hierarchy Standard). +3. **dpkg-deb**: Aufruf des Standard-Werkzeugs `dpkg-deb --build`, um das fertige Paket zu schnüren. +4. **Publish**: Das Paket wird in die Gitea Package Registry hochgeladen und steht dort für das Deployment via `apt` zur Verfügung. + +Durch diesen Prozess wird sichergestellt, dass jede Version der Software eindeutig identifizierbar und einfach rückrollbar (Rollback) ist. ## Projektmanagement & Tools