Hilfe zur Selbsthilfe: Paketverwaltung

Aus LinuxUser 10/2006

Hilfe zur Selbsthilfe: Paketverwaltung

Sauber einsortiert

Moderne Distributionen bieten zusätzlich in der Regel einen komfortablen Paketmanager, um Programme zu verwalten. Mit dem richtigen Know-how kitzeln Sie zusätzlich viele Information aus diesen heraus.

Freie Software bietet die Flexibilität, Programme nach eigenen Wünschen mit den entsprechenden Optionen aus dem Quelltext zu kompilieren und an eine beliebige Stelle zu installieren [1]. Was bei einzelnen Programmen noch recht einfach geht, fällt bei großen Softwarepaketen wie X.org, KDE oder GNOME ziemlich aufwändig aus. Wer oft auf diese Weise Programme installiert, aktualisiert oder entfernt, hat bald alle Hände voll zu tun und kommt nicht mehr dazu, das zu erledigen, was er eigentlich mit dem Computer tun wollte.

Deshalb übernehmen Linux-Distributoren diese Arbeit und verpacken einzelne Programme und komplette Desktop-Umgebungen in Pakete, die Sie mit Hilfe eines Paketmanagers bequem installieren, aktualisieren und auch wieder entfernen (siehe Tabelle “Paketquellen der Linux-Distributoren”). Zudem stellen einzelne Entwickler oder Gruppen von Entwicklern zusätzliche Pakete bereit (siehe Tabelle “Zusätzliche Paketquellen” und [2]). Wer das ein oder andere Programm selbst baut, erstellt sich bei Bedarf ein eigenes Paket [3][4].

Paketquellen der Linux-Distributoren

Distribution Quelle Beschreibung
Debian http://packages.debian.org Paketsuche mit Download-Möglichkeit
Debian http://www.debian.org/mirror/list Liste der Debian-Mirrors
Fedora http://fedora.redhat.com/Download/mirrors.html Liste der Fedora-Mirrors
SuSE http://en.opensuse.org/Mirrors_Released_Version Liste der SuSE-Mirrors

Zusätzliche Paketquellen

Paket-Format Quelle Beschreibung
DEB (Debian) http://www.backports.org Enthält aus Debian Testing auf Debian Stable rückportierte Pakete
DEB (Debian) http://www.debian-unofficial.orghttp://www.debian-unofficial.org Pakete, die nicht im offiziellen Debian-Repository enthalten sind
DEB (Debian) http://www.debian-multimedia.org Zusätzliche Multimedia-Pakete
DEB (Debian) http://apt-get.org Liste mit zusätzlichen Paketquellen mit Paket-Suchmöglichkeit
RPM (SuSE) http://packman.links2linux.de Vor allem Software, die in Distributionen nicht oder nicht aktuell vorhanden ist
RPM (SuSE) http://linux01.gwdg.de/~pbleser Viele Pakete
RPM (SuSE) http://en.opensuse.org/Additional_YaST_Package_Repositories Liste mit zusätzlichen Paketquellen
RPM (Fedora) http://rpm.livna.org Zusätzliche Multimedia-Pakete
RPM (Fedora) http://www.wlug.org.nz/FedoraRepositories Liste mit zusätzlichen Paketquellen und Hilfen

Pakete liegen üblicherweise im DEB– oder im RPM-Format vor. Einige Distributionen verwenden andere Formate: Slackware verwendet tar.gz-Archive. Der Paketmanager Portage von Gentoo hingegen nutzt Rezepte für das Bauen von Software aus dem Quelltext, sogenannte EBuilds.

DEB- oder RPM-Pakete enthalten plattform-unabhängige Daten und bereits für die gewünschte Plattform fertig durchkompilierte Programme in binärer Form.

Ein solche Binärpaket entsteht aus einem Quelltext-Paket. Dieses enthält den Quelltext der Software, eine Bauanleitung und gegebenenfalls zusätzliche, manchmal distributions-spezifische Patches, um eventuell vorhandene Fehler zu beheben oder das Programm an besondere Gegebenheiten der jeweiligen Distribution anzupassen.

Ob sich ein Paket zu einer bestimmten Distribution passt, entscheidet sich nicht alleine am Paketformat. Oft ist es möglich, ein Paket einer anderen Distribution, die das gleiche Paketformat verwendet, zu installieren. Manchmal sind die das Paket betreffenden Unterschiede zwischen zwei Distributionen jedoch zu groß dafür.

