Kapitel 7. Benutzerprogramme

7.1. Nun, wo sind die ganzen Benutzerprogramme?
7.2. Wie konfiguriere ich INN (Internet News) für meine Maschine?
7.3. Unterstützt FreeBSD Java™?
7.4. Warum kann ich manche Ports auf meiner 4.X-STABLE-Maschine nicht erstellen?
7.5. Ich habe gerade versucht, INDEX mit make index zu bauen, und es hat nicht geklappt. Woran liegt das?
7.6. Warum ist CVSup nicht im FreeBSD-Basisquellbaum enthalten?
7.7. Ich habe die Sourcen aktualisiert, wie aktualisiere ich jetzt die installierten Ports?
7.8. Warum ist /bin/sh so spartanisch? Warum benutzt FreeBSD nicht die bash oder eine ähnliche Shell?
7.9. Wieso dauert es so lange, bis Netscape® und Opera starten?
7.10. Ich habe die Ports-Sammlung mit CVSup aktualisiert. Viele Ports lassen sich danach nicht mehr bauen und geben seltsame Fehlermeldungen aus. Was ist passiert? Ist die Ports-Sammlung kaputt?
7.11. Wie erzeuge ich Audio-CDs aus MIDI-Dateien?

7.1. Nun, wo sind die ganzen Benutzerprogramme?

Werfen Sie bitte einen Blick auf die Ports-Seite, um Informationen über die nach FreeBSD portierten Softwarepakete zu erhalten. Die Liste enthält zurzeit 17,000 Einträge und wächst täglich. Schauen Sie hier also öfter nach oder melden Sie sich bei der Mailinglistefreebsd-announce an, um sich regelmäßig über Änderungen zu informieren.

Die meisten Ports sollten auf den 4.X, 5.X und 6.X-Systemen laufen. Jedes Mal, wenn ein FreeBSD-Release erstellt wird, wird auch ein Snapshot des Port-Baumes vom Zeitpunkt des Releases in das Verzeichnis ports/ eingefügt.

Wir unterstützen auch das Konzept von “Packages” - im Grunde genommen nicht mehr als komprimierte Binärdistributionen mit ein wenig zusätzlicher Intelligenz zur Ermöglichung angepasster Installationen. Ein Package kann leicht installiert und wieder deinstalliert werden, ohne, dass man etwas über wissen muss, welche Dateien es enthält.

Benutzen Sie das Paketinstallationsmenü in /stand/sysinstall (unter dem Menüpunkt post-configuration) oder führen Sie den Befehl pkg_add(1) mit den speziellen Paketdateien aus, die Sie installieren möchten. Paketdateien können für gewöhnlich an der Endung .tgz oder .tbz erkannt werden und diejenigen, die über eine CDROM-Distribution verfügen, haben auf ihrer CD ein Verzeichnis packages/All, das solche Dateien enthält. Für verschiedene FreeBSD-Versionen können sie von folgenden Adressen auch über das Netz heruntergeladen werden:

oder von Ihrem nächstgelegenen Mirror.

Beachten Sie, dass nicht alle Ports als Package verfügbar sind, da ständig neue hinzugefügt werden. Es ist immer eine gute Idee, sich regelmäßig auf der ftp.de.FreeBSD.org Masterseite darüber zu informieren, welche Packages verfügbar sind.

7.2. Wie konfiguriere ich INN (Internet News) für meine Maschine?

Ein idealer Startpunkt nach der Installation des Packages oder Ports news/inn ist Dave Barr's INN-Seite, wo Sie die INN-FAQ finden.

7.3. Unterstützt FreeBSD Java™?

Ja. Informieren Sie sich bitte unter http://www.de.FreeBSD.org/java/.

7.4. Warum kann ich manche Ports auf meiner 4.X-STABLE-Maschine nicht erstellen?

Wenn Sie eine FreeBSD-Version benutzen, die deutlich älter als das aktuelle -CURRENT oder -STABLE ist, könnte es sein, dass Sie vorher Ihre Ports-Sammlung aktualisieren müssen. Lesen Sie dazu den Abschnitt Keeping Up des Porters-Handbuch. Ist Ihre Ports-Sammlung aktuell, könnte es sein, dass jemand eine Änderung am Port durchgeführt hat, die für -CURRENT funktioniert, den Port für -STABLE aber unbrauchbar gemacht hat. Bitte senden Sie einen Fehlerbericht mit dem Befehl send-pr(1). Von der Ports-Sammlung wird nämlich erwartet, dass sie sowohl auf -CURRENT als auch auf -STABLE funktioniert.

