Fink

F.A.Q. - 8. Benutzung von Paketen - Allgemein

F.8.1: Ich erhalte viele Meldungen der Art "locale not supported by C library". Ist das schlimm?

A.: Es ist nicht weiter schlimm. Es bedeutet lediglich, dass das Programm die voreingestellten englischen Meldungen, Datumsformate usw. benutzen wird. Ansonsten wird das Program ganz normal funktionieren. Die Seite Probleme beheben hat weitere Details.

F.8.2: Plötzlich gibt es eine ganze Reihe von seltsamen Nutzern auf meinem System. Die Namen sind "mysql", "pgsql" und "games". Wo kommen die denn her?

A.: Sie haben mit Fink ein Paket installiert, das von einem anderen Paket abhängt, das passwd heisst. Diese Paket installiert aus Sicherheitsgründen eine Reihe von extra Nutzern auf ihrem System. Auf allen Unix-Systemen gehören Dateien und Prozessen bestimmten "Eigentümern", wodurch System-Administratoren Feinabstimmungen über Zugriffsrechte und damit der Systemsicherheit vornehmen können. Programme wie apache und mysql benötigen einen Eigentümer und eine Zuordnung dieser Daemons zu root ist unsicher. Stellen sie sich doch nur vor, dass apache kompromittiert wurde und als root auch noch auf alle Dateien ihres Systems zugreifen kann. Für diesen Zweck gibt es das Paket passwd, mit dem diese extra Nutzer eingerichtet werden, die von bestimmten Fink-Paketen benötigt werden.

Es sieht zunächst alarmierend aus, wenn plötzlich eine Reihe unerwarteter Nutzer in den Systemeinstellungen -> Nutzer auftauchen. Aus folgenden Gründen auf keinen Fall die Nutzer löschen:

  • Offensichtlich haben sie ein Paket installiert, das die Nutzer benötigt. Diese Nutzer zu löschen wird wohl nicht sinnvoll sein, oder?
  • Es gibt sowieso einige extra Nutzer im System, von denen sie bisher vermutlich nichts mitbekommen haben: www, daemon und nobody sind nur einige davon. Ihre Anwesenheit ist Konvention auf jedem Unix-System. Das Paket passwd fügt einige hinzu, die von Apple nicht zur Verfügung gestellt werden. Sie können sich die Nutzer mit dem Tool NetInfo Manager.app oder mit dem Kommando niutil -list . /users ansehen.
  • Sollten sie diese Nutzer entgegen unserem Rat doch löschen wollen, dann seien sie extrem vorsichtig. Löscht man sie über die Systemeinstellungen, dann werden die Dateien und Ordner, die bisher diesen Nutzern zugeordnet waren, einem zufälligen Administrator zugeordnet. Dabei kam es in der Vergangenheit dazu, dass die Zugriffsrechte der Administratorkonten so verstellt wurden, dass nichts mehr ging. Das ist ein Fehler in den Systemeinstellungen und wurde auch als Bugreport an Apple gemeldet. Besser ist es diese Nutzer mit dem Programm NetInfo Manager.app oder dem Kommando niutil zu löschen. Lesen sie auf jeden Fall die man-Pages für niutil und machen sie sich über NetInfo kundig.

Fink fragt ausdrücklich während der Installation des Pakets passwd um ihre Erlaubnis, diese Nutzer einzurichten. So sehr sollten sie also nicht über die Präsenz dieser Nutzer überrascht sein.

F.8.3: Wie übersetze ich ein Program selbst, das Pakete aus Fink benutzt?

A.: Wenn sie etwas selbst außerhalb von Fink übersetzen wollen, müssen dem Compiler und dem Linker mitgeteilt werden, wo die von Fink installierten Header-Dateien und Bibliotheken sind. Man muss dem Compiler die erforderliche Architektur mitteilen. Wird ein Programm mit dem üblichen configure/make Prozess erzeugt, muss man folgende Umgebungsvariablen setzen:

-bash-

export CFLAGS=-I/opt/sw/include
export LDFLAGS=-L/opt/sw/lib 
export CXXFLAGS=$CFLAGS 
export CPPFLAGS=$CXXFLAGS 
export ACLOCAL_FLAGS="-I /opt/sw/share/aclocal"
export PKG_CONFIG_PATH="/opt/sw/lib/pkgconfig"
export PATH=/opt/sw/var/lib/fink/path-prefix-10.6:$PATH
export MACOSX_DEPLOYMENT_TARGET=10.5

-tcsh-

setenv CFLAGS -I/opt/sw/include 
setenv LDFLAGS -L/opt/sw/lib 
setenv CXXFLAGS $CFLAGS 
setenv CPPFLAGS $CXXFLAGS 
setenv ACLOCAL_FLAGS "-I /opt/sw/share/aclocal"
setenv PKG_CONFIG_PATH "/opt/sw/lib/pkgconfig"
setenv PATH /opt/sw/var/lib/fink/path-prefix-10.6:$PATH
setenv MACOSX_DEPLOYMENT_TARGET 10.5

(Dies gilt für Systeme ab 10.5)

Es ist oft am einfachsten, die Umgebungsvariablen in den Startup-Dateien (also .cshrc oder .profile) einzutragen, so dass sie automatisch gesetzt werden. Verwendet ein Paket diese Variablen nicht, dann müssen sie die Optionen "-I/opt/sw/include" (für Header-Dateien) und "-L/opt/sw/lib" (für Bibliotheken) selbst in die Kommandos für das Übersetzen hinzufügen. Einige Pakete nutzen extra Variablen außerhalb des üblichen, wie die configure-Optionen EXTRA_CFLAGS oder --with-qt-dir=. "./configure --help" erzeugt normalerweise eine Liste der extra Optionen eines Pakets.

Oft muss man auch die Entwicklungspakete mit den Header-Dateien für das Bibliothekspaket installieren, das sie benutzen, z. B. das Paket foo-1.0-1-dev für das Bibliothekspaket foo-1.0-1-shlibs.

F.8.4: Ich kann keines der Programme, die ich in Fink installiert habe, über das Programme-Menu (Applications) in Apples X11 starten.

A.: Apples X11 protokolliert die Änderungen in der Fink-Umgebung nicht mit. Dies bedeutet, dass the Pfad im Programme-Menu nicht so gesetzt ist, dass Fink-Programme gefunden werden. Die Lösung ist dem Namen des Fink-Programms ein

source /opt/sw/bin/init.sh ;

voran zu stellen. Wenn sie z. B. das mit fink installierte Gimp starten wollen, schreiben sie in den Eintrag für Gimp:

source /opt/sw/bin/init.sh ; gimp

Sie können auch die Datei .xinitrc (in ihrem Nutzer-Verzeichnis) editieren und folgendes nach der ersten Zeile hinzufügen:

source /opt/sw/bin/init.sh

F.8.5: Ich durch die vielen Optionen für X11 (Apple X11, XFree86, etc. )verwirrt. Welche soll ich installieren?

A.: Alle Optionen sind Variaten von XFree86, denn sie sind alle von XFree86-Code abgeleitet, wenn auch mit kleinen Unterschieden. Die Optionen sind für Panther und Jaguar unterschiedlich.

Unter Panther hat man die Wahl zwischen:

  • Apples X11 (auf der dritten Disk), aber vergessen sie nicht, auch noch die X11 SDK zu installieren, die auf der XCode Disk ist, wenn sie auch Programme übersetzen wollen oder wenn sie vorhaben, andere Fink-Pakete aus den Quellen zu übersetzen, die ebenso von X11 abhängen.

  • 4.4.x erstellt mit Fink: Installieren sie die Pakete xfree86 und xfree86-shlibs.

  • X.org erstellt mit Fink: Installieren sie die Pakete xorg und xorg-shlibs.