Das Paket-Management ist in zwei Ebenen unterteilt. Low-Level-Paketmanager arbeiten mit einzelnen Paketdateien, während High-Level-Paketmanager Paket-Quellen aus dem Internet mit einbeziehen und meist die Abhängigkeiten regeln.

Low-Level-Paketmanager

Der Low-Level-Paketmanager verwaltet die lokale Paketdatenbank des Systems (siehe Low-Level-Paketmanager). Er installiert, aktualisiert oder löscht Pakete. Zudem ist er in der Lage, eine Liste der installierten Pakete oder Informationen über ein installiertes Paket anzuzeigen. Für Debian-Pakete ist dpkg zuständig und für RPM-Pakete rpm.

Low-Level-Paketmanager

Funktion DPKG RPM
Paket installieren dpkg -i | --install Paket-Dateiname rpm -i | --install Paket-Dateiname
Paket entfernen dpkg -r | --remove Paketname rpm -e | --erase Paketname
Paket-Informationen anzeigen dpkg -s | --status Paketname rpm -qi Paketname
  dpkg -I | --info Paket-Dateiname rpm -qpi Paket-Dateiname
Pakete auflisten dpkg -l rpm -qa
Pakete suchen dpkg -l "Suchmuster" rpm -qa "Suchmuster"
Paket-Dateien auflisten dpkg -L | --listfiles Paketname rpm -ql Paketname
  dpkg -c | --contents Paket-Dateiname rpm -qpl Paket-Dateiname
Zuordnung Paket/Datei dpkg -S || --search Dateiname rpm -qf Dateiname

Laden Sie eine Paketdatei aus dem Internet und verwenden Sie dpkg -iPaket-Dateiname oder rpm -iPaket-Dateiname, um die enthaltene Software zu installieren. Mit dpkg -rPaketname oder rpm -ePaketname deinstallieren Sie ein Paket. Das funktioniert, weil der Paketmanager weiß, welche Dateien zu einem Paket gehören. Da das Paket bereits installiert und somit dem Paketmanager bekannt ist, geben Sie nun statt dem Paket-Dateinamen nur den Namen des Paketes an.

Die Installation eines Paketes erfordert mitunter die Installation weiterer Pakete, etwa weil eine von einem Programm benötigte Bibliothek oder vom Programm benötigte Daten noch nicht installiert sind[5]. Sowohl dpkg als auch rpm weisen auf eine solche Paketabhängigkeit hin und brechen in diesem Fall die Installation ab.

Installieren Sie die noch fehlenden Pakete, um schließlich das gewünschte Paket zu installieren. Doch eventuell hängen die zusätzlich installierten Pakete von weiteren Paketen ab, die Sie ebenfalls installieren müssen. Die Installation eines einzelnen Programms wird so mitunter ziemlich aufwendig.

High-Level-Paketmanager

Hier kommt ein High-Level-Paketmanager zum Einsatz (siehe High-Level-Paketmanager). Dieser lädt das Paket samt aller Abhängigkeiten aus einer Paketquelle, einem Repository, und verwendet einen Low-Level-Paketmanager, um das eigentliche Paket und alle abhängigen Pakete zu installieren. Dieser Vorgang heißt auch Auflösen von Abhängigkeiten. Ein solches Repository ist ein FTP- oder Web-Server im Internet, eine CD oder DVD, ein lokaler Spiegel oder ein beliebiges Verzeichnis.

High-Level-Paketmanager

