2 [head [title Linux Verstehen]]
4 [footer Paul Hänsch | Linux Verstehen | Heinrich Hertz Gymnasium Berlin]
6 [slide [h1 Linux Verstehen - Teil 4]]
10 [li Softwareinstallation mit Paketsystemen]
11 [li Installation des Betriebssystems]
15 [slide [h1 Softwareinstallation und Paketsysteme]]
17 [slide [h2 Was ist ein Paketsystem?]
20 [li [b Verwenden:] das Programm für jeglichen Zweck ausführen]
21 [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen [ul
22 [li [em Der Zugang zum Quellcode ist dafür Voraussetzung]]
24 [li [b Verbreiten:] das Programm weitergeben]
25 [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben [ul
26 [li [em Der Zugang zum Quellcode ist dafür Voraussetzung]]
31 [slide [h2 Was ist ein Paketsystem?]
33 [li Ein Softwareauthor schreibt [em Quellcode]]
34 [li Programm muss für ein Rechnersystem [em kompiliert/gebaut] werden]
35 [li Dies ist nicht Aufgabe des Authors (denn große Vielfalt von Plattformen, Hardware, etc.)]
36 [li Eine System-[em Distribution] ist eine Sammlung von Software[em paketen]]
37 [li Maintainer [em paketieren] Programme für eine Distribution]
41 [slide [h2 Softwareinstallation]
42 [p [h3 Wir benutzen ein Paketsystem]
43 [img src="synaptic_1.jpg"]
49 [li [b Installiert] den [u Apache Web Server]]
50 [li Denkt euch einen Rechnernamen aus]
51 [li Teilt mir eure IP Adresse mit]
57 [li Lest den ersten Absatz der [em Default Page]]
58 [li Ersetzt die Homepage im Apache]
62 [slide [h2 Was ist ein Paketsystem?]
64 [li Distributionen stellen Softwarearchive bereit → [em Paketquellen] [ul
65 [li z.B. online zum Download]
68 [li Verschiedene Distributionen benutzen verschiedene Arten Pakete zu bauen → [em Paketsysteme] [ul
69 [li z.B. nur Archiv entpacken]
70 [li z.B. Quellcode automatisch bauen]
71 [li z.B. Dateisystemimage mounten]
73 [li Oft sind Pakete kryptographisch signiert]
77 [slide id="crypto" [h2 Was ist ein Paketsystem?]
79 [li [strong Oft sind Pakete kryptographisch signiert]]
80 [li Einer der wichtigsten Sicherheitsaspekte von Linux-Systemen]
81 [li -> Pakete sind vom Maintainer signiert]
85 [slide [h2 Apt und dpkg]
87 [li Pakete haben Abhängigkeiten]
88 [li Abhängigkeiten können Paketinstallationen blockieren]
89 [li Distributionen paketieren deshalb häufig nicht die neusten Programmversionen]
93 [slide [h1 Apt und dpkg]]
95 [slide [h2 Apt und dpkg]
97 [li [h3 Paketquellen bearbeiten]
98 [pre ~$ less /etc/apt/sources.list]
100 [li [h3 Paketinformationen neu laden]
101 [pre ~$ sudo apt-get update]
103 [li [h3 zum Installieren vormerken]
104 [pre ~$ sudo apt-get install ...]
109 [slide [h2 Apt und dpkg]
111 [li [h3 Pakete finden]
112 [pre ~$ apt-cache search ...]
113 [pre ~$ apt-cache show ...]
118 [slide [h2 Apt und dpkg]
121 [pre ~$ sudo apt-get upgrade]
122 [pre ~$ sudo apt-get dist-upgrade]
124 [li [h3 Pakete entfernen]
125 [pre ~$ sudo apt-get remove ...]
126 [pre ~$ sudo apt-get autoremove]
131 [slide [h1 Andere Paketsysteme]]
133 [slide [h2 Andere Paketsysteme]
135 [li Arch GNU Linux [ul
136 [li [pre pacman -Ss ...; pacman -S ...; pacman -R ...]]
139 [li [pre emerge --sync; emerge --search ...; emerge ... ]]
141 [li Fedora/RedHat [ul
142 [li [pre yum search ...; yum install ...; yum remove ... ]]
145 [li ipkg/opkg, msi, ...]
150 [slide [h1 Software selbst übersetzen]
151 Selbst "Maintainer" sein ...
154 [slide [h2 Software selbst übersetzen]
156 [li Authoren stellen Quellcode häufig über [em Versionsverwaltung] bereit [ul
157 [li Wir müssen den Quellcode [em auschecken / clonen]]
159 [li Software muss in Maschinencode übersetzt werden [ul
160 [li Wir brauchen einen [em Compiler] für die entsprechende Programmiersprache]
161 [li Wir müssen selbst [em Abhängigkeiten] beachten (→ Dependency Hell)]
163 [li IdR. wird der Prozess vereinfacht durch Buildautomatisierung]
167 [slide [h2 Software selbst übersetzen]
169 [h3 Ein einfaches Beispiel]
170 [li [pre ~$ git clone https://git.plutz.net/git/vhs_kurs]]
171 [li [pre ~$ cd vhs_kurs]]
177 [Xslide [h1 Anwendungsprogramme]]
179 [Xslide [h2 Anwendungsprogramme]
181 LibreOffice, Inkscape, Marble, Cups, Webserver
185 [slide [h1 Systeminstallation]]
187 [slide [h2 Systeminstallation]
189 [li Beginnt mit einer leeren Partition]
190 [li System muss gerade soweit bestehen, dass Software installiert werden kann]
191 [li Systemkernel muss installiert sein]
192 [li Bootloader muss installiert sein (Plattformspezifisch)]
193 [li ggf. Benutzer anlegen]
194 [li ggf. /etc/fstab anpassen]
198 [slide [h2 Systeminstallation]
200 [h3 Installation des Basissystems]
201 [li Abhängig von Distribution]
202 [li debootstrap, pacstrap]
203 [li Archiv entpacken]
207 [slide [h2 Systeminstallation]
209 [li [pre ~$ mkdir sys]]
210 [li [strike mount /dev/sdx1 sys/]]
211 [li [pre ~$ mkdir sys/bin]]
212 [li [pre ~$ cp /bin/busybox sys/bin]]
213 [li [pre ~$ sys/bin/busybox --install sys/bin]]
216 [slide [h2 Systeminstallation]
218 [li [pre ~$ sudo chroot sys /bin/sh]]
222 [slide [h2 Zusammenfassung]
224 [li Paketsysteme vereinfachen die Softwareinstallation]
225 [li Paketsysteme erhöhen die Sicherheit]
226 [li Paketsysteme und verfügbare Pakete sind der Hauptunterschied zwischen Distributionen]
227 [li Zur Systeminstallation wird im wesentlichen das Paketsystem ausgerollt]
231 [slide [h1 Anwendersoftware]]
234 [slide [h2 Nächster Termin]
236 [li Dienstag, 5.7. - morgen]