Linux/Software/Verwaltung: Unterschied zwischen den Versionen

Aus Foxwiki
Markierung: Ersetzt
Zeile 50: Zeile 50:
Leider liegen manche Programme nicht in der neuesten Version vor, andere Programme fehlen, weil beispielsweise die Lizenz des Herstellers nicht mit der Distribution vereinbar ist. Dann muss man sich selbst darum kümmern, an die aktuelle Version des gewünschten Paketes zu kommen, um diese auf dem Rechner installieren zu können.
Leider liegen manche Programme nicht in der neuesten Version vor, andere Programme fehlen, weil beispielsweise die Lizenz des Herstellers nicht mit der Distribution vereinbar ist. Dann muss man sich selbst darum kümmern, an die aktuelle Version des gewünschten Paketes zu kommen, um diese auf dem Rechner installieren zu können.


=== [[Image:Grafik7.png|right|top|alt="Bild:Tar-archive.png"]]Kompilierung von Quellarchiven  ===
=== Kompilierung von Quellarchiven  ===
 
[[Image:Grafik7.png|right|top|alt="Bild:Tar-archive.png"]]
 
Bevor Linux auf der Bildfläche erschien, wurden Programm-Pakete in Source-Form zur Verfügung gestellt, die in komprimierte Tar-Archive (auch als Tar-Ball bezeichnet) verpackt wurden. Während früher haupt­sächlich das Unix-eigene compress zum Komprimieren verwendet wurde, ist es inzwischen weitgehend von gzip verdrängt worden, das einen besseren Komprimierungs-Faktor erzielt. Vereinzelt wird auch bzip2 ein­gesetzt (z. B. von http://www.blackdown.org ), da es noch einen Tick besser ist hier wurde zum Vergleich die Tar-Datei von tkcvs 6.4 herangezogen)
Bevor Linux auf der Bildfläche erschien, wurden Programm-Pakete in Source-Form zur Verfügung gestellt, die in komprimierte Tar-Archive (auch als Tar-Ball bezeichnet) verpackt wurden. Während früher haupt­sächlich das Unix-eigene compress zum Komprimieren verwendet wurde, ist es inzwischen weitgehend von gzip verdrängt worden, das einen besseren Komprimierungs-Faktor erzielt. Vereinzelt wird auch bzip2 ein­gesetzt (z. B. von http://www.blackdown.org ), da es noch einen Tick besser ist hier wurde zum Vergleich die Tar-Datei von tkcvs 6.4 herangezogen)



Version vom 16. September 2022, 08:37 Uhr

Software-Verwaltung

Freie Software für Linux und Unix wird von über die Welt verteilten Teams und Einzelpersonen für eine Vielzahl von Linux-Distributionen und Unix-Derivaten zur Verfügung gestellt. Dies geschieht in der Regel in Form komprimierter Quell-Archive.

Es ist Aufgabe der Distributoren diese Software zu einem Betriebssystem zusammenzustellen und zusätzliche Komponenten. Die meisten Distributionen kompilieren die Software und verteilen Sie in Binärpaketen an die Benutzer. Bei der Auswahl des Verfahrens sollte das vom Distributor vorgesehene Standardverfahren bevorzugt werden. Software die nicht im gewünschten Paketformat verfügbar ist kann aus den Quellen kompiliert werden. Es ist auch möglich aus den Quellen entsprechende Pakete zu erstellen oder Pakete zu konvertieren.

Neben anderen sind heute drei Verfahren zur Installation von Software mit entsprechenden Paketformaten weit verbreitet.

Methode Paket- format Vorteile Nachteile
Kompilierung aus den Quellen *.tar..gz, *.tar.bz2 - maximale Anpassungsmöglichkeit - Aufwendig in Paketverwaltung zu integieren
Redhat Package Manager *.rpm - Datenbankbasierte Paketverwaltung

- Schnelle Installation

- Auflösung von Abhängigkeiten durch Forndends

- Pakete Distributionsabhängig

- Pakete Versionsabhängig

Debian-Paketverwaltung *.deb - Datenbankbasierte Paketverwaltung

- Schnelle Installation

- Integrierte Auflösung von Abhängigkeiten

- Pakete Distributionsabhängig

- Pakete Versionsabhängig

Eines kennzeichnet aber sämtliche Installationsverfahren: kein Reboot nach erfolgter Installation. Sämtliche Tools können sofort gestartet werden, evtl. ist das Starten eines Dienstes (Unix-Jargon: Daemon) nötig, was von der Kommandozeile aus erfolgt.

Linux-Distributoren

Die meisten Linux-Distributionen sind recht umfangreich und enthalten bereits die nötigen Tools und Programme, die bei der Grund-Installation ausgewählt wurden. Will man später das eine oder andere Programm nachträglich installieren, kann dies mit den Distributions-eigenen Werkzeugen erfolgen. Auch die Deinstallation ist über diesen Weg möglich. Voraussetzung dafür ist, dass das gewünschte Programm im Distributions-Umfang mit dabei ist.

Leider liegen manche Programme nicht in der neuesten Version vor, andere Programme fehlen, weil beispielsweise die Lizenz des Herstellers nicht mit der Distribution vereinbar ist. Dann muss man sich selbst darum kümmern, an die aktuelle Version des gewünschten Paketes zu kommen, um diese auf dem Rechner installieren zu können.

Kompilierung von Quellarchiven

"Bild:Tar-archive.png"

Bevor Linux auf der Bildfläche erschien, wurden Programm-Pakete in Source-Form zur Verfügung gestellt, die in komprimierte Tar-Archive (auch als Tar-Ball bezeichnet) verpackt wurden. Während früher haupt­sächlich das Unix-eigene compress zum Komprimieren verwendet wurde, ist es inzwischen weitgehend von gzip verdrängt worden, das einen besseren Komprimierungs-Faktor erzielt. Vereinzelt wird auch bzip2 ein­gesetzt (z. B. von http://www.blackdown.org ), da es noch einen Tick besser ist hier wurde zum Vergleich die Tar-Datei von tkcvs 6.4 herangezogen)

Typische Komprimierung von compress, gzip und bzip2

Endung komprimiert mit auspacken mit
.tar (ohne) tar xvf ...
.tar.Z compress tar Zxvf ...
.tar.gz gzip tar zxvf ...
.tgz gzip tar zxvf ...
.tar.bz2 bzip2 tar jxvf ...

Das GNU-tar-Kommando, das üblicherweise bei allen Linux-Distributionen verwendet wird, kann mit kom­primierten Tar-Archiven umgehen (s. Tabelle). Andere Unix-Systeme (z. B. SunOS) verwenden eine andere Tar-Implementierung. Hier muss man zuerst das Archiv dekomprimieren (mit uncompress, gunzip oder bunzip2), ehe man die Tar-Datei auspacken kann.

Vereinzelt findet man auch im Linux-Bereich Zip-Archive vor, erkennbar an der Endung .zip. Diese werden mit unzip ausgepackt.

Nachdem das Tar-Archiv erfolgreich ausgepackt ist, sollte man nach einer Datei README oder INSTALL Ausschau halten. Dort steht beschrieben, wie das Paket übersetzt und installiert wird. Unabhängig von der Plattform und Distribution sind es meist folgende Schritte, die ausgeführt werden:

./configure oder make config

Im ersten Schritt wird untersucht, um was für ein System (Linux, Unix, ...) es sich handelt, welche Biblio­theken vorhanden sind und ob die zur Kompilierung benötigten Tools wie C-Compiler (gcc) oder Linker (ld) installiert sind, um daraus ein Makefile zu generieren.

make

Mit Hilfe des Makefiles, das im ersten Schritt erzeugt wurde, wird das Paket übersetzt.

make test (optional)

Mit diesem Schritt wird überprüft, ob die Kompilation erfolgreich war.

make install

Damit wird das Paket installiert.

Hilfreich bei der Übersetzung ist die Option -n des make-Kommandos. Damit kann man make erst einmal trocken ausführen, um zu sehen, welche Kommandos alle ausgeführt werden und in welches Verzeichnis welche Dateien kopiert werden, um nötigenfalls das Makefile noch anpassen zu können.

Auch wenn dieses Verfahren meist problemlos funktioniert, hat die Sache einen Haken: an die Deinstallati­on hat der Autor meistens nicht gedacht, d. h. ein make uninstall wird in den wenigsten Fällen klappen. Und so bleiben die installierten Dateien bis in alle Ewigkeit im System, es sei denn, man hat sich bei der Installation gemerkt, welche Dateien wohin kopiert wurden und löscht sie manuell.

Weitere Nachteile der manuellen Installation: Auf dem Zielsystem müssen alle Werkzeuge (Compiler, Lin­ker, Make etc.), Bibliotheken und Headerdateien zum Kompilieren des Programmes vorhanden sein. Bei der Installation einer neueren Version eines Programmes (Update) werden evtl. die bereits vorhandenen, an das System angepassten Konfigurationsdateien der alten Version überschrieben.

Weitere Installationsverfahren

Autopackage

Autopackage ist eine alternative Linux-Paket-Verwaltung (aktuelle Version 1.0). Die Software soll eine einfache Installation von Software, unabhängig von der verwendeten Linux-Distribution, möglich machen. Ziel ist es, sowohl Nutzern als auch Entwicklern das Leben erleichtern, in dem die Entwickler nur mehr ein Pa­ket erzeugen müssen und der Nutzer dieses Paket auf jedem Linux-System mit einem Klick installieren und wieder löschen kann.

Sollte Autopackage auf dem System fehlen, wird das Programm automatisch heruntergeladen und installiert.

Perl-Archive

Für Perl-Module gibt es als zentrale Anlaufstelle den CPAN-Server (Comprehensive Perl Archive Network, http://www.cpan.org ), über den fast alle Perl-Module bezogen und direkt installiert werden können.

user@linux ~$ perl -MCPAN -e 'install Data::JavaScript'

Mit diesem Aufruf wird das Data::JavaScript-Modul installiert. Beim ersten Mal muss man evtl. noch die automatische Installation konfigurieren. Dazu wird man interaktiv durch verschiedene Fragen durchgelotst (z. B. wo das gzip- und tar-Kommando liegt, ...).

Danach geht es mit der eigentlichen Installation los, bei der das angegebene Modul von einem CPAN-Ser­ver heruntergeladen, ausgepackt, getestet und installiert wird. War alles erfolgreich, sollte am Ende ein /usr/bin/make install -- OK

zu sehen sein. Falls nicht, kann es evtl. daran liegen, dass das angegebene Modul noch von weiteren Mo­dulen abhängt, die nicht auf dem System vorhanden sind. In diesem Fall sollte man zuerst diese Module noch installieren.

Selbstauspackende Archive

In seltenen Fällen kommen auch Shell-Skripte zum Einsatz, die sich nach dem Aufruf selbst auspacken. Eventuell muss man vorher noch einige Fragen zur Installation beantworten. Meistens heißt das Skript install.sh und wird mit

user@linux ~$ ./install.sh

oder

user@linux ~$ sh install.sh

aufgerufen. Lässt sich das Skript nicht ausführen, empfiehlt es sich, die erste Zeile zu überprüfen. Sie sollte dort ein

#!/bin/sh

enthalten, was leider nicht immer der Fall ist.

Software-Archive

Linux ist Allgemeingut, dessen Bestandteile im Internet verstreut sind. Da es niemanden gehört, gibt es auch keine zentralen Stellen, die die ganzen Sourcen und Pakete verwalten. Es gibt allerdings einige Anlaufstellen, von denen wir hier eine ganz kleine Auswahl präsentieren möchten:

  • sunsite.unc.edu/pub
  • www.freshmeat.net
  • packman.links2linux.de
  • rpm.pbone.net
  • www.rpmfind.net
  • www.linuxpackages.net (slackware)
  • www.apt-get.org (debian)
  • software.opensuse.org/search (opensuse)
  • sourceforge.net/

Natürlich können auch alle anderen Distributionen als Ausgangspunkt dienen.