Funktion Apt/Aptitude Rug YaST Yum
Paketliste aktualisieren apt-get | aptitude update automatisch oder rug refresh automatisch automatisch oder yum check-update
Alle aktualisierbaren Pakete anzeigen apt-get -s | aptitude -s upgrade rug list-updates Software | Online-Update oder Software | System-Update yum list updates
Alle veralteten Pakete aktualisieren apt-get | aptitude upgrade oder apt-get | aptitude dist-upgrade rug update Software | Online-Update oder Software | System-Update oder Installer von der Suse-DVD yum update
Paket(e) installieren apt-get | aptitude install Paketname rug install Paketname yast -i Paketname oder in Paketauswahl [Leertaste] bis YaST + anzeigt yum install Paketname
Paket aktualisieren apt-get | aptitude install Paketname rug install Paketname In Paketauswahl [Leertaste] bis YaST > anzeigt yum update Paketname
Paket entfernen apt-get | aptitude remove Paketname rug remove Paketname [Leertaste] bis YaST - anzeigt yum remove Paketname
Paketinformationen anzeigen apt-cache show Paketname rug info Paketname Software | Software installieren oder löschen | Informationen yum info Paketname
Alle Pakete auflisten apt-cache search ".*" rug search Software | Software installieren oder löschen yum list
Pakete suchen apt-cache search Suchwort(e) (Regulärer Ausdruck möglich) rug search Suchwort(e) SoftwareSoftware installieren oder löschen, Filter Suche yum list Suchwort(e) (Regulärer Ausdruck möglich)
Zuordnung Datei/Paket apt-file search Dateiname rug package-file Dateiname SoftwareSoftware installieren oder löschen, Filter Suche mit RPM “Provides” yum provides Dateiname

Ein High-Level-Paketmanager bietet zudem noch eine andere wichtige Funktion: Durch seinen Zugriff auf eine oder mehrere Paketquellen schafft er es, das gesamte System mit allen installierten Paketen auf den aktuellen Stand zu bringen. Dazu vergleicht der Paketmanager die Version jedes installierten Paketes mit der neuesten verfügbaren Version und aktualisiert das Paket gegebenenfalls – eine enorme Arbeitsersparnis gegenüber einem manuellen Vorgehen.

Während YaST bislang produktiv nur mit RPM-Paketen unter SuSE zum Einsatz kommt, kommen andere Paketmanager universeller zum Einsatz: So funktioniert der RPM-basierte Yum (Yellow Dog Updater, Modified) unter Yellow Dog Linux, Fedora und SuSE [6][7]. Debians Paketmanager Apt (Advanced Package Tool) ist mit Apt4rpm unter anderem auf den RPM-basierten Distributionen SuSE, Mandriva und Fedora lauffähig [8][9][10][11]. Auf Debian-basierten Distributionen empfiehlt sich, das auf der APT-Bibliothek Libapt aufsetzende neue Frontend Aptitude zu verwenden [12].

Vielversprechend erscheint der sich noch im Betastadium befindliche Smart Package Manager, der mit Debian-, RPM- und Slackware-Paketen klarkommt und innovative Konzepte für das Auflösen von Abhängigkeiten bietet [13]. Die Ubuntu-Entwickler ziehen in Betracht, SmartPM in einer zukünftigen Version zu integrieren. Mit Einschränkungen ist das Tool bereits jetzt unter anderem mit Debian, Ubuntu, Suse und Fedora verwendbar (siehe dazu der Artikel zu SmartPM in dieser Ausgabe).

SuSE 10.1 verwendet mit Libzypp, dem Zenworks Management Daemon (ZMD) und dem kommandozeilenorientierten Paketmanager Rug einen Ansatz zum Paketverwalten, der zentralisiertes Software-Management in großen Netzwerken ermöglichen soll [14]. Die Lösung basiert auf Ximians Red Carpet und Novells Zenworks. YaST setzt auf dieser Infrastruktur auf, sofern Sie installiert ist.

Konfigurieren und Aktualisieren

Ein High-Level-Paketmanager greift direkt auf Paketquellen im Internet zu, um sich mit der Liste der aktuellen Pakete zu versorgen. Nach der Installation einer Distribution ist der von ihr verwendete Paketmanager in der Regel schon passend eingerichtet.

Unter YaST konfigurieren Sie die zu verwendenden Paketquellen direkt mit der Oberfläche [15]. Falls nicht während der Installation geschehen, empfiehlt es sich im YaST-Kontrollzentraum SoftwareOnline Update Configuration auszuführen, um eine Quelle für Online-Updates hinzuzufügen. Mit Rug fügen Sie auf der Befehlszeile neue Paketquellen hinzu. Die Standardquellen für SuSE 10.1 binden Sie zum Beispiel wie in Listing 1 ein – die letzte Zeile ist für Online-Updates [16].

Listing 1

