[slide [h2 Themen]
[ul
[li Softwareinstallation mit Paketsystemen]
- [li Anwendungsprogramme]
[li Installation des Betriebssystems]
]
]
[slide [h1 Was ist ein Paketsystem?]]
[slide [h2 Was ist ein Paketsystem?]
- Free Software definition
- Softwareauthor
- Maintainer -> Paket
- Distribution
- Paketquellen
- digitale signaturen
+ [ul .uncover
+ Die Vier Freiheiten:
+ [li [b Verwenden:] das Programm für jeglichen Zweck ausführen]
+ [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen]
+ [li [b Verbreiten:] das Programm weitergeben]
+ [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben]
+ ]
+]
+
+[slide [h2 Was ist ein Paketsystem?]
+ [ul
+ Die Vier Freiheiten:
+ [li [b Verwenden:] das Programm für jeglichen Zweck ausführen]
+ [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen [ul
+ [li [em Der Zugang zum Quellcode ist dafür Voraussetzung]]
+ ]]
+ [li [b Verbreiten:] das Programm weitergeben]
+ [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben [ul
+ [li [em Der Zugang zum Quellcode ist dafür Voraussetzung]]
+ ]]
+ ]
+]
+
+[slide [h2 Was ist ein Paketsystem?]
+ [ul .uncover
+ [li Ein Softwareauthor schreibt [em Quellcode]]
+ [li Programm muss für ein Rechnersystem [em kompiliert/gebaut] werden]
+ [li Dies ist nicht Aufgabe des Authors (denn große Vielfalt von Plattformen, Hardware, etc.)]
+ [li Eine System-[em Distribution] ist eine Sammlung von Software[em paketen]]
+ [li Maintainer [em paketieren] Programme für eine Distribution]
+ ]
+]
+
+[slide [h2 Was ist ein Paketsystem?]
+ [ul .uncover
+ [li Distributionen stellen Softwarearchive bereit → [em Paketquellen] [ul
+ [li z.B. online zum Download]
+ [li z.B. als CD-Rom]
+ ]]
+ [li Verschiedene Distributionen benutzen verschiedene Arten Pakete zu bauen → [em Paketsysteme] [ul
+ [li z.B. nur Archiv entpacken]
+ [li z.B. Quellcode automatisch bauen]
+ [li z.B. Dateisystemimage mounten]
+ ]]
+ [li Oft sind Pakete kryptographisch signiert]
+ ]
+]
+
+[slide [h2 Was ist ein Paketsystem?]
]
[slide [h1 Apt und dpkg]]
[slide [h2 Apt und dpkg]
- synaptic
- apt-get update
- apt-cache search
- apt-get install
- apt-get remove
- apt-get upgrade
- dist-upgrade, autoremove
- /etc/apt/sources.list
+ [ul .uncover
+ [pre ~$ sudo synaptic]
+ [li Paketinformationen neu laden]
+ [li Paketquellen bearbeiten]
+ [li zum Installieren vormerken]
+ ]
+]
+
+[slide [h2 Apt und dpkg]
+ [ul .uncover
+ [li [pre ~$ sudo apt-get update]]
+ [li [pre ~$ apt-cache search ...]]
+ [li [pre ~$ apt-cache show ...]]
+ [li [pre ~$ sudo apt-get install ...]]
+ [li [pre ~$ sudo apt-get remove ...]]
+ ]
]
+[slide [h2 Apt und dpkg]
+ [ul .uncover
+ [li Pakete haben Abhängigkeiten]
+ [li Abhängigkeiten können Paketinstallationen blockieren]
+ [li Distributionen paketieren deshalb häufig nicht die neusten Programmversionen]
+ ]
+]
+
+[slide [h2 Apt und dpkg]
+ [ul .uncover
+ [li [pre ~$ less /etc/apt/sources.list]]
+ [li [pre ~$ sudo apt-get upgrade]]
+ [li [pre ~$ sudo apt-get dist-upgrade]]
+ [li [pre ~$ sudo apt-get autoremove]]
+ ]
+]
+
+[slide [h1 Andere Paketsysteme]]
+
[slide [h2 Andere Paketsysteme]
- pacman, emerge, ipkg/opkg, rpm/yum, msi
+ [ul .uncover
+ [li Arch GNU Linux [ul
+ [li [pre pacman -Ss ...; pacman -S ...; pacman -R ...]]
+ ]]
+ [li Gentoo [ul
+ [li [pre emerge --sync; emerge --search ...; emerge ... ]]
+ ]]
+ [li Fedora/RedHat [ul
+ [li [pre yum search ...; yum install ...; yum remove ... ]]
+ ]]
+ [li Andere [ul
+ [li ipkg/opkg, msi, ...]
+ ]]
+ ]
+]
+
+[slide [h1 Software selbst übersetzen]
+ Selbst "Maintainer" sein ...
+]
+
+[slide [h2 Software selbst übersetzen]
+ [ul .uncover
+ [li Authoren stellen Quellcode häufig über [em Versionsverwaltung] bereit [ul
+ [li Wir müssen den Quellcode [em auschecken / clonen]]
+ ]]
+ [li Software muss in Maschinencode übersetzt werden [ul
+ [li Wir brauchen einen [em Compiler] für die entsprechende Programmiersprache]
+ [li Wir müssen selbst [em Abhängigkeiten] beachten (→ Dependency Hell)]
+ ]]
+ [li IdR. wird der Prozess vereinfacht durch Buildautomatisierung]
+ ]
]
[slide [h2 Software selbst übersetzen]
- kein Beispiel
- Versionskontrolle
- Compiler
- Dependencies
- Make
+ [ul .uncover
+ [h3 Ein einfaches Beispiel]
+ [li [pre ~$ git clone https://git.plutz.net/git/vhs_kurs]]
+ [li [pre ~$ cd vhs_kurs]]
+ [li [pre ~$ make]]
+ ]
]
-[slide [h1 Anwendungsprogramme]]
+<!--
+[Xslide [h1 Anwendungsprogramme]]
-[slide [h2 Anwendungsprogramme]
+[Xslide [h2 Anwendungsprogramme]
Sprachpakete
LibreOffice, Inkscape, Marble, Cups, Webserver
]
+-->
[slide [h1 Systeminstallation]]
[slide [h2 Systeminstallation]
- Leerer Datenträger
- -> Partitionen anlegen
- chroot / busybox
- System soweit, dass Paketsystem benutzbar ist
- debootstrap, pacstrap, tarball
- Kernel, Bootloader -> Plattformspezifisch
- benutzer anlegen, ggf. fstab anpassen
- bootloader schreiben
+ [ul .uncover
+ [li Beginnt mit einer leeren Partition]
+ [li System muss gerade soweit bestehen, dass Software installiert werden kann]
+ [li Systemkernel muss installiert sein]
+ [li Bootloader muss installiert sein (Plattformspezifisch)]
+ [li ggf. Benutzer anlegen]
+ [li ggf. /etc/fstab anpassen]
+ ]
+]
+
+[slide [h2 Systeminstallation]
+ [ul .uncover
+ [h3 Installation des Basissystems]
+ [li Abhängig von Distribution]
+ [li debootstrap, pacstrap]
+ [li Archiv entpacken]
+ ]
+]
+
+[slide [h2 Systeminstallation]
+ [ul .uncover
+ [li [pre ~$ mkdir sys]]
+ [li [strike mount /dev/sdx1 sys/]]
+ [li [pre ~$ mkdir sys/bin]]
+ [li [pre ~$ cp /bin/busybox sys/bin]]
+ [li [pre ~$ sys/bin/busybox --install sys/bin]]
+ ]
+]
+[slide [h2 Systeminstallation]
+ [ul .uncover
+ [li [pre ~$ sudo chroot sys /bin/sh]]
+ ]
]
[slide [h1 \...]]
[slide [h2 Zusammenfassung]
+ [ul
+ [li Paketsysteme vereinfachen die Softwareinstallation]
+ [li Paketsysteme erhöhen die Sicherheit]
+ [li Paketsysteme und verfügbare Pakete sind der Hauptunterschied zwischen Distributionen]
+ [li Zur Systeminstallation wird im wesentlichen das Paketsystem ausgerollt]
+ ]
]
[slide [h2 Nächster Termin]
- Freitag, 26.4.
- Netzwerk, Remotelogin, Dateiübertragung
+ [ul
+ [li Freitag, 26.4.]
+ [li Netzwerk, Remotelogin, Dateiübertragung]
+ ]
]
]]