LPI 101 - Unix-AG
Transcription
LPI 101 - Unix-AG
LPI 101 Installation von Linux und Paketmanagment Heiko Teßmann [email protected] Universität Kaiserslautern - Unix-AG LPI 101 – p. 1/3 verschiedene Partitionen mehrere physikalische Platten nutzbar Backups leichter userquotas statische Datenbereiche Bootmanager - 1024 Zylindergrenze bestimmte Teile System im Netz auch anderen Rechnern zur Verfügung stehen, andere nicht Wurzeldateisystem / - muss Bootmanager bekannt sein LPI 101 – p. 2/3 Verzeichnisse auf / /bin /dev /etc /lib /sbin (/root) /usr - Unix System Ressources - sep. Part. » / LPI 101 – p. 3/3 auslagerbare Verzeichnisse /var (variable Daten) /var/lib modifizierbare Einstellungen (statt /usr/lib) /var/lock Lock-Dateien /var/log Logbücher des Systems /var/run Dateien von laufenden Programmen mit PID /var/spool /var/tmp temp Dateien /home Router/Webserver vs. Fileserver/Arbeitsstation /tmp Schreibrechte für User /boot 1024 Zylinder-Grenze - modern: Umgehung durch LBA-Methode LPI 101 – p. 4/3 Swap-Partition fdisk Typ82 (LinuxSwap) Vorbereitung mit mkswap während Booten: swapon Eintrag in /etc/fstab /dev/hdc2 none swap sw 0 0 Größe ? 64-128MB LPI 101 – p. 5/3 Bootmanager BIOS sucht Platte, von der es booten soll: äußerster Zylinder (0) Partitionstabelle Spur 0: MBR → Hinweis auf erste Partition der Platte (kann Bootstrap-Loader enthalten - info wie BS geladen werden soll) bei mehreren BS’s: kleines Programm-Bootmanager im MBR(< 512B) für Benutzerauswahl Stage 1: Bootmanager lädt ohne BS kleines Programm von Partition Stage 2: Programm, welches eigentliches Menu enthält Stage 3: laden des eigentlichen Systems LPI 101 – p. 6/3 Bootmanager LInux LOader + GRand Unified Bootloader Lilo: /etc/lilo.conf wird von lilo gelesen daraufhin erstellt: Menueeintraege → /boot/boot.b weitere Elemente eventuell in /boot/boot-menu.b /boot/message /boot/boot-bmp.b Adressen + Größe - Kerneldateien in /boot/map Programm in MBR schreiben (enthält Adressen der o.g. Dateien) bei jeder Änderung neuer Aufruf von lilo nötig: lilo -u (-U) - Deinstallation Standard Bootprompt: LILO boot: LPI 101 – p. 7/3 Lilo-Fehler: nichts: kein Teil geladen: lilo nicht installiert oder auf Bootsektor nicht aktivierter Partition LFehlernummer erster Teil lokalisiert und geladen, 2. Teil nicht geladen LI 2. Teil geladen, aber nicht ausführbar - z. B. Inkompatibilität Plattengeom. oder /boot/boot.b bewegt LIL 2.Teil gestartet, kann map-files nicht laden LIL? 2.Teil an falscher Adresse geladen - /boot/boot.b verändert oder bewegt LIL- Beschreibungstabelle beschädigt - OF-Fehler oder /boot/map verändert, bewegt LILO alles ok Bei Fehler lilo erneut aufrufen oder lilo.conf checken. LPI 101 – p. 8/3 /etc/lilo.conf append= Kernelparameter z.B. ide-scsi=/dev/hdc boot= Ort des Bootloaders( den lilo schreibt) - MBR oder Bootsektor Partition lba32 Lilo kann auch mit Platten > 1024 Zylinder umgehen (wenn BIOS im LBA-Modus) message Datei mit Bildschirmmeldung d. Bootloaders (in Bootsektor geschrieben) promt warten auf Benutzereingabe LPI 101 – p. 9/3 /etc/lilo.conf timeout Zeit in 1/10 sec. image Linux-Systeme + Angabe über Partition, mit Wurzel des Systems other alles andere erster Eintrag - voreingestellt initrd=/boot/initrd initiale Ramdisk LPI 101 – p. 10/3 grub grub schreibt Eintrag in MBR, welcher /boot/grub lädt dieses lädt dann /boot/grub/grub.conf einmal /sbin/grub-install /dev/hda ausführen (MBR-IDE-Disk 1) zweite Stufe von Grub lädt selbst Konfigurationsdatei LPI 101 – p. 11/3 grub.conf default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz title Linux (2.0.35) root (hd0,0) kernel /bzImage-2.0.35 ro root=/dev/hda3 initrd /initrd-2.0.35.img title WfW 3.11 map (hd0,0) (hd0,1) map (hd0,1) (hd0,0) rootnoverify (hd0,1) chainloader +1 LPI 101 – p. 12/3 grub title Titelzeile root hdn.m - Partition, auf der Kerneldateien liegen kernel Kerneldatei Parameter initrd Ramdiskimage map (Partition1) (Partition2) - Win98 bootet nur von erster Partition rootnoverify (Partition) - entspricht Angabe von root ohne Mounten, da Bootsektor der Partition geladen wird chainloader +1 Windows wird über chainloader gebootet, Bootsektor = Sektor 1 LPI 101 – p. 13/3 Quellcode-Pakete Makefile - make: Automatisierung der Erstellung von Programmen viele Quellcode-Pakete im .tgz oder .tbz -Format (gepackte tar-Archive) entpacken mit gunzip -d (gzip -d) bzw. bzip2 -d und anschließend tar -xf datei.tar oder direkt mit Option -z (gzip) bzw. -j (bzip2) von tar wenn kein Makefile existiert - erstellen über beiliegendes configure aus Makefile.in Aufruf: ./configure - -help für mögliche Optionen LPI 101 – p. 14/3 Makefile übersetzen mit make - entspricht meist make all Installation mit make install (root-Rechte nötig!) make clean - löschen aller Objektdateien Anpassen von Makefile: Variablen ähnlich wie in Shellscripts installprefix=/usr/local Zugriff: ${Variablenname} Anpassung der Installationsverzeichnisse möglich (z.B. installdir, mandir. . .) LPI 101 – p. 15/3 Verwaltung von shared libraries Funktionsbibliotheken können mehrfach verwendetbar statisches Linken: event. Bibliotheken oft im Speicher → gleichzeitig geladene Programme: Speicherreduzierung laden der Libraries vor dem Laden des Programms → Programm zum Laden nötig: ld.so sd.so lädt Lib, bereitet dann Programm vor und lädt dann dieses LPI 101 – p. 16/3 Suche nach Libraries in: Pfade in LD_LIBRARY_PATH /etc/ld.so.cache - enthält binäre Liste aller vorher gefundenen Library-Kandidaten (ldconfig) /usr/lib und /lib werden durchsucht welche Libraries benötigt bestimmtes Programm ? ldd /usr/local/bin/mplayer LPI 101 – p. 17/3 Librarys installieren und aktualisieren wohin? - /lib, /usr/lib, /usr/local/lib ldconfig für interne Verwaltung der Lib’s wartet Library Cache + erstellt notwendige symbol. Links auf Lib’s Library Cache liegt in /etc/ld.so.cache binär codierte Liste aller bekannten Lib’s ldconfig durchsucht /usr/lib, /lib und alle in /etc/ld.so.conf aufgelisteten z.B. foo → /usr/local/foo/lib → in ld.so.conf → ldconfig → /etc/ld.so.cache → Linker/Loader bekannt LPI 101 – p. 18/3 Paketmanager zwei große Modelle für Paketverwaltung: Debian und RedHat Progr.name_Versionsnummer_Architektur.deb bzw. .rpm Debian-Paket: ar-Archiv enthält zwei komprimierte tar-Archive data.tar.gz enthält zu installierende Programme control.tar.gz enthält Metainformationen .rpm und .deb Pakete enthalten 4 Scripte: vor und nach Installation/Deinstallation ausgeführt LPI 101 – p. 19/3 Informationen über installierte .deb-Pakete in Dateien unter /var/lib/dpkg/ available Paketinformationen aller zur Verfügung stehender Pakete status Informationen über Status der Installation info vier Scripte (.preinst, .postinst, .prerm, .postrm) sowie Liste enthaltener Dateien (.list), .md5sums und andere Informationen - zur Verfügung gestellte Libs (.shlibs) LPI 101 – p. 20/3 dpkg dpkg [Optionen] -i | -install Paketdatei.deb Optionen: -recursive oder -R : statt Paketname Verzeichnisname Schritte der Installation: entpacken Kontrolldateien PreRemove-Script einer älteren Version PreInst-Script des neuen Pakets entpacken der Dateien und gleichzeitiges Sichern der Dateien älterer Versionen PostRemove der älteren Version PostInstall der neuen Version LPI 101 – p. 21/3 Deinstallieren mit dpkg dpkg [Optionen] -r | -remove Paketname normales Deinstallieren dpkg [Optionen] -P | -purge Paketname alles entfernen (auch Konfigurationsdateien) Schritte der Deinstallation: PreRemove-Script löschen der zu entfernenden Dateien PostRemove-Script LPI 101 – p. 22/3 Informationen dpkg -p | -print-avail Paketname ließt Info aus /var/lib/dpkg/available dpkg -l | -list [Paketnamenmuster] Liste bestimmter oder aller inst. Pakete dpkg -L | -listfiles Paketname Liste aller Dateien eines Paketes dpkg -s | -status Paketname Status des Paketes - möglich: installed, half-installed, not-installed, unpacked, half-configured, config-files dpkg -S | -search Dateinamenmuster welches Paket enthält Datei LPI 101 – p. 23/3 Optionen für dpkg entweder über Kommandozeile oder in /etc/dpkg/dpkg.cfg –abort-after=Zahl - Abbruch nach Fehleranzahl (50) -B|–auto-deconfigure - Pakete, die zu deinstallierende Programme benötigten werden auch deinstalliert –ignore-depends=Paket Abhängigkeiten werden Ignoriert, nur Warnungen –refuse-downgrade|-G wenn neuere Version existiert keine Installation Vollständige Liste in Handbuchdatei dpkg-reconfigure - installiertes Paket neu konfigurieren LPI 101 – p. 24/3 dselect menügeführtes Frontend für dpkg verwaltet auch zur Verfügung stehende Pakete verschiedene Methoden zum managen zur Verfügung stehender Pakete: cdrom nfs harddisk mounted floppy apt LPI 101 – p. 25/3 dselect - Möglichkeiten Zugriff (access) Erneuern (update) Auswählen (select) Install Config Löschen LPI 101 – p. 26/3 apt-get Konfiguration in /etc/apt/apt.conf oder in /etc/apt/apt.conf.d Quellen stehen in /etc/apt/sources.list Aufruf-formen: apt-get upgrade apt-get install Paketname apt-get remove Paketname apt-get source Paketname apt-cache search Name LPI 101 – p. 27/3 alien zum konvertieren verschiedener Paketformate RedHat, Debian, Stampede, Slackware, Solaris - -to-dep - -to-rpm - -to-tgz - -to-slp LPI 101 – p. 28/3 rpm rpm -i | -install [Optionen] Paketdatei Installation - -nodeps, - -noscripts, - -test, - -excludedocs, - -replacepkgs, - -replacefiles, - -oldpackage - -force - Kombination von - -replacepkgs - -replacefiles - -oldpackage rpm -U | -upgrade [Optionen] Paketdatei Upgrade oder Neuinstallation rpm -F | -freshen [Optionen] Paketdatei nur Upgrade LPI 101 – p. 29/3 Abfrage von Informationen rpm -qi Paketname oder rpm - -query - -info Paketname rpm -qi -p Paketdatei oder rpm - -query - -info - -package Paketdatei rpm -q Paketname -queryformat %{Version} n nur Information der Version rpm - -querytags - komplette Liste aller so benutzbaren Variablen (>100) LPI 101 – p. 30/3 Abfrage von Informationen rpm -ql Paketname Liste aller Dateien des Paketes (- -list) rpm -qd -p Paketdatei Liste aller Dokumentationsdateien (- -docfiles) rpm -qc Paketname Liste aller Konfigurationsdateien (- -configfiles) rpm -q - -scripts Paketname Liste aller Scriptdateien rpm -qa Liste aller installierten Pakete (- -all) rpm -qg Gruppe installierte Pakete einer Gruppe (- -group) LPI 101 – p. 31/3 Abfrage von Informationen rpm -qf Dateiname aus welchem Paket stammt Datei? (- -file) rpm -q - -whatrequires Datei oder rpm -q - -whatrequires Funktion welches installierte Paket benötigt Datei bzw. Paket ? rpm -qR Paketname welche Pakete von Paket benötigt? (- -requires) LPI 101 – p. 32/3 Sicherheitsabfragen rpm -V | - -verify Paketname Ausgabe: 8 Zeichen lange Zeichenkette S, M, 5, D, L, U, G, T rpm - - checksig Paketdatei Überprüfen der PGP oder GPG-Signatur LPI 101 – p. 33/3