Dieses Kapitel behandelt die Installation und Verwaltung von Software auf Ihrem System mithilfe von Paketen . Es behandelt auch die Unterschiede zwischen den verschiedenen Unix-Paketformaten wie RPM, DPKG und Solaris.
Inhalt
Einführung in Pakete
Alle Linux-Systeme verwenden eine Art Softwarepaketsystem, um das Installieren und Entfernen von Programmen zu vereinfachen. Ein Paket ist eine Sammlung von Befehlen, Konfigurationsdateien, Handbuchseiten, gemeinsam genutzten Bibliotheken und anderen Dateien, die einem einzelnen Programm wie Apache Webserver oder Sendmail Mail Server zugeordnet sind und in einer einzigen Paketdatei zusammengefasst sind. Bei der Installation extrahiert das Paketsystem alle Komponentendateien und legt sie an den richtigen Stellen auf Ihrem System ab. Da das System weiß, aus welchem Paket jede Datei stammt, weiß es genau, welche Dateien gelöscht werden müssen, wenn Sie ein Paket entfernen möchten.
Bei fast allen Versionen von Linux enthalten Pakete im Allgemeinen kompilierte Programme, die nur auf der CPU-Architektur funktionieren, für die sie kompiliert wurden. Da Linux viele verschiedene CPU-Typen unterstützt (x86, Alpha und IA64, um nur einige zu nennen), haben einige Programme Pakete für mehrere verschiedene CPUs kompiliert. Ein Paket kann nur auf einem System mit der richtigen CPU-Architektur installiert werden – es sei denn, es ist architekturunabhängig, in diesem Fall wird es auf jedem Systemtyp installiert. Programme, die in Sprachen wie Perl geschrieben sind (zB Webmin) oder Pakete, die nur Dokumentation enthalten, sind normalerweise CPU-unabhängig.
Wenn eine Linux-Distribution installiert wird, ist fast jede Datei, die auf der Festplatte abgelegt wird, ein Mitglied eines der Pakete der Distribution. Dadurch ist es einfach, unerwünschte Software, die standardmäßig installiert wurde, zu entfernen oder zusätzliche Software von der Distributions-CD oder Website hinzuzufügen.
Da einige Programme für den Betrieb von anderen Programmen abhängig sind, können auch Pakete Abhängigkeiten haben. Bestimmte Pakete können möglicherweise nicht installiert werden, es sei denn, Sie haben zuerst ein anderes Paket installiert, und einige Pakete können möglicherweise nicht entfernt werden, wenn andere von ihnen abhängen. Dieses Abhängigkeitssystem schützt den Benutzer davor, Software zu installieren, die aufgrund einer fehlenden gemeinsam genutzten Bibliothek oder eines Befehls nicht funktioniert.
Da das Paketsystem genau weiß, welche Dateien sich in jedem Paket befinden, kann es diese Informationen verwenden, um die Dateien nach der Installation zu validieren. Alle Paketsysteme verfolgen auch die MD5-Prüfsumme für jede Datei, sodass alle manuellen Änderungen an Dateien in einem Paket erkannt werden können. Dies kann sehr nützlich sein, um nicht autorisierte Änderungen zu erkennen, z. B. durch einen Angreifer, der Ihr System geknackt und wichtige Befehle wie ls ersetzt hat und finden Sie mit modifizierten Versionen.
Leider gibt es unter Linux mehr als ein Paketsystem. Am gebräuchlichsten ist RPM, was für Redhat Package Manager steht. Es wird von Redhat, Caldera, SuSE, Mandrake, MSC und einigen anderen Linux-Distributionen verwendet. Es funktioniert gut und es ist mehr Software im RPM-Format verfügbar als bei jedem anderen Paketsystem. Die Installation, Abfrage und Löschung von RPM-Paketen erfolgt mit dem Shell-Befehl rpm.
Der größte Anwärter auf RPM ist Debians Paketformat DPKG. Es ist in vielerlei Hinsicht technisch überlegen, insbesondere was Abhängigkeiten angeht – allerdings wird es nur von Debian und einigen wenigen anderen Distributionen verwendet. Die Befehle dpkg und deselektieren werden am Shell-Prompt verwendet, um Debian-Pakete zu verwalten.
Ein weiteres Paketsystem ist Gentoo's Emerge, das nur unter Gentoo Linux verfügbar ist. Der größte Unterschied zwischen Emerge und anderen Paketsystemen besteht darin, dass fast alle Pakete Quellcode enthalten, der bei der Installation des Pakets kompiliert wird. Die gesamte Installation und Verwaltung von Gentoo-Paketen erfolgt mit dem emerge-Befehl.
Obwohl diese Paketsysteme intern unterschiedlich sind und inkompatible Dateiformate verwenden, bieten sie alle im Grunde die gleichen Funktionen. Alle ermöglichen es, dass mehrere Dateien, die sich auf dasselbe Programm beziehen, in einer Paketdatei kombiniert werden, um die Installation und Entfernung zu vereinfachen und alle Abhängigkeiten zu unterstützen. Leider ist es sehr schwierig, zu einem anderen Paketsystem zu wechseln, sobald Sie sich für eine Linux-Distribution entschieden haben, sodass Sie an dem festhalten, was die Distribution verwendet.
Bei den meisten Distributionen, die RPM verwenden, werden Pakete entweder von der Distributions-CD installiert oder von verschiedenen Websites im Internet heruntergeladen. Debian Linux enthält jedoch einen Befehl namens apt-get das automatisch Pakete aus einem Repository herunterladen und installieren kann, das von den Betreuern der Distribution betrieben wird. Wenn das Paket von anderen abhängt, die noch nicht auf Ihrem System installiert sind, werden diese ebenfalls automatisch heruntergeladen und installiert. Da alle Pakete im Repository von denselben Personen erstellt und verwaltet werden, werden Inkompatibilitäten zwischen ihnen reduziert und Abhängigkeiten leicht gelöst. Das Repository enthält auch ein Paket für fast jedes freie Softwareprogramm, das Sie möglicherweise installieren möchten, sodass Sie nicht im Internet nach dem gewünschten Paket suchen müssen.
Das Debian-Repository kann auch verwendet werden, um alle Pakete auf Ihrem System auf die neueste Version zu aktualisieren. Da häufig neue Versionen von Paketen herauskommen (besonders wenn Sie die Unstable- oder Testing-Debian-Veröffentlichungen verwenden), ist ein Update ein einfacher Weg, um sicherzustellen, dass Sie die neueste Version von allem verwenden. Dies kann jedoch lange dauern, wenn Sie keine schnelle Verbindung zum Internet haben, da bei jedem Update viele neue Pakete heruntergeladen werden können.
Das Emerge-System von Gentoo Linux hat auch ein Repository, aus dem Pakete automatisch heruntergeladen und mit dem emerge-Befehl installiert werden können. Wie apt-get von Debian lädt es automatisch Pakete herunter und installiert sie, die benötigt werden, um Abhängigkeiten bei Bedarf zu erfüllen.
Redhat-Systeme haben auch Zugriff auf ein Paket-Repository als Teil des Redhat-Netzwerks. Dadurch können aktualisierte Pakete auf der Redhat-Website ausgewählt und automatisch oder auf Anfrage auf mehreren Systemen installiert werden. Im Gegensatz zu den Debian- und Gentoo-Repositorys wird es im Allgemeinen nicht zum Installieren neuer Pakete verwendet.
Das Modul Softwarepakete
Das Modul Softwarepakete bietet eine konsistente Schnittstelle zum Installieren, Suchen und Entfernen von Paketen, unabhängig vom tatsächlich verwendeten Paketsystem. Das Symbol finden Sie unter der Kategorie System, und wenn Sie darauf klicken, gelangen Sie zur unten gezeigten Hauptseite.
Die Hauptseite des SoftwarepaketmodulsAbhängig von Ihrer Linux-Distribution kann die Seite etwas anders aussehen - zusätzliche Schaltflächen und Felder für die Installation aus einem Repository können sichtbar sein. Der obere Abschnitt zum Auffinden von Paketen, der mittlere Abschnitt zum Installieren eines Pakets und der untere Abschnitt zum Identifizieren einer Datei sind jedoch immer vorhanden.
Ein neues Paket installieren
Bevor Sie ein neues Programm mit diesem Modul installieren können, müssen Sie zunächst eine Paketdatei dafür finden, die das richtige Format hat. Für RPM-basierte Distributionen wie Redhat sind die Distributions-CDs oder die Website rpmfind.net die besten Orte, um nachzusehen. Wenn Sie Debian Linux verwenden, ist es am besten, die Installation aus dem APT-Repository zu versuchen, da es fast alle verfügbaren Pakete enthält. In beiden Fällen sind die Schritte zum Installieren eines Pakets ähnlich:
- Scrollen Sie auf der Hauptseite des Moduls nach unten zum Formular *Neues Paket installieren*, das verwendet wird, um das Paket auszuwählen und den Installationsvorgang zu starten.
- Wenn sich die Paketdatei auf dem System befindet, auf dem Webmin ausgeführt wird, wählen Sie Aus lokaler Datei aus Option und geben Sie den vollständigen Pfad zur Paketdatei ein. Wenn Ihr System RPM-Pakete verwendet, können Sie ein Verzeichnis mit mehreren .rpm-Dateien oder einen Platzhalter wie /tmp/*.rpm eingeben auch. Dies kann verwendet werden, um mehrere Pakete auf einmal zu installieren. Wenn sich das Paket auf dem Computer befindet, auf dem Ihr Browser ausgeführt wird, wählen Sie Aus hochgeladener Datei aus Option und klicken Sie auf Durchsuchen Schaltfläche, um die Paketdatei auszuwählen. Wenn Sie Ihren Browser auf der Konsole Ihres Webmin-Systems ausführen, gibt es keinen Unterschied zwischen dieser Option und der vorherigen. Wenn sich das Paket irgendwo auf einer Website befindet, wählen Sie die Von FTP- oder http-URL aus Option und geben Sie die URL in das Textfeld daneben ein oder fügen Sie sie ein. Webmin übernimmt den Download für Sie, bevor Sie mit der Installation beginnen. Wenn Ihr System RPM-Pakete verwendet und Sie den Befehl rpmfind installiert haben, wird die Suche auf rpmfind.net neben dem URL-Feld kann geklickt werden, um ein Fenster zum Durchsuchen der RPM-Datenbank unter http://rpmfind.net/ zu öffnen. Wenn Sie Debian Linux ausführen, können Sie die Option *Paket von APT* auswählen und den Paketnamen in das Textfeld daneben eingeben. Klicken Sie auf APT suchen Schaltfläche, um den Paketnamen zu finden, wenn Sie nicht genau wissen, wie er heißt. Wenn Sie Redhat Linux ausführen, das Paket von Redhat Network Option kann verwendet werden, um eines der Pakete zu installieren, die Sie zum Herunterladen zur Verfügung haben. Die Suche RHN kann verwendet werden, um alle verfügbaren anzuzeigen. Wenn Sie Gentoo Linux ausführen, das From Portage repository Option und Suchen Schaltflächen können zur Installation aus dem Repository verwendet werden. Tatsächlich können nur sehr wenige Gentoo-Pakete außerhalb des Repositorys gefunden werden.
- Sobald die Paketquelle eingegeben wurde, klicken Sie auf Installieren Taste. Wenn Sie sich für die Installation aus einem Repository (wie APT, Redhat Network oder Portage) entschieden haben, wird der Download- und Installationsprozess sofort gestartet. Webmin zeigt die Ausgabe des Installationsbefehls und bei Erfolg eine Liste der installierten Pakete an. Es sind keine weiteren Schritte erforderlich, um den Installationsvorgang abzuschließen. Wenn eine andere Installationsquelle ausgewählt wurde, wird das Paket bei Bedarf heruntergeladen und das Formular mit den Installationsoptionen angezeigt.
- Die verfügbaren Installationsoptionen unterscheiden sich abhängig von Ihrem Paketsystem, aber die Standardeinstellungen funktionieren gut, um ein Paket ohne Abhängigkeitsprobleme zu aktualisieren oder zu installieren. RPM-basierte Systeme haben mehrere Optionen, von denen die nützlichsten sind :* Abhängigkeiten ignorieren? *Wenn ein Paket aufgrund von Abhängigkeitsfehlern, von denen Sie wissen, dass sie nicht korrekt sind, nicht installiert werden kann, setzen Sie diese Option auf Ja . Es kann auch nützlich sein, wenn Sie später Pakete installieren, um die Abhängigkeitsprobleme zu lösen. *Neue Version durch alte ersetzen? *Wenn Sie ein Paket auf eine ältere Version herunterstufen möchten, muss diese Option auf Ja gesetzt werden . *Dateien überschreiben? *Wenn ein Paket aufgrund von Konflikten mit Dateien aus einem anderen Paket nicht installiert werden kann, aktivieren Sie diese Option.
- Wenn Sie mit der Auswahl der Installationsoptionen fertig sind, klicken Sie auf Installieren Taste. Wenn alles gut geht, wird eine Seite mit den Details des neuen Pakets und allen darin enthaltenen Dateien angezeigt. Wenn die Installation jedoch fehlschlägt, wird eine Fehlermeldung angezeigt, die den Grund erklärt. In diesem Fall können Sie die Schaltfläche „Zurück“ des Browsers verwenden, um zum Formular mit den Installationsoptionen zurückzukehren und es erneut mit anderen Optionen zu versuchen.
Suchen und Entfernen eines Pakets
Ein typisches Linux-System hat Hunderte von installierten Paketen, von denen die meisten als Teil des Installationsvorgangs der Distribution installiert wurden. Da es so viele gibt, ist es schwierig, sie einfach zu durchsuchen, um einen zu finden, den Sie entfernen oder dessen Details Sie anzeigen möchten. Gehen Sie folgendermaßen vor, um ein oder mehrere Pakete zu finden:
- Geben Sie auf der Hauptseite des Moduls einen Suchbegriff in das Feld Suche nach Paket ein Feld. Dies wird mit den Namen und Beschreibungen aller Pakete abgeglichen, sodass Sie etwas wie Apache eingeben können um alles zu finden, was mit Apache zu tun hat.
- Klicken Sie auf Paket suchen Schaltfläche, die entweder eine Liste aller passenden Pakete anzeigt, Sie zu den Details des Pakets führt, wenn genau eines gefunden wird, oder eine Fehlermeldung anzeigt, wenn keine gefunden wurden. Wenn eine Liste angezeigt wird, klicken Sie auf einen der Paketnamen, um die vollständigen Details anzuzeigen.
- Die Paketdetailseite (siehe unten) zeigt alle verfügbaren Informationen an, einschließlich einer vollständigen Beschreibung. Wenn Sie alle darin enthaltenen Dateien sehen möchten, klicken Sie auf Dateien auflisten Taste. Dadurch gelangen Sie zu einer Seite, die den Pfad, den Typ, den Eigentümer und die Gruppe sowie den Validierungsstatus für jede Datei anzeigt. Der Status ist besonders nützlich, da Sie sehen können, ob eine Datei seit der Installation des Pakets manuell geändert wurde.
Pakete können auch manuell durchsucht werden, indem Sie auf der Hauptseite auf die Schaltfläche *Paketbaum* klicken. Auf den meisten Betriebssystemen ist jedes Paket Mitglied einer Klasse wie Entwicklung oder Verwaltung/Netzwerk . Die Paketbaumseite verwendet diese Klasseninformationen, um alle installierten Pakete in einer Hierarchie anzuzeigen, ähnlich wie in einem Verzeichnisbaum. Sie können Klassen öffnen, indem Sie auf ihre Ordnersymbole klicken, bis Sie zur Paketebene gelangen. Wenn Sie auf ein Paketsymbol klicken, gelangen Sie zur gleichen Detailseite wie in den obigen Schritten beschrieben.
Wenn Sie den Namen eines Befehls oder einer Datei kennen und das zugehörige Paket finden möchten, können Sie die Datei identifizieren Formular auf der Hauptseite verwendet werden. Geben Sie entweder einen vollständigen Pfad (wie /etc/rc.d/init.d/httpd) oder einen Befehl (wie apachectl) in das Feld Suchen nach ein Feld und klicken Sie auf die Schaltfläche. Wenn die Datei oder der Befehl dem Paketsystem bekannt ist, werden Informationen darüber zusammen mit einer Liste der Pakete angezeigt, zu denen sie gehören. Durch Klicken auf einen der Paketnamen gelangen Sie auf die oben beschriebene Informationsseite.
Sobald ein Paket durch Suchen oder Durchsuchen des Baums gefunden wurde, können Sie es von Ihrem System löschen, indem Sie diesen Schritten folgen:
- Klicken Sie auf der Paketdetailseite auf Deinstallieren Taste. Dadurch gelangen Sie zu einer Bestätigungsseite, auf der die Anzahl der Dateien im Paket und der Speicherplatz, den sie belegen, angezeigt werden.
- Wenn Sie das RPM-Verpackungssystem verwenden, wird die Option Abhängigkeiten ignorieren? angezeigt kann auf Ja gesetzt werden um eine Deinstallation zu erzwingen, selbst wenn einige andere Pakete davon abhängen, dass dieses entfernt wird.
- Klicken Sie auf Löschen Schaltfläche, um das Paket zu entfernen. Wenn etwas schief geht, wird eine Fehlermeldung angezeigt. Bei Erfolg kehrt der Browser zur Hauptseite des Moduls oder zur Ergebnisliste der Paketsuche zurück, wenn Sie das Paket über eine Suche gefunden haben.
Aktualisierung auf Debian Linux
Wenn Sie Debian Linux ausführen, befindet sich unten auf der Hauptseite des Moduls ein Formular mit der Überschrift Alle Pakete aktualisieren . Dieses Formular hat drei Optionen:
- Paketliste neu synchronisieren
- Wenn diese Option auf Ja gesetzt ist , wird das Debian-Paket-Repository abgefragt, um die neueste Liste der zum Download verfügbaren Pakete abzurufen. Dies sollte vor jedem Upgrade erfolgen, damit Ihr System weiß, von welchen URLs es heruntergeladen werden muss, wenn Pakete aus dem APT-Repository installiert werden. Der eigentliche Befehl zum Synchronisieren der Paketliste ist apt-get update.
- Führen Sie ein Distributions-Upgrade durch
- Wenn diese Option auf Ja gesetzt ist , wird Ihr Debian-System beim Absenden des Formulars auf die neueste Distributionsversion aktualisiert. Mit der Voreinstellung Nein Auswahl, wird es einfach aktualisiert, so dass alle installierten Pakete die neueste Version sind. Sofern Sie keine schnelle Netzwerkverbindung haben und wirklich aktualisieren möchten, ist es ratsam, diese Option auf Nein eingestellt zu lassen . Wenn Ja ausgewählt ist, wird der Befehl apt-get upgrade-dist ausgeführt. Für Nein , wird stattdessen apt-get upgrade verwendet.
- Nur anzeigen, welche Pakete aktualisiert würden
- Wenn auf Ja gesetzt , wird nichts tatsächlich installiert, wenn das Formular gesendet wird – stattdessen wird eine Liste von Paketen angezeigt, die aktualisiert oder installiert würden. Dies kann nützlich sein, wenn Sie genau sehen möchten, was bei einem Update passieren würde, bevor Sie wirklich fortfahren.
Nachdem Sie Ihre Auswahl getroffen haben, klicken Sie auf Jetzt upgraden Taste. Webmin führt die entsprechenden apt-get-Befehle aus und zeigt ihre Ausgabe an, sodass Sie sehen können, welche Pakete heruntergeladen und aktualisiert werden.
Aktualisierung auf Redhat Linux
Redhat bietet Benutzern seiner Linux-Distribution einen Dienst namens Redhat Network an. Eine seiner Funktionen ermöglicht es Ihnen, aktualisierte RPM-Pakete automatisch auf Ihrem System zu installieren, um Fehler oder Sicherheitslücken zu beheben, die in den mit der Distribution gelieferten Paketen gefunden werden. Wenn Sie Redhat Linux ausführen, wird unten auf der Hauptseite unter der Überschrift Redhat Network Options ein Formular angezeigt die Sie verwenden können, um die automatische Installation aktualisierter Pakete zu konfigurieren. Bevor es verwendet werden kann, müssen Sie sich beim Redhat Network angemeldet und das System registriert haben, auf dem Sie Webmin ausführen.
Das Formular dient eigentlich zwei Zwecken – dem Ändern der Einstellungen für den Aktualisierungs-Daemon, der regelmäßig nach neuen Paketen sucht, und dem Erzwingen einer sofortigen Aktualisierung. Die Felder auf dem Formular sind:
- Automatisch nach Updates suchen?
- Wenn diese Option auf Ja gesetzt ist , wird der <>ttrhnsd-Daemon, der nach Updates sucht, so konfiguriert, dass er beim Booten startet und bei Bedarf gestartet wird, wenn das Formular gesendet wird. Setzen Sie es auf Nein stoppt den Daemon und verhindert, dass er beim Booten gestartet wird.
- Prüfintervall
- Wenn der automatische Update-Daemon aktiviert ist, wird die Anzahl der Minuten zwischen der Suche nach neuen Paketen durch diese Option bestimmt.
- Proxy-Server-URL zum Herunterladen
- Wenn Ihr System keine direkte Verbindung zur Redhat-Website herstellen kann, müssen Sie diese Option auf die URL eines Web-Proxy-Servers setzen. It must be formatted like http://proxy.company.com:8000/ .
- Skip packages matching
- This option is for entering list of patterns for package names that you do not want automatically updated. By default it prevents kernel updates from being automatically installed.
The Save and Apply button will save your settings and start or stop the rhnsd daemon as necessary. The Save and Check Now button will do the same thing, but will also run the up2date command to immediately check for and download new packages. All output from the command will be displayed so that you can see which packages are being updated.
Other operating systems
Linux is not the only version of Unix that uses packages to simplify the process of installing and removing software. The operating systems listed below can also use the Software Packages module, with an almost identical user interface. However, each has its own packaging format that is incompatible with Linux or any other variety of Unix. The differences between each Unix's package system and RPM are explained below :
Sun Solaris, SCO OpenServer and SCO UnixWare
All of these operating systems use the same basic System V package format, but packages from one cannot be installed on any of the others.
Package files are usually named something .pkg or something .pkg.gz. If a package file is compressed, Webmin will uncompress it automatically.
Files can contain multiple packages, all of which will be installed when using Webmin. - No package repository or search service exists for System V packages. - Directories like /usr/bin are often shared between multiple system packages.
FreeBSD, NetBSD and OpenBSD
Package files have names like something .tgz, and are actually just specially formatted tar files.
Webmin does not support any repository for BSD packages.
HP/UX
HP/UX uses its own unique Depot package format Package files are usually named like something .depot or something .depot.gz. If a package is compressed, Webmin will automatically uncompress if for you.
Webmin does not support any repository for HP/UX packages.