7.5. Ich habe gerade versucht, INDEX mit make index zu bauen, und es hat nicht geklappt. Woran liegt das?

Stellen Sie zuerst sicher, dass Ihre Ports-Sammlung aktuell ist. Fehler, die einen Bau von INDEX aus einer aktuellen Ports-Sammlung verhindern, sind sofort sichtbar und werden daher fast immer umgehend behoben.

Ist Ihre Ports-Sammlung jedoch aktuell, haben Sie vielleicht ein anderes Problem. make index hat einen Bug im Umgang mit unvollständigen Kopien der Ports-Sammlung. Es nimmt an, dass Sie über eine lokale Kopie aller Ports verfügen, von denen jeder lokale Port abhängt. Wenn Sie also beispielsweise eine Kopie von foo/bar auf Ihrem System haben, und foo/bar ist von baz/quux abhängig, dann muss auch eine Kopie von baz/quux auf Ihrem System vorhanden sein, sowie eine Kopie aller Ports, von denen baz/quux abhängt. Anderenfalls ist make index aufgrund fehlender Informationen nicht in der Lage, den Abhängigkeitsbaum zu erzeugen.

Dieses Problem tritt vor allem dann auf, wenn FreeBSD-Benutzer cvsup(1) verwenden, um die Ports-Sammlung zu aktualisieren und dabei verschiedene Kategorien durch die Datei refuse von der Aktualisierung ausschließen. Theoretisch ist es zwar möglich, Kategorien auszuschließen, in der Praxis gibt es aber zu viele Ports, die von Ports in anderen Kategorien abhängen. Wenn Sie also INDEX bauen wollen, müssen Sie über eine komplette Kopie der Ports-Sammlung verfügen.

Es gibt seltene Fälle, in denen INDEX nicht gebaut werden kann, wenn bestimmte WITH_* oder WITHOUT_* Variablen in make.conf gesetzt sind. Wenn Sie dieses Problem haben, sollten Sie diese make-Variablen deaktivieren und INDEX erneut bauen, bevor Sie das Problem an FreeBSD ports melden.

7.6. Warum ist CVSup nicht im FreeBSD-Basisquellbaum enthalten?

Das Basissystem von FreeBSD soll “selbstverwaltend” sein. Es soll also möglich sein, das komplette Betriebssystem mit einer beschränkten Anzahl von Werkzeugen zu starten. Daher werden die zum Bau von FreeBSD nötigen Werkzeuge mit dem Quelltext gekoppelt. Zu diesen Werkzeugen gehören ein C-Compiler (gcc(1)), make(1), awk(1) und andere.

Da CVSup in Modula-3 geschrieben wurde, müsste ein Modula-3-Compiler ins Basissystem aufgenommen und auch gewartet werden. Dies würde einen gestiegenen Speicherbedarf für die FreeBSD-Quellen sowie einen erhöhten Wartungsaufwand verursachen. Daher ist es sowohl für Entwickler als auch Benutzer einfacher, CVSup bei Bedarf als Port oder als Paket von einer Installations-CD zu installieren.

7.7. Ich habe die Sourcen aktualisiert, wie aktualisiere ich jetzt die installierten Ports?

FreeBSD enthält zwar kein Programm, das die installierten Ports aktualisiert, allerdings existieren diverse Programme, die diesen Prozess etwas vereinfachen. Weiterhin können Sie zusätzliche Programme installieren, die Sie dabei unterstützen.

Sie können mit pkg_version(1) ein Script erzeugen, das die installieren Ports mit einer neueren Version aus der Ports-Sammlung ersetzt:

# pkg_version -c > /tmp/myscript

Das so erzeugte Script muss manuell geändert werden, bevor es benutzt wird. Neuere Versionen von pkg_version(1) erzwingen dies, indem sie ein exit(1) an den Anfang des Scripts setzen.

Sie sollten die Ausgaben des Scripts abspeichern, da sie Ihnen melden werden, welche Ports von den dem gerade aktualisierten Port abhängen. Es ist möglich, dass diese auch aktualisiert werden müssen. Der typische Fall, in dem ein Update erforderlich ist, ist eine Änderung der Versionsnummer einer shared library; in diesem Fall müssen die abhängigen Ports neu übersetzt werden, damit sie die neue Library benutzen.

