Freitag, 24. Juni 2016

102.5 RPM und YUM-Paketverwaltung verwenden

Wichtung: 3


  • RPM Red Hat Package Manager
  • Fast alle Distributionen, die nicht auf Debian basieren arbeiten mit dem RPM
  • Installation von kompilierten Programmen im Binärformat, allerdings ohne Auflösung von Abhängigkeiten
  • Auflösung der Abhängigkeiten, Beschaffung notwendiger Pakete und Installation derselbigen übernehmen Frontends, wie z.B. YUM
  • Dateiname Pakete Aufbau: bash-3.0-15.i586.rpm
    • bash      Name des Pakets
    • 3.0         Versionsnummer des Pakets
    • 15           Revisionsnummer 
    • i586        unterstütze Architektur


Konfigurationsdateien

  • Hauptkonfigurationsdatei von RPM ist rpmrc, die sich in verschiedenen Verzeichnissen befinden kann
  • /etc/rpmrc      enthält systemweite Konfiguration, die auch erhalten bleibt, wenn RPM aktualisiert wird. Diese Datei ist normalerweise nicht vorhanden und muss bei Bedarf erzeugt werden
  • /usr/lib/rpm/rpmrc     systemweite Konfiguration, die mit der Aktualisierung von RPM überschrieben wird
  • /usr/lib/rpmrc             veralteter Speicherort, der /usr/lib/rpm/rpmrc entspricht
  • .rpmrc im Benutzerverzeichnis definiert Einstellungen, die nur für einen bestimmten Benutzer gelten sollen
  • Prüfungsrelevant ist nur das Wissen, dass diese Dateien existieren. Veränderungen an diesen Dateien werden nur vorgenommen, wenn man selbst Pakete erzeugt
  • /usr/lib/rpm                Verzeichnis enthält Skripte, die RPM für das Paketmanagement verwendet
  • /var/lib/rpm                 Datenbanken mit installierten Komponenten, Abhängigkeiten, Konflikten und anderen Informationen, nicht Prüfungsrelevant