rug service-add --type zypp http://ftp.uni-erlangen.de/pub/mirrors/opensuse/distribution/SL-10.1/inst-source/ uni-erlangen-factory
rug service-add --type zypp http://ftp.uni-erlangen.de/pub/mirrors/opensuse/distribution/SL-10.1/non-oss-inst-source uni-erlangen-addon
rug service-add --type zypp http://ftp.hosteurope.de/mirror/ftp.suse.com/pub/suse/update/10.1 updates

Sie geben den Typ des Dienstes für das Repository an, die URL und einen beliebigen Namen. Der Paketmanager unterstützt auch andere Repository-Typen als zypp, darunter Yum-Repositories (RPM-MD) oder ein gemountetes Verzeichnis. Eine vollständige Liste erhalten Sie mit rug service-types, während rug service-list eine Liste aller eingerichteten Dienste ausgibt. Mit rug service-delete Dienstname entfernen Sie einen einmal eingerichteten Dienst wieder.

Jeder Dienst hat mindestens einen Katalog. Eine Liste erhalten Sie mit rug catalogs. Mit rug subscribe Katalogname abonnieren Sie einen Katalog. Für die obigen Paketquellen für SuSE 10.1 abonnierte Rug automatich jeweils den einzigen Katalog jeder Paketquelle.

Für Yum erstellen oder ändern Sie analog Repo-Dateien in /etc/yum.repos.d[17][7]. Diese übernehmen eine ähnliche Funktion, wie die Kataloge unter Rug.

Debians Apt konfigurieren Sie unter Debian Sarge noch menügesteuert mit dem Kommando apt-setup, ansonsten editieren Sie direkt die Datei /etc/apt/sources.list[9]. Eine CD-ROM oder DVD fügen Sie mit Hilfe von apt-cdrom add hinzu. Führen Sie apt-get update oder aptitude update aus, um die Liste der verfügbaren Pakete zu aktualisieren. Die Paketmanager YaST, Yum und Rug erledigen dies automatisch vor dem Installieren eines Paketes.

Mit apt-get upgrade, aptitude upgrade, rug update oder yum update aktualisieren Sie ihr System. Verwenden Sie apt-get dist-upgrade oder aptitude dist-upgrade so versucht der Paketmanager, durch ein Aktualisieren geänderte Abhängigkeiten intelligenter zu handhaben.

Als Standardwerkzeug für Sicherheitsaktualisierungen arbeitet unter SuSE das YaST Online Update (YOU). Das Aktualisieren auf eine neue Version der Distribution erledigt der Installer auf dem Installationsmedium oder YaSTs Funktion System-Update[18].

Im Test überzeugte der neue Paketverwaltungsansatz in SuSE 10.1 auch nach den letzten Updates für dessen einzelne Komponenten nicht, ein Eindruck der einen früheren Artikel zu diesem Thema bestätigt [19]. Insgesamt hinterließ die Software das Gefühl, noch nicht ganz ausgereift zu sein [20]. Der Paketmanager Rug arbeitete bei vielen Operationen extrem langsam. Die Fortschrittsanzeige offenbarte nicht, ob gerade ein Download stattfand oder bereits die Installation in vollem Gange war. Zudem blieb mehrere Mal der Zenworks Management Daemon komplett hängen und ließ sich nur noch mittels kill -9 in der Konsole beenden.

Als besser Wahl erscheint deshalb der Einsatz von Apt4rpm, das Sie mit rug install apt apt4rpm ins System integrieren. Alternativ käme auch Yum in Frage, den Sie mit rug install yum auf der Platte heben. Eine gute Alternative stellt zudem die Paketmanagement-Shell für den YaST2, Y2pmsh, dar [21].

Frontends

Ein Paketmanager-Frontend bietet eine interaktive Oberfläche zum Verwalten von Software-Paketen. SuSEs YaST erlaubt das Verwalten der Pakete sowohl über eine grafische als auch eine Textoberfläche. Sicherheitsaktualisierungen gelingen mit YaST Online Update. SuSE benachrichtigt den Anwender, wenn Updates zur Verfügung stehen.

Das KDE-Programm KPackage erlaubt es, unter anderem RPM-, Debian- und Slackware-Pakete zu installieren oder zu entfernen (Abbildung 1). Es unterstützt das Aktualisieren der Paketlisten und aller installierten Pakete via Apt. Es zeigt die Liste der Dateien eines installierten Paketes und dessen Änderungsprotokoll.

