Wirklich bequem wird die Softwareinstallation erst dann, wenn der Paketmanager die Programme selbst findet und herunterlädt. Deshalb erweitern wir unser Build-System um ein Repository.
Paketmanager machen die Softwareverwaltung zum Kinderspiel. Gelingt es allerdings einem Angreifer, Schadcode in die Paketquellen einzuschleusen, gerät der Paketmanager zur Malware-Schleuder. Ein Bot, der Pakete signiert, ermöglicht es, manipulierte Pakete zu erkennen.
Dank der Arbeit der Distributoren lässt sich die meiste Software im Nu via Paketmanager installieren, aktualisieren oder deinstallieren. Wer seine eigene Software ähnlich unkompliziert handhaben will, verpackt sie in Pakete – am besten automatisiert.
Um Software von Github zu installieren, muss man sie erst kompilieren und in ein Paketformat wie DEB oder RPM schnüren. Mit unserem verteilten System realisieren wir einen Bot, der uns benachrichtigt, wenn sich ein Repository verändert.
Verteilte Systeme bestehen aus mehreren Prozessen, die im Hintergrund arbeiten. Dieser Beitrag zeigt, wie man solche sogenannten Daemons in der Shell entwickelt.
Mit Nachrichten lassen sich unkompliziert Daten zwischen Prozessen austauschen. Allerdings kommt es darauf an, wie man sie einsetzt: Es können sehr flexible und erweiterbare Systeme entstehen, oder aber starre und fehleranfällige Monster.
Parallelisierung kann eine Anwendung beschleunigen, führt aber auch schnell zu Bugs. Petri-Netze helfen dabei, eine Queue ohne Deadlocks zu implementieren.
Ob Mensch oder Maschine: Arbeiten mehrere Parteien zusammen, ohne sich abzusprechen, kommen sie sich ins Gehege. Wie Computer mit diesem Problem umgehen, beschreibt diese Folge unserer Serie zur Bash-Programmierung.
Was eine intuitiv bedienbare Oberfläche für grafische Anwendungen ist, sind bei Kommandozeilenprogrammen einprägsame Optionen. Die Implementation eines entsprechenden Parsers erfordert einiges Know-how.
Eine Protokollierung braucht man auch in vielen Bash-Skripten. Daher bietet es sich an, das Logging mit einem eigenen Modul für den Anwender einfach handhabbar und einheitlich zu gestalten.
Dass ein Probelauf einmal erfolgreich war, heißt noch nicht, dass auf das getestete Skript in jeder Situation Verlass ist. Um das zu garantieren, gilt es viel mehr Testfälle zu überprüfen. Dabei hilft das Framework Shell-Spec.
Bibliotheken, Klassen, Module, Pakete – es gibt viele Methoden, um Code in kleinere Einheiten zu unterteilen. Die Bash kennt jedoch keine davon. Höchste Zeit, das zu ändern.
Die Bash ist besser als ihr Ruf. In der ersten Folge unser Shell-Serie öffnet der Autor seine Schatzkiste und holt ein paar Perlen hervor, die jedes Skript schmücken.












