F.A.Q. - 8. Package Usage Problems - General
Q8.1: I'm getting lots of messages like "locale not supported by C library". Is that bad?
A: 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.
Q8.2: There are suddenly a number of strange users on my system, with names like "mysql", "pgsql", and "games". Where did they come from?
A: 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 discover suddenly a number of unexpected users in your "System Preferences: Users" pane (on 10.2.x) or "System Preferences: Accounts" pane (on 10.3.x), 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
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 (on 10.2.x) or "System Preferences: Accounts" pane (on 10.3.x) 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
niutilin Terminal. Read the man page for
niutilfor 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.
Q8.3: How do I compile something myself using Fink-installed software?
A: 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:
export CFLAGS=-I/sw/include export LDFLAGS=-L/sw/lib export CXXFLAGS=$CFLAGS export CPPFLAGS=$CXXFLAGS export ACLOCAL_FLAGS="-I /sw/share/aclocal" export PKG_CONFIG_PATH="/sw/lib/pkgconfig" export PATH=/sw/var/lib/fink/path-prefix-10.6:$PATH export MACOSX_DEPLOYMENT_TARGET=10.5
setenv CFLAGS -I/sw/include setenv LDFLAGS -L/sw/lib setenv CXXFLAGS $CFLAGS setenv CPPFLAGS $CXXFLAGS setenv ACLOCAL_FLAGS "-I /sw/share/aclocal" setenv PKG_CONFIG_PATH "/sw/lib/pkgconfig" setenv PATH /sw/var/lib/fink/path-prefix-10.6:$PATH setenv MACOSX_DEPLOYMENT_TARGET 10.5
(assuming that the build system is running OS 10.5 or later)
It is often easiest just to add these to your startup files (e.g.
.profile) so they
are set automatically. If a package does not use these variables, you
may need to add the "-I/sw/include" (for headers) and "-L/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.
Q8.4: I can't run any of my Fink-installed applications using the Applications menu in Apple X11.
A: 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 /sw/bin/init.sh ;
For example, if you want to run a Fink-installed GIMP, then put
source /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:
after the first line.
Q8.5: I'm bewildered by the X11 options: Apple X11, XFree86, etc. What should I install?
A: All are variants on XFree86 (they're all based on the XFree86 code), but have some slight differences between them. There are different options under Panther and under Jaguar.
Under Panther you have the choice between:
Apple's X11 (on the third disk). Don't forget to install the X11 SDK (on the XCode disk) if you want to compile programs or if you plan to install other X11-related Fink packages from source.
4.4.x built via Fink: install the
X.org built via Fink: install the
Under Jaguar, the most popular choices, and the Fink packages to make them work are:
4.2.x built via Fink: install
xfree86-rootless-threaded(and the respective
4.3.x built via Fink: install the
4.2.x from Apple (assuming you have the User + SDK packages installed): the
system-xfree86package is automatically generated for current versions of Fink; do NOT install it. (Note that the public beta of Apple's X11 for Jaguar is no longer available, so this is only an option for you if you already have this installed, from the time in which it was available.)
There are other options, as well. There is a more extensive treatment in the Running X11 document.
Q8.6: When I try to run an application, I get a message that says "cannot open display:". What do I need to do?
A: 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
if you're running
Q8.7: I don't see my favorite program in Fink. How do I suggest a new package for inclusion in Fink?
A: Make the request on the Package Request Tracker on the Fink project page.
Note that you must have a SourceForge id to do so.
Q8.8: What are all these
packages" that are sometimes present, but that I can't
seem to install or remove myself?
Packages with names like
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
(part of the fink package) to get a listing of exactly what
fink thinks is installed. Adding the
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):
- system-perl: [virtual package representing perl]
/usr/bin/perl, which is part of the default OS X installation. This package also provides
perlXXX-coreaccording to the version X.X.X of that perl interpreter.
- system-javaXXX: [virtual package representing Java X.X.X]
Represents the Java Runtime Environment, which is part of OS X (and Apple's Software Update). See Apple's Java page for more information.
- system-javaXXX-dev: [virtual package representing Java X.X.X development headers]
Represents the Java SDK, which must be manually downloaded from connect.apple.com (free registration required) and installed. If you have updated your Java Runtime Environment, your SDK may not be updated automatically (and may even be deleted!). Remember to check for (and download and install if necessary) the SDK after installing or upgrading your Runtime Environment. See also this FAQ entry.
- system-java3d: [virtual package representing Java3D]
- system-javaai: [virtual package representing Java Advanced Imaging]
Represent Java extensions for 3D graphics and image processing, which must be manually downloaded from Apple and installed. See Apple' webpage for more information.
- system-xfree86: [placeholder for user installed x11]
- system-xfree86-shlibs: [placeholder for user installed x11 shared libraries]
Represent Apple's X11/XDarwin, an optional part of OS X (X11User.pkg). These packages provide
x11-shlibs, respectively. See also this FAQ entry.
- system-xfree86-dev [placeholder for user installed x11 development tools]
Represents Apple's X11/XDarwin SDK, an optional part of OS X (X11SDK.pkg). This package provides
x11-dev. See also this FAQ entry.