Abbildung 1: KPackage bietet eine Suchfunktion, zeigt die ChangeLogs der Pakete an und aktualisiert bei Bedarf das komplette System.

Abbildung 1: KPackage bietet eine Suchfunktion, zeigt die ChangeLogs der Pakete an und aktualisiert bei Bedarf das komplette System.

Auch für Gnome existiert ein auf dem GTK-Toolkit aufbauender Paketmanager: Synaptic [22] verwendet die Bibliothek Libapt und bietet neben den Grundfunktionen auch eine intelligente Funktion zum Aktualisiern des Systems sowie die Funktion das Änderungsprotokoll (Changelog) oder die Dokumentation eines Paketes anzuzeigen (Abbildung 2).</p>

Abbildung 2: In der Paketliste stöbern und Software installieren mit Synaptic.

Abbildung 2: In der Paketliste stöbern und Software installieren mit Synaptic.

Unter Ubuntu bietet das Python-Programm Update-Manager als Gnome-Applet in Zusammenarbeit mit Synaptic einen leichten Zugriff auf Software-Updates. Es benachrichtigt den Benutzer, wenn Updates zur Verfügung stehen. Es aktualisiert Paketlisten und lädt bei Bedarf neue Pakete bereits im Hintergrund [23]. Bei einem Distributions-Update wählt es eine sinnvolle Reihenfolge für das Aktualisieren der betroffenen Pakete.

Der Smart Package Manager bietet ebenfalls eine interaktive grafische Oberfläche, die Sie mit smart --gui starten.

Der Paketmanager Aptitude startet mit einer text-basierten Oberfläche, wenn Sie keine Argumente angeben [12]. Das Frontend ist in der Lage, nicht mehr verwendete Pakete automatisch zu deinstallieren. Bei Abhängigkeitsproblemen stellt es verschiedenen Lösungen zur Auswahl (Abbildung 3).

Abbildung 3: Aptitude wählt eine Lösung für ein Abhängigkeitsproblem.

Abbildung 3: Aptitude wählt eine Lösung für ein Abhängigkeitsproblem.

Mit der Taste [F10] gelangen Sie in das Menü. Unter OptionenAbhängigkeitsbehandlung legen Sie fest, ob Aptitude empfohlene, jedoch nicht unbedingt benötigte Pakete automatisch mitinstalliert. Vielversprechend erscheint das sich noch in der Alphaversion befindliche, in Kubuntu jedoch bereits produktiv eingesetzte Adept. Wie Update-Manager bietet es einen Benachrichtungsdienst für Updates (Abbildung 4).

Abbildung 4: Adept Updater mit einer Liste zu aktualisierender Pakete.

Abbildung 4: Adept Updater mit einer Liste zu aktualisierender Pakete.

Das Programm unterstützt zudem das Debtags-System [24], um die Suche nach Paketen zu erleichtern. So suchen Sie zum Beispiel direkt nach Programmen zum Bearbeiten von PDF-Dateien anstatt sich selbst einen Weg durch die Pakethierarchie zu bahnen. Dieses innovative System zur Paketsuche nutzen Sie in der Shell mit das Programm Debtags.

Ausprobieren

Alle bislang beschrieben Paketmanager installieren Software global für alle Benutzer in die entsprechenden Systemverzeichnisse. Benötigt ein neue Version eines Paket neuerere Versionen andere Pakete, installiert der Paketmanager diese mit. So führt die Installation der aktuellsten Version eines Programmes mitunter zu einem instabilen System.

Wer nur schnell mal die aktuellste Version eines Programms ausprobieren möchte, dem bietet sich mit Klik eine Alternative, die nach der Erst-Installation keine Superuser-Rechte mehr benötigt und das installierte Linux-System nicht weiter verändert [25]. Das Klik-Paketsystem lädt die betreffende Software mitsamt aller abhängigen Pakete als Debian-Pakete aus dem Internet, installiert sie in eine Image-Datei, mountet diese und startet dann das entsprechende Programm.

Glossar

DEB

Debian-Paketformat. Kommt auch bei auf Debian aufbauenden Distributionen wie Ubuntu, Kubuntu, SkoleLinux, Knoppix oder Kanotix zum Einsatz. Dateinamen für Debian-Pakete enden mit .deb.

RPM