Verwendung von RPM selbst

  • Prüfungsrelevant ist nur das Kommando rpm selbst, darüber hinaus gibt es jedoch weitere RPM-Programme, wie z.B. rpmbuild, rpmverify, rpmquery, rpmheader, rpmarchive
  • rpm -i bzw. --install     Installiert das angegebene Paket
  • rpm -U bzw. --upgrade     aktualisiert das Paket, bzw. installiert es einfach, wenn keine Vorgängerversion gefunden wurde
  • für diese beiden Modi gibt es weitere Parameter:
    • -h bzw. --hash        Fortschrittsanzeige mit 50 Hash (#)-Zeichen
    • Zwangsinstallation von Paketen möglich, wenn z.B. Abhängigkeiten nicht erfüllt sind, oder Konflikte mit bestehenden Paketen bestehen. Nur anwenden, wenn man weiß, was man tut ;-) daher gibt es keine Buchstabenausführung
      • --force                       Installation bei bestehenden Konflikten
      • --nodeps                     lässt die Prüfung von Abhängigkeiten bei der Installation aus
    • -v bzw. --verbose     Verbose-Mode
    • --test                                   testet und nimmt keine Änderungen am System vor
  • rpm -e bzw. --erase       (früher --uninstall) entfernt das Paket
    • --nodeps                               lässt die Prüfung von Abhängigkeiten bei der Deinstallation aus
  • rpm -V <Paket>                          Überprüfung (-verify) eines installierten Pakets, ob die dazu gehörenden Dateien gelöscht oder modifiziert wurden
    • --nofiles                              keine Warnung bei fehlenden Dateien ausgeben
    • --nomd5                                 keine Warnung bei md5-Pfrüfsummenfehler ausgeben
    • --nopgp                                 keine Warnung bei PGP-Signaturfehler ausgeben
    • ausgegeben Informationen sind folgendermaßen definiert:
      • S (Size)      Größe weicht vom Original ab
      • M (Mode)      Berechtigung auf die Datei wurde geändert
      • 5 (MD5)        die Checksumme ist abweichend
      • D (Device)  Fehler in Gerätenummer
      • L (Link)      Fehler im Pfad des Softlinks
      • U (User)      Besitzer der Datei wurde geändert
      • G (Group)    Besitzergruppe der Datei wurde geändert
      • T (Time)      Änderungszeit der Datei wurde geändert
      • Fehlercodes sind nicht prüfungsrelevant, nur die Kenntnis darüber, dass eine Überprüfung ausgeführt werden kann      
  • rpm -F bzw. --freshen     aktualisiert Pakete nur, wenn sie tatsächlich schon vorhanden sind
  • rpm -q <Paket>                          Abfrage auf RPM-Datenbank dient ohne weitere Optionen dazu, heraus zu finden, ob das Paket installiert ist
  • zusätzliche Parameter können sein:
    • - a bzw. --all                   listet alle auf dem System installierte Pakete auf (Filterung mit Hilfe grep möglich). Bietet sich auch an, wenn man sich nicht sicher ist, wie ein bestimmtes Paket genau heißt
    • -f <datei> bzw. --file <datei>     listet das Paket auf, was zu einer bestimmten Datei gehört
    • -p <paketname>                       durchsucht ein definiertes Paket, welches nicht installierte ist. Um zu spezifizieren, welche Informationen man ausgegeben haben möchte, stehen folgende Optionen zur Verfügung:
      • -c bzw. --configfiles  nur Config-Daten
      • -d bzw. --docfiles          nur Dateien der Dokumentation
    • -l bzw. --list          Liste der im Paket enthaltenen Dateien
    • -R bzw. --requires              Abhängigkeiten zu anderen Paketen
    • -i bzw. --info                       umfangreiche Informationen zu einem Paket
  • -i (ohne q davor) = Installation                  -qi = Abfrage
  • Beispiel: rpm -Uhv /i586/fortune-1.0-860.i586.rpm (Installation des Pakets fortune mit Fortschrittsanzeige)  
  • Pakete umwandeln um einzelne Dateien zu extrahieren: rpm2cpio; cpio (copy in and out) ist ein Programm zur Bearbeitung von Archiven
    • Umwandlung des rpm-Pakets in ein cpio-Paket und dann die gewünschte Datei extrahieren
    • rpm2cpio kommt ohne Optionen ausrpm2cpio samba-3.3.2-0.33.rpm > samba.cpio
    • Umwandlung und Extraktion ist in einem Schritt möglich
      rpm2cpio samba-3.3.2 -0.33.rpm |cpio -ivd usr/share/man/man7/samba.7 (Installation der reinen Manpage auf dem System) 


yum und der yumdownloader

  • "Frontend" (ähnlich apt-get) für RPM-Pakete
  • /etc/yum.conf                     Hauptkonfigurationsdatei; Festlegung u.a. des Cache-Verzeichnisses
  • /var/cache/yum                  Standard Cache-Verzeichnis
  • /etc/yum.repos.d               Verzeichnis, welches Dateien enthält, die die URLs zu den RPM-Paketen enthalten
  • yum search Paket         Suche nach einem bestimmten Programm; Ausgabe ist recht umfangreich und detailiert. U.a. wird auch das zur Installation benötigte Paket genannt
  • yum install Paket       Download und Installation des Pakets
  • yum remove Paket         Entfernen des Programms (incl. Konfigurationsdateien?)
  • yum list updates        Auflistung der zu aktualisierenden Pakete (auch als nicht root ausführbar)
  • yum update                     Aktualisierung der installierten Pakete (im Unterschied zu apt-get update, wo die Repositories aktualisiert werden)
  • yum update kernel     Aktualisierung des Kernels
  • yumdownloader ist ein reines Hilfsmittel, um die RPM-Pakete aus dem Internet herunter zu laden
    • --destdir     Angabe eines Zielverzeichnisses. Ansonsten wird das aktuelle Verzeichnis verwendet
    • --urls          Anzeige der URL-Quelle, kein Download
    • --resolve     Auflösen von Abhängigkeiten und download der zusätzlich benötigten Pakete
    • --source       download der Programmquelle anstatt der Binärdatei

Paketmanagment ist unbedingt Prüfungsrelevant

Keine Kommentare:

Kommentar veröffentlichen