Schlagwort ‘Quellcode‘

FreeBSD: die Ports

Die FreeBSD Ports sind ein wundervolles Werkzeug im Umgang mit tausenden von Anwendungspaketen und deren Abhängigkeiten. Im Gegensatz zu anderen Systemen, die bei ihrer Fülle an Paketen gerne auch diverse Architekturen bzw. das Userland mitzählen, um eine größere Anzahl Software zu suggerieren, gibt es es bei den FreeBSD Ports nur optionale Software bzw. die Architektur entscheidet sich bei der Übersetzung des Quellcodes.

22772 Ports sind es bis dato, Tendenz steigend. Knapp 834 stehen im Moment auf ignore, d.h. sie werden nicht installiert, 238 von diesen sind tatsächlich kaputt, andere sind nicht wirklich frei ob restriktiver Lizenzen, wiederum andere besitzen bekannte Sicherheitslücken.

Die Vorgehensweise zur Installation von Ports ist recht simpel, man aktualisiert mittels csup oder portsnap den Portstree, navigiert in diesem zur gewünschten Applikation und baut diese mittels make install clean. Etwaige auftretende Dialoge kann man schlicht mit Okay beantworten, außer man weiß was man tut.

portsnap fetch extract

portsnap fetch update

cd /usr/ports/multimedia/mplayer

make install clean

 

In obigem Beispiel wird portsnap als root genutzt, portsnap fetch extract lädt initial einen Schnappschuß des Portstree herunter und entpackt diesen. Ist dies einmal getan, genügt zukünftig ein portsnap fetch update um den Portstree zu aktualisieren. Bei diesem Beispiel wird mplayer installiert, indem man zu dem entsprechenden Verzeichnis navigiert und mittels make install clean den Bau, sowie die Installation initiiert.

Wichtig vor jeder Installation, insbesondere bei einem Update von Software ist ein Blick in /usr/ports/UPDATING, dort finden sich regelmäßig wichtige Hinweise bezüglich etwaiger Fallstricke und wie man diese umgehen kann.

Ein Update per se, ist wie bei obiger Vorgehensweise recht simpel, wiederum navigiert man in das entsprechende Verzeichnis, deinstalliert die Software und installiert diese neu, nachdem der Portstree aktualisiert wurde.

 

portsnap fetch update
cd /usr/ports/multimedia/mplayer
make deinstall clean && make install clean

 

Natürlich ist dies bei entsprechend viel Software und diversen Abhängigkeiten recht aufwendig, insofern greift man gerne zu Hilfsmitteln — ich nutze für diesen Zweck portmaster. Portmaster ist ein Script, welches all die wiederkehrenden Aufgaben übernimmt und den Alltag erheblich erleichtert.

 

portsnap fetch update
cd /usr/ports/ports-mgmt/portmaster && make install clean
portmaster mplayer

 

Diese Vorgehensweise würde den Portstree aktualisieren, portmaster installieren und mit diesem den bereits installierten Port mplayer aktualisieren. Möchte man mplayer initial installieren, so muß man nur ein Teil der Verzeichnisstruktur mit angeben, portmaster multimedia/mplayer. Auch die rekursive Abarbeitung von Updates ist möglich, so daß ebenso alle von diesem Port abhängigen Ports aktualisiert werden.

 

portmaster multimedia/mplayer
portmaster mplayer
portmaster -e mplayer
portmaster -R mplayer
portmaster -L
portmaster -a
portmaster -g

 

portmaster multimedia/mplayer installiert wie bereits erwähnt initial einen Port, portmaster –e mplayer deinstalliert einen Port, portmaster mplayer ohne Angabe eines Unterverzeichnisses aktualisiert einen bereits installierten Port, portmaster –R mplayer aktualisiert ebenso alle von mplayer abhängigen Ports, portmaster –L listet alle installierten Ports sowie etwaige Updates, portmaster –a installiert alle anstehenden Updates, portmaster –g erzeugt ein Paket, welches mittels pkg_add einfach auf anderen Rechnern installiert werden kann. Darüber hinaus findet man in der Manpage zu Portmaster noch allerlei nützliche Funktionalitäten, welche u.a. auch den Umgang mit Paketen erleichtern.

Die Abarbeitung von Ports mittels Tools wie portupgrade bleibt hier unerwähnt, da ich derlei auf Datenbanken basierende Werkzeuge in heutiger Zeit eher als unnötigen Ballast erachte, denn Hilfe. Wer dennoch portupgrade nutzen möchte, der sollte sich für eines von beiden entscheiden. Eine alternierende Anwendung beider Werkzeuge zieht schwerwiegende Probleme nach sich, man sollte dies also tunlichst vermeiden.

Wer darüber hinaus die Lust verspürt eigene Ports zu erstellen bzw. diese zu aktualisieren, der kann sich das FreeBSD Porter-Handbuch zu Gemüte führen.

Viel Spaß :-)

 

 

Bild: Der Bulo

, , , , , , , ,

RSS-Feed abonnieren