1. Grundidee

Die Anwendung liegt auf dem Zielrechner unter `/opt/scoreboard`. Dort stehen zwei Sorten von Dingen nebeneinander: 

 - **Programmteile**, die bei jedem Update ersetzt werden sollen - **Nutzdaten**, die ein Update auf keinen Fall anfassen darf 

 Deshalb wird jedes Verzeichnis genau einer von vier Kategorien zugeordnet. Die Zuordnung steht in der `build.conf`: 

 | Kategorie | Verzeichnisse | Bedeutung | |---|---|---| | `REPLACE_DIRS` | `lib`, `etc`, `web` | Gehören dem Paket. dpkg ersetzt sie bei jedem Update. | | `INITIAL_COPY_DIRS` | `data`, `auto-sync`, `scripte`, `tokens` | Werden nur bei der Erstinstallation angelegt. Ein Update lässt sie in Ruhe. | | `CREATE_ONLY_DIRS` | `doc`, `temp`, `log`, `backup` | Werden nur als leeres Verzeichnis angelegt. | | `APPLICATION_DIRS` | `db` | Legt die Anwendung selbst an. Das Paket fasst sie nicht an. | 

 Technisch ist der Unterschied wichtig: Nur was aus `REPLACE_DIRS` kommt, landet im Paket unter `/opt/scoreboard` und gehört damit dpkg. Alles aus `INITIAL_COPY_DIRS` wird nach `/usr/share/scoreboard-system/initial/` gelegt und erst von `postinstall.sh` an seinen Platz kopiert – und zwar nur, wenn dort noch nichts steht. 

 **Merksatz:** Was dpkg gehört, wird ersetzt. Was dpkg nicht gehört, bleibt. 

 ---