[html
[head [title Linux Verstehen]]
[body
[footer Paul Hänsch | Linux Verstehen | Heinrich Hertz Gymnasium Berlin]
[slide [h1 Linux Verstehen - Teil 4]]
[slide [h2 Themen]
[ul
[li Softwareinstallation mit Paketsystemen]
[li Installation des Betriebssystems]
]
]
[slide [h1 Softwareinstallation und Paketsysteme]]
[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 Softwareinstallation]
[p [h3 Wir benutzen ein Paketsystem]
[img src="synaptic_1.jpg"]
]
]
[slide [h2 Aufgabe]
[ul
[li [b Installiert] den [u Apache Web Server]]
[li Denkt euch einen Rechnernamen aus]
[li Teilt mir eure IP Adresse mit]
]
]
[slide [h2 Aufgabe]
[ul
[li Lest den ersten Absatz der [em Default Page]]
[li Ersetzt die Homepage im Apache]
]
]
[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 id="crypto" [h2 Was ist ein Paketsystem?]
[ul
[li [strong Oft sind Pakete kryptographisch signiert]]
[li Einer der wichtigsten Sicherheitsaspekte von Linux-Systemen]
[li -> Pakete sind vom Maintainer signiert]
]
]
[slide [h2 Apt und dpkg]
[ul
[li Pakete haben Abhängigkeiten]
[li Abhängigkeiten können Paketinstallationen blockieren]
[li Distributionen paketieren deshalb häufig nicht die neusten Programmversionen]
]
]
[slide [h1 Apt und dpkg]]
[slide [h2 Apt und dpkg]
[ul .uncover
[li [h3 Paketquellen bearbeiten]
[pre ~$ less /etc/apt/sources.list]
]
[li [h3 Paketinformationen neu laden]
[pre ~$ sudo apt-get update]
]
[li [h3 zum Installieren vormerken]
[pre ~$ sudo apt-get install ...]
]
]
]
[slide [h2 Apt und dpkg]
[ul
[li [h3 Pakete finden]
[pre ~$ apt-cache search ...]
[pre ~$ apt-cache show ...]
]
]
]
[slide [h2 Apt und dpkg]
[ul
[li [h3 Updates]
[pre ~$ sudo apt-get upgrade]
[pre ~$ sudo apt-get dist-upgrade]
]
[li [h3 Pakete entfernen]
[pre ~$ sudo apt-get remove ...]
[pre ~$ sudo apt-get autoremove]
]
]
]
[slide [h1 Andere Paketsysteme]]
[slide [h2 Andere Paketsysteme]
[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]
[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 Systeminstallation]]
[slide [h2 Systeminstallation]
[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 [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 [h1 Anwendersoftware]]
[slide [h1 \...]]
[slide [h2 Nächster Termin]
[ul
[li Dienstag, 5.7. - morgen]
]
]
]]