Fink

P.M.F. - 8. Package Usage Problems - General

P.8.1: Me aparecen muchos mensajes con "locale not supported by C library". ¿Es malo esto?

R.: It's not bad, it just means that the program will use the default English messages, date formats, etc. The program will function normally otherwise. The Running X11 document has details.

P.8.2: De repente han aparecido una cantidad de usuarios desconocidos en mi sistema, con nombres como "mysql", "pgsql" y "games". ¿De dónde salieron?

R.: You have used Fink to install a package which is dependent on another package, passwd. passwd installs a number of extra users on your system for security reasons -- on Unix systems, files and processes belong to "owners", which allows system administrators to fine-tune the permissions and security of the system. Programs such as Apache and MySQL need an "owner", and it is insecure to assign these daemons to root (imagine what would happen if Apache were to be compromised and suddenly had write permission to all files on the system). Thus, the passwd package takes the work out of setting up these extra users for Fink packages that require this.

It can be alarming to suddenly discover a number of unexpected users in your "System Preferences: Users" pane, but suppress the urge to delete them:

  • First of all, you have obviously chosen to install a package which requires their use, so deleting the user doesn't make much sense, does it?
  • There are in fact a number of extra users already installed on Mac OS X that you may not have known about: www, daemon, nobody, are just a few of them. The presence of these extra users is a standard Unix convention for running certain services; the passwd package simply adds a couple of extra that Apple did not provide. You can see these Apple-installed users in NetInfo Manager.app, or by running niutil -list . /users
  • If you do decide to delete these users, be very careful of how you go about it. Using the "System Preferences: Users" pane will assign all of their files to a random administrator account, and there have been reports of havoc played with the administrator account's permissions. This is a bug with System Preferences, and has been submitted to Apple. A safer way to remove these users from your system is to do so from within NetInfo Manager.app or use the command line tool niutil in Terminal. Read the man page for niutil for more information about NetInfo.

Fink does request permission to install these additional users on your system during the installation of the passwd package, so this should not have come as a surprise.

P.8.3: Cómo puedo compilar algo usando el software instalado por Fink.

R.: When compiling something yourself outside of Fink, the compiler and linker need to be told where to find the Fink-installed libraries and headers. It is also necessary to tell the compiler to use the appropriate target architecture. For a package that uses standard configure/make process, you need to set some environment variables:

-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-clang:$PATH
export MACOSX_DEPLOYMENT_TARGET=10.9

-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-clang:$PATH
setenv MACOSX_DEPLOYMENT_TARGET 10.9

(assuming that the build system is running OS 10.9 or later)

It is often easiest just to add these to your startup files (e.g. .cshrc | .profile) so they are set automatically. If a package does not use these variables, you may need to add the "-I/opt/sw/include" (for headers) and "-L/opt/sw/lib" (for libraries) to the compile lines yourself. Some packages may use similar non-standard variables such as EXTRA_CFLAGS or --with-qt-dir= configure options. "./configure --help" will usually give you a list of the extra configure options.

In addition, you may need to install the development headers (e.g. foo-1.0-1-dev) for the library packages that you are using, if they aren't already installed.

P.8.4: No puedo correr ninguna de las aplicaciones instaladas con Fink desde el menú de Aplicaciones de las X11 de Apple.

R.: Apple X11 doesn't keep track of the Fink environment settings, which means that the Applications menu doesn't have the PATH set correctly to find your Fink applications. The solution is to preface the name of a Fink-installed application with

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

For example, if you want to run a Fink-installed GIMP, then put

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

in the Command field of your GIMP entry.

You can also edit your .xinitrc file (in your user directory) and add:

source /opt/sw/bin/init.sh

after the first line.

P.8.5: Estoy confundido con todas las opciones de las X11: X11 de Apple, XFree86, etc. ¿Cuál de ellas debería instalar?

R.: All are variants on XFree86 (they're all based on the XFree86 code), but have some slight differences between them. Apple's X11, which is a modification of XFree86-4.2.1, and XFree86-4.3 are faster than standard XFree86-4.2.1.1, but the latter is more stable. There is also a modification of 4.2.1.1 with threading support added, which is required by a few packages.

Currently, under Panther, Apple's X11 (on the third disk) is the only choice. Don't forget to install the X11 SDK (on the XCode disk) if you want to compile programs.

Under Jaguar, the most popular choices, and the Fink packages to make them work are:

  • 4.2.x built via Fink: install xfree86-base and xfree86-rootless or xfree86-base-threaded and xfree86-rootless-threaded (and the respective -shlibs)

  • 4.3.x built via Fink: install the xfree86 and xfree86-shlibs packages

  • 4.2.x from Apple (User+SDK packages installed): install the system-xfree86 package

There are other options, as well. There is a more extensive treatment in the Running X11 document.

P.8.6: Cuando intento correr una aplicación, me sale un mensaje diciendo: "cannot open display". ¿Qué debo hacer?

R.: This error means that the system isn't connecting with your X display. Make sure you do the following:

1. Start X (Apple's X11, XFree86, ...).

2. Make sure your DISPLAY environment variable is set correctly. If you are using the default setup for X, you can do this with

setenv DISPLAY :0

if you are running tcsh, or

export DISPLAY=:0

if you're running bash.

P.8.7: No encuentro a mi programa favorito en Fink. ¿Cómo sugiero que se incluya un nuevo paquete en Fink?

R.: Make the request on the Package Request Tracker on the Fink project page.

Note that you must have a SourceForge id to do so.

P.8.8: ¿Qué son todos estos system-* "virtual packages" que a veces están presentes, pero que yo mismo no puedo instalarlos ni sacarlos?

R.: Packages with names like system-perl are placeholder packages. These do not contain actual files, but merely serve as a mechanism for fink to know about programs that have been installed manually outside of fink.

Starting with the 10.3 distribution, most placeholders aren't even real packages that you can install and remove. Instead, they are "Virtual Packages", package data structures generated by the fink program itself in response to a preconfigured list of manually installed programs. For each virtual package, fink checks for certain files in certain locations, and if they are found, considers that virtual package "installed".

You can run the program fink-virtual-pkgs (part of the fink package) to get a listing of exactly what fink thinks is installed. Adding the --debug flag will give lots of diagnostic information about exactly what files fink is checking.

Unfortunately, there is no mechanism by which you can install an arbitrary program yourself (outside of fink) and have fink recognize that program rather than trying to install its own version of it. It's just too difficult in the general case to be able to check configure and compiler flags, pathnames, etc.

Here are the most important virtual packages that fink defines (as of fink-0.19.2):

Siguiente: 9. Package Usage Problems - Specific Packages