Red Hat Package Manager. Paketmanager, den Red Hat ursprünglich für seine eigene Distribution entwickelt hat. Mittlerweile auch in vielen anderen Distributionen wie SuSE, Mandriva oder Yellow Dog Linux verwendet. Dateinamen für RPM-Pakete enden mit .rpm.

Patches

Ein Patch (zu deutsch Flicken) ist eine Korrektur, eine Anpassung für Software oder Daten, um Sicherheitslücken zu schließen, Fehler zu beheben oder zusätzliche Funktionen zu implementieren. Der Begriff stammt aus einer Zeit, als Programmierer kleinere Fehler in Software auf Lochkarten durch das Zukleben von Löchern flickten.

Bibliothek

(engl.: Shared Library oder Shared Object) Sammlung von Funktionen, auf die Anwendungen zurückgreifen.

Infos

[1] Sourcecode übersetzen: “Auf zu den Quellen”, Andreas Kneib, LinuxUser 07/2005, S.86 http://www.linux-user.de/ausgabe/2005/07/086-kompilieren/

[2] Die richtige Mischung, Oliver Frommel, Kristian Kißling, Peter Kreussel und Carsten Schnober, LinuxUser 7/2006, S. 48

[3] Checkinstall: “Gratis-Zugabe”, Peter Kreussel, LinuxUser 07/2006, S. 47 http://www.linux-user.de/ausgabe/2006/07/047-checkinstall/

[4] “Korrekt verstaut”, Tim Schürmann, Linux User 07/2006, S. 72

[5] Bibliotheken: “Statisch oder dynamisch?”, Carsten Schnober, LinuxUser 06/2005, S. 82 http://www.linux-user.de/ausgabe/2005/06/082-libraries/

[6] Yum: http://linux.duke.edu/projects/yum/

[7] Yum unter SuSE: http://de.susewiki.org/index.php?title=Yum

[8] Pakete konvertieren mit Alien: “Modernes Paketieren”, Heike Jurzik, LinuxUser 07/2006, S. 36

[9] Apt-Howto: http://www.debian.org/doc/manuals/apt-howto/index.de.html

[10] Apt4rpm: http://linux01.gwdg.de/apt4rpm/

[11] Apt unter Suse: http://de.susewiki.org/index.php?title=Apt

[12] Installieren mit Aptitude: “Paketdienst”, Dirk Materlik, LinuxUser 06/2004, S. 38 http://www.linux-user.de/ausgabe/2004/06/038-pkgdeb/

[13] Smart Package Manager: http://labix.org/smart

[14] Libzypp: http://en.opensuse.org/Libzypp

[15] YaST: “Die andere Seite”, Nico Lumma, LinuxUser 06/2004, S. 35 http://www.linux-user.de/ausgabe/2004/06/035-yast/

[16] “Using rug – openSuSE”, OpenSuSE-Wiki: http://en.opensuse.org/Rug

[17] Yum: “Immer auf dem Laufenden”, Roman Jordan, LinuxUser 10/2004, S. 52: http://www.linux-user.de/ausgabe/2004/10/052-yum/

[18] Handbuch SuSE Linux 10.0: http://de.opensuse.org/Dokumentation

[19] SuSE/Novell-Paketverwaltung: “Roter Wind”, Marcel Hilzinger, LinuxUser 07/2006, S. 86

[20] Libzypp: OpenSuSE-Wiki: http://en.opensuse.org/Libzypp/Issues

[21] Y2pmsh: “Ausgegraben”, Oliver Frommel, LinuxUser 08/2006, S. 90

[22] Synaptic: http://www.nongnu.org/synaptic/

[23] Ubuntu-Paketmanagement: John Meuser, “Simplified package management in Ubuntu”, Gnome Journal, http://gnomejournal.org/article/19/simplified-package-management-in-ubuntu-hoary

[24] Debtags: http://debtags.alioth.debian.org

[25] Klik: “Hin und mit”, Tim Schürmann, LinuxUser 07/2006, S. 45

Der Autor

Martin Steigerwald arbeitet als Systemadministrator bei der Teamix GmbH in Nürnberg. Ein Schwerpunkt seiner Tätigkeit liegt dabei im Second Level Support für Linux als Business-Desktop. Er hat Linux schon vor Jahren auf seinem Amiga 4000 installiert und nutzt es auch privat. Außerdem schreibt er für das Amiga-Magazin.

LinuxUser 10/2006 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben