Home / LinuxUser / 2012 / 10 / CTAN, CPAN, Pear & Co.: Paketverwaltungen für Quellcode

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Debian leicht gemacht
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

AA_brunnen_123rf-7394758_stevanovicigor.jpg

© stefanovicigor, 123RF

Sprudelnde Quellen

CTAN, CPAN, Pear & Co.: Paketverwaltungen für Quellcode

08.10.2012 Einige Software-Pakete und Programmiersprachen bringen abseits von DEB, RPM und Co. ihre eigene, komfortable Paketverwaltung mit.

Aktuelle Distributionen machen es einem sehr einfach, Software einzurichten und auch sauber wieder zu entsorgen. Die Distributoren verpacken Programme in RPM- oder DEB-Pakete und es gibt zentrale Repositories, aus denen man Software bequem nachinstallieren kann. Abhängigkeiten werden dabei automatisch aufgelöst und auch Security-Updates (für eine gewisse Frist) vom Distributor gepflegt. Eine feine Sache, die unter anderem auch dafür sorgt, dass Linuxer Virenprobleme nur aus Unterhaltungen mit Windows-Nutzern kennen.

Die Distributoren treffen beim Paketieren von Software eine Vorauswahl, die möglichst viele Anwender ansprechen soll. Freilich können Sie nicht jede frei verfügbare Software paketieren – ihre Zeit- und Festplattenressourcen sind begrenzt. Das jeweils neueste Release der Distribution soll ja auch zu einem gewissen Termin erscheinen, neue Software-Projekte und Programmversionen erscheinen dagegen täglich.

Insbesondere für Programmiersprachen wie Perl und PHP, aber auch für Software wie das Textsatzsystem LaTeX gibt es sehr viel mehr Pakete, als eine typische Distribution mitbringen könnte. Die Perlen der jeweiligen Programmierkunst lagern in eigenen Repositories, über die sie sich komfortabel nutzen lassen. Die wichtigsten davon stellt dieser Artikel kurz vor.

Perl-Module

Die Programmiersprache Perl genießt unter anderem wegen ihrer umfangreichen Modulsammlung hohe Akzeptanz. Mit dem Befehl

use Mein::Lieblingsmodul

verwenden Sie solche Module problemlos auch in eigenen Programmen. Die Modulsammlung von Perl finden Sie auf CPAN [1], dem seit Oktober 1995 aktiven Comprehensive Perl Archive Network, dessen Motto "You can never have too many Perl modules" lautet.

Dieses Motto ist wohl nicht so falsch: Zu Redaktionsschluss dieser Ausgabe umfasste das CPAN laut eigener Statistik mehr als 100 000 Perl-Module in knapp 25 000 "Distributionen", geschrieben von fast 10 000 Autoren und auf rund 300 Servern gespiegelt. Bis Sie diese Zeilen lesen, sind sicher wieder einige neue Module dazugekommen.

Vergleicht man diese Zahlen mit der Anzahl der Pakete, die beispielsweise Opensuse 12.1 standardmäßig paketiert – eine grobe Schätzung liefert das Kommando zypper search perl- | wc -l – so findet man lediglich 634 RPM-Pakete, deren Namen mit perl- beginnt, die also wohl Perl-Module enthalten.

Für Perl-Entwickler stellt Opensuse ein eigenes Repository namens devel:languages:perl bereit (Abbildung 1), das etwa 2 200 Pakete umfasst. Zwar kann ein RPM-Paket durchaus mehrere Perl-Module enthalten, aber trotzdem sieht man deutlich, dass Opensuse bei weitem nicht alle Module paketiert. In anderen Distributionen dürfte das Verhältnis ähnlich ausfallen.

Abbildung 1

Abbildung 1: Opensuse bietet ein eigenes Perl-Repository.

Um die Vielfalt des CPAN für Sie selbst zu nutzen, greifen Sie am besten zu einem der drei gängigen Paketmanager für Perl-Module: cpan, cpanm (CPAN-Minus) und cpanp (CPAN-Plus). Im folgenden beschreiben wir die Verwendung von Cpanp beschrieben, dessen wichtigste Kommandos die Tabelle "CPAN-Plus: Wichtige Befehle" aufführt. Zwei Beispiele zur Funktion von CPAN-Plus – die Installation und Deinstallation des Moduls Archive::Tar, mit dem Sie Tarballs bearbeiten – zeigt Listing 1.

CPAN-Plus: Wichtige Befehle

Befehl Funktion
cpanp m Modul suche Modul
cpanp a Autor suche Module des Autors Autor
cpanp i Modul installiere oder aktualisiere Modul
cpanp u Modul deinstalliere Modul
cpanp o finde veraltete Module

Listing 1

# cpanp i Archive::Tar
Installing Archive::Tar (1.84)
...
Result: PASS
*** Install log written to:
  /root/.cpanplus/install-logs/Archive-Tar-1.84-1336416866.log
Module 'Archive::Tar' installed successfully
No errors installing all modules
# cpanp u Archive::Tar
This will uninstall the following modules:
    Archive::Tar
Note that if you installed them via a package manager, you probably
should use the same package manager to uninstall them
Are you sure you want to continue? [y/N]: y
Uninstalling 'Archive::Tar'
Module 'Archive::Tar' uninstalled successfully
All modules uninstalled successfully

Rufen Sie CPAN-Plus ohne Optionen auf, gelangen Sie in eine Shell, wo Sie dann beispielsweise mit dem Befehl i Archive::Tar das gewünschte Modul installieren. h zeigt einen Hilfetext, mit q verlassen Sie die CPAN-Plus-Shell wieder.

Never change …

Auch wenn ein Aufruf von cpanp o viele Module zeigt, von denen es neuere Versionen gibt, ist es nicht zwangsläufig ratsam, sofort alle zu aktualisieren. Einerseits: Never change a running system – warum sollten Sie etwas ändern, wenn ohnehin alles funktioniert und Sie neue Features (und neue Bugs) gar nicht brauchen? Andererseits kommen Sie damit möglicherweise dem System-Perl (das über RPM, DEB oder sonstwie bei der Installation eingerichtet wurde) in die Quere: Dann können Sie eventuell Module, die Sie über das Distributionspaketmanagement installiert haben, nicht mehr sauber aktualisieren oder deinstallieren.

Um solche Problemchen zu vermeiden, bietet es sich gegebenenfalls an, Perl von der Projekt-Webseite [2] herunterzuladen und aus dem Quellcode eine zweite Perl-Installation einzurichten – etwa unter /opt/perl. So umgehen Sie Schwierigkeiten mit der Systeminstallation der Distribution.

Damit steht eigenen Experimenten mit den aktuellsten Versionen der neuesten Module über die selbst installierte Version in /opt/perl nichts mehr im Weg. Dazu rufen Sie dann das selbst installierte Perl mit /opt/perl/bin/perl auf, Cpanp über /opt/perl/bin/cpanp. Auf diese Weise verhindern Sie auch, dass neuere Versionen von Modulen eventuell inkompatible Änderungen einführen und damit Probleme im System verursachen.

Die Firma Activestate [3] stellt eine binäre Distribution von Perl (und auch anderen Programmiersprachen) zur Verfügung, die es auch als Community-Edition gibt. Diese Perl-Distribution bringt auch einen komfortablen grafischen Modul-Manager mit, den Perl Package Manager ppm. Mit ihm installieren Sie bequem Module, die dann nicht direkt von CPAN kommen, sondern als PPMs von der Activestate-Seite (Abbildung 2).

Abbildung 2

Abbildung 2: Der praktische Perl Package Manager von Activestate.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

1937 Hits
Wertung: 80 Punkte (4 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...