Anmerkung: Ab FreeBSD 5.0 steht die Option -c in pkg_version(1) nicht mehr zur Verfügung.

Falls Sie über genügend freien Plattenplatz verfügen, können Sie diesen Prozess mit portupgrade automatisieren. portupgrade umfasst diverse Programme, die die Arbeit mit Packages erleichtern und ist als ports-mgmt/portupgrade verfügbar. Da portupgrade in Ruby geschrieben wurde, wird es wahrscheinlich nie ein Bestandteil von FreeBSD werden. Allerdings sollte das niemanden davon abhalten, es trotzdem zu benutzen.

Wenn Ihr System rund um die Uhr läuft, kann es jede Woche automatisch eine Liste der Ports erzeugen, die wahrscheinlich aktualisiert werden müssen. Fügen Sie dazu weekly_status_pkg_enable="YES" in /etc/periodic.conf ein.

7.8. Warum ist /bin/sh so spartanisch? Warum benutzt FreeBSD nicht die bash oder eine ähnliche Shell?

Weil der POSIX®-Standard definiert, dass es so eine Shell geben muss.

Die ausführlichere Antwort: Viele Leute müssen Shell-Programme schreiben, die auf vielen verschiedenen Systemen nutzbar sein müssen. Aus diesem Grund enthält der POSIX-Standard eine sehr detaillierte Definition der Shell und der Hilfsprogramme. Die meisten Programme werden für die Bourne Shell geschrieben; außerdem nutzen mehrere wichtige Schnittstellen (make(1), system(3), popen(3) und ihre Entsprechungen in höheren Programmiersprachen wie Perl und Tcl) die Bourne Shell, um Befehle auszuführen. Da die Bourne Shell an so vielen Stellen und so häufig genutzt wird, muss sie die folgenden Anforderungen erfüllen: Schneller Start, ein klar definiertes Verhalten und ein möglichst geringer Speicherverbrauch.

Wir haben bei der vorliegenden Implementierung versucht, möglichst viele dieser Anforderungen zu erfüllen. Um /bin/sh nicht zu groß werden zu lasen, haben wir viele der Annehmlichkeiten der anderen Shells weggelassen. Aus diesem Grund gibt es in den Ports die luxuriöseren Shells wie bash, scsh, tcsh und zsh. Vergleichen Sie einfach mal den Speicherverbrauch der verschiedenen Shells, indem Sie ps -u aufrufen und sich die Angaben in den Spalten “VSZ” und “RSS” ansehen.

7.9. Wieso dauert es so lange, bis Netscape® und Opera starten?

In den meisten Fällen liegt es daran, dass Ihre DNS-Einstellungen fehlerhaft sind. Sowohl Netscape als auch Opera stellen Anfragen an DNS, wenn Sie gestartet werden. Das Fenster des Browsers erscheint erst, wenn das Programm eine Antwort erhalten hat oder es festgestellt hat, dass Ihr System nicht an ein Netzwerk angeschlossen ist.

7.10. Ich habe die Ports-Sammlung mit CVSup aktualisiert. Viele Ports lassen sich danach nicht mehr bauen und geben seltsame Fehlermeldungen aus. Was ist passiert? Ist die Ports-Sammlung kaputt?

Sie sollten immer die Teilsammlung ports-base aktualisieren, wenn Sie nur Teile der Ports-Sammlung mit Hilfe der CVSup-Teilsammlungen aktualisieren. Die Erklärung dazu finden Sie im Handbuch.

7.11. Wie erzeuge ich Audio-CDs aus MIDI-Dateien?

Installieren Sie zuerst den Port audio/timidity++. Danach müssen Sie manuell die GUS-Patche von Eric A. Welsh von http://www.stardate.bc.ca/eawpatches/html/default.htm installieren. Wenn timidity++ richtig installiert wurde, können Sie mit dem folgenden Kommando MIDI-Dateien in das WAV-Format konvertieren:

% timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid

Die WAV-Dateien können dann in andere Formate konvertiert werden oder auf Audio-CDs, wie im FreeBSD-Handbuch beschrieben, gebrannt werden.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.