Unter Jaguar sind folgende Optionen beliebt und damit auch einige der Fink-Pakete:

  • 4.2.x erstellt mit Fink: Installieren sie die Pakete xfree86-base und xfree86-rootless oder xfree86-base-threaded und xfree86-rootless-threaded und die entsprechenden -shlibs-Pakete.

  • 4.3.x erstellt mit Fink: Installieren sie die Pakete xfree86 und xfree86-shlibs.

  • 4.2.x von Apple (unter der Annahme, dass sie User- und SDK-Pakete installiert haben): Das Paket system-xfree86 wird für die aktuelle Version von Fink automatisch erzeugt; installieren sie das Paket nicht. (Bemerkung: Die öffentliche Beta-Version von Apples X11 für Jaguar ist nicht mehr verfügbar, d. h., dass diese Option nur gegeben ist, wenn sie Apples X11 installiert haben, als es noch zur Verfügung stand.)

Es gibt noch anderen Optionen. Lesen sie die ausführlichere Dolkumentation in Nutzung von X11 .

F.8.6: Wenn ich versuche, ein Programm zu starten, erhalte ich die Fehlermeldung: "cannot open display:". Was mucss ich tun?

A.: Die Fehlermeldung bedeutet, dass ihr System keine Verbindung zu ihrem X-Bildschirm aufbaut. Gehen sie wie folgt vor::

1. Starten sie X (Apples X11, XFree86, ...).

2. Überprüfen sie, dass die Umgebungsvariable DISPLAY korrekt gesetzt ist. Mit den üblichen Einstellungen können sie das so machen:

setenv DISPLAY :0

wenn sie die Shell tcsh benutzen oder

export DISPLAY=:0

wenn sie die Shell bashbenutzen.

F.8.7: Ich finde mein Lieblingsprogramm nicht in Fink. Wie kann ich ein neues Programm für Fink vorschlagen?

A.: Tragen sie ihren Wunsch auf Webseiten von Fink im Package Request Tracker ein.

Anmerkung: Dazu benötigen sie ein Konto bei SourceForge.

F.8.8: Was bedeuten all diese virtuellen Pakete system-*, die zwar immer mal wieder auftauchen, die ich aber selbst nicht installieren oder löschen kann?

A.: Pakete mit Namen wie system-perl sind reine Platzhalter. Sie enthalten keine tatsächlichen Dateien, sondern dienen nur als ein Mechanismus, um Fink Informationen über Programme zur Verfügung zu stellen, die manuell und außerhalb von Fink installiert wurden.

Beginnend mit OS X 10.3 sind die meisten Platzhalter-Pakete keine echten Pakete, sondern virtuelle, in denen Datenstrukturen über Pakete aus einer bestehenden Liste von Fink selbst gespeichert werden. Für jedes virtuelle Paket überprüft Fink die Präsenz bestimmter Dateien an bestimmten Plätzen und wenn sie gefunden werden, bekommt das virtuelle Paket den Status "installiert".

Mit dem Programm fink-virtual-pkgs aus dem Paket fink bekommen sie eine Liste der Programme, von denen Fink davon ausgeht, dass sie installiert sind. Mit der Option --debug erhalten sie die zusätzlich Information, welche Dateien überprüft hat, um den Status eines Pakets fest zu stellen.

Unglücklichweise ist es nicht vorgesehen, dass sie ein beliebiges Programm selbst installieren und fink dann feststellt, dass das Programm bereits installiert ist und die eigene Version nicht installiert. Es ist einfach viel zu kompliziert, für den allgemeinen Fall die configure- und compiler-Optionen, Pfadnamen und so weiter festzustellen oder zu überprüfen.

Es folgt die Liste der wichtigsten, virtuellen Pakete die Fink definiert (ab fink-0.19.2):

Weiter: 9. Benutzung von Paketen - Bestimmte Pakete