The Fink F.A.Q.

This is the list of frequently asked questions about Fink. Like in most FAQs, some questions are taken from real life and some are made up. It’s really more like a documentation written in an ad-hoc, question and answer style.

The FAQ consists of several pages, one for each section. All questions are listed and linked in the table of contents below.


1 General Questions

Q1.1: What is Fink?

Q1.2: What does the name Fink stand for?

A: Nothing, it’s just a name. It’s not even an acronym.

Well, actually Fink is the German name for Finch, a kind of bird. I was looking for a name for the project, and the name of the OS, Darwin, led me to think about Charles Darwin, the Galapagos Islands and evolution. I remembered a piece about the so-called Darwin Finches and their beaks from school, and well, that’s it…

Q1.3: How is Fink different from the BSD port mechanism (this includes OpenPackages and GNU-Darwin)?

A: Some main advantages:

  • It’s written in Perl, not make/shell. Thus it doesn’t rely on special features only found in BSD make. There is no need to flag packages that need GNU make to build.

  • dpkg provides sophisticated management for binary packages – smooth updating, special handling for configuration files, virtual packages and other advanced dependencies.

  • Fink doesn’t install into /usr/local unless explicitly requested and doesn’t require fiddling with /usr/bin/make or other system-provided commands. That makes it safer to use and reduces interference with Mac OS X and third-party packages to a minimum.

Q1.4: Why doesn’t Fink install into /usr/local?

A: There are several reasons, but the common line is “because breakage will occur”.

Reason One: Third-party software. /usr/local is the well-established place to put software that is not part of the system shipped by the original vendor. This means that it is a good place to put stuff. However, it also means that other people will put stuff there, too. Most install routines will just overwrite what’s there – this also applies to dpkg. One can, of course, choose not to install third-party software in /usr/local. Unfortunately, most installers don’t tell you beforehand what they will install where.

Reason Two: /usr/local/bin is in the default PATH. This means that your shell will find the installed programs without additional measures. But it also means that you do have to take additional measures if you do not want to use the programs. In extreme cases, this can also affect the system itself – many parts depend on shell scripts.

Reason Three: The compiler tool chain searches /usr/local by default. The compiler searches /usr/local/include for header files and the linker searches /usr/local/lib for libraries. Again, this is sometimes a welcome convenience, but it’s very hard to disable should the need arise. You can easily disable the compiler by putting a garbage file called stdio.h into /usr/local/include.

All that said, it is possible to install Fink into /usr/local. The installation script will warn you explicitly, but proceed once you acknowledge that you’re doing this at your own risk.

Q1.5: Then why did you choose /sw?

A: That choice is quite arbitrary, but is likely to stay for the foreseeable future for practical (upgrade) issues as well as the fact that it’s safe from conflicting with other packaging systems.

2 Relations with Other Projects

Q2.1: Do you contribute your patches back to the upstream maintainers?

A: We’re trying to. Sometimes sending patches back is easy and everyone is happy once the next release of the package is out. Unfortunately with most packages it’s not that easy. Some common problems:

  • The Fink package maintainer is very busy and doesn’t have the time to send the patch and accompanying explanations to the upstream
  • The upstream maintainers reject the patch. There are lots of valid reasons for this. Most upstream maintainers have a strong interest in clean code, clean configure checks, and compatibility with other platforms.
  • The upstream maintainers accept the patch, but it takes some weeks or months until they release a new version of their package.
  • The package has been abandoned by the original authors and there will be no new releases into which the patch could be merged.

Q2.2: What is your relation with the Debian project? Are you porting Debian Linux to Mac OS X?

A: There is no formal relation between Fink and Debian. Fink is not a port of the Debian GNU/Linux distribution. We have ported Debian’s package management tools (dpkg, dselect, apt-get) though, and use these tools and the .deb binary package format. The actual packages are tailor-made for Mac OS X / Darwin and don’t use the Debian source package format.

Q2.3: What is your relation with Apple?

Apple is aware of Fink and has given us some support as part of their Open Source relations efforts. In the summer and fall of 2001, they provided us with pre-release seeds of new Mac OS X versions in the hope that Fink packages can be adapted in time for the release. Quote: “Hopefully it underscores the commitment that many suspect we’re not willing to provide. We’ll get better at the open source game over time.” Thanks Apple!

Q2.4: What is your relation with Darwinports?

3 Fink mirrors

Q3.1: What are Fink Mirrors?

A: Fink mirrors are rsync servers mirroring the current and stable description files that Fink uses to build packages from source.

Q3.2: Why should I use rsync mirrors?

A: Rsync is a very fast protocol. It will update the description files faster than the old CVS update method. Furthermore, CVS updates are always done from sourceforge.net while rsync updates can be done from a mirror close to you.

Q3.3: Where can I find more information about Fink mirrors?

A: All Fink mirrors are consolidated under the finkmirrors.net domain. The Web-Site at http://finkmirrors.net/ has more information.

Q3.4: I cannot connect to rsync server, what should I do?

A: Sometimes very strict firewalls forbid you to connect to rsync services. If that is the case simply continue using the CVS method

Q3.5: I have switched to the rsync method now all info files from the unused trees are gone

A: This is normal. The rsync update method will only update your active tree, e.g. 10.3, and it will also delete the CVS subdirectories.

Q3.6: How can I switch back and forth between methods?

A: By using fink selfupdate-rsync or fink selfupdate-cvs to switch to rsync or CVS, respectively.

Q3.7: What is a Distfiles mirror?

A: Sometimes it is hard to fetch a certain version of sources from the
Internet. Distfile mirrors hold and mirror the source packages needed
by fink to build its source packages.

4 Upgrading Fink (version-specific troubleshooting)

Q4.1: Fink doesn’t see new packages even after I’ve run an rsync or cvs selfupdate.

A: This is a current issue for people on OS 10.5 using the binary installer. Check your version:

fink --version

If you currently have fink-0.27.13-41, which is the version that comes
with the installer, or fink-0.27.16-41, then there are a couple of options.

  • rsync (preferred): Run the sequence below

    fink selfupdate
    fink selfupdate-rsync
    fink index -f
    fink selfupdate
  • cvs (alternate): Run

    fink selfupdate-cvs
    fink index -f
    fink selfupdate

Either will bring you the newest fink version.

Q4.2: When I try to install stuff I get ‘Can’t resolve dependency “fink (>= 0.28.0)”‘

Q4.3: Fink tells me to run ‘sudo apt-get install libgettext3-dev=0.14.5-2’ to clear up inconsistent dependencies but I’m still stuck.

A: There is a timestamp issue with the libgettext3 package description: 0.14.5-2 is an outdated version. Run

fink index -f
fink update libgettext3-dev	

to update the package description cache and then the package.

Q4.4: Fink tells me ‘Can’t resolve dependency “dpkg (>= 1.10.21-1229)” for package “dpkg-base-files-0.3-1″‘. How do I solve this?

A: There is a timestamp issue with the updated dpkg package description. Run

fink index -f
fink selfupdate

to update the package description cache and then to install dpkg and dpkg-base-files.

5 Installing, Using and Maintaining Fink

Q5.1: How can I find out what packages Fink supports?

Q5.2: I’m behind a firewall. How do I configure Fink to use an HTTP proxy?

A: The fink command supports explicit proxy settings that are passed on to wget/curl. If you were not asked for proxies on first time installation, you can run fink configure to set it up. You can also run that command at any time to reconfigure the fink command. If you followed the instructions in the installation guide, and use /sw/bin/init.csh (or /sw/bin/init.sh), then apt-get and dselect also will use these proxy settings. Make sure that you put the protocol in front of the proxy, e.g.


If you are still having problems, go into System Preferences, select the Network pane, select the Proxies tab, and make sure that the box labeled “Use Passive FTP Mode (PASV)” is checked.

Q5.3: How do I update available packages from CVS when I am behind a firewall?

A: The package cvs-proxy can tunnel through HTTP proxies.

  • Install the cvs-proxy package with the command:

    fink --use-binary-dist install cvs-proxy

  • Switch to the CVS update method with the command:

    fink selfupdate-cvs

If fink is not configured to use your proxy, change the settings

fink configure.

Q5.4: Can I move Fink to another location after installation?

A: No. Well, of course you can move the files using mv or the Finder,
but 99% of the programs will stop working when you do. That’s because
basically all Unix software depends on hardcoded paths to find data
files, libraries and other stuff.

Q5.5: If I move Fink after installation and provide a symlink from the
old location, will it work?

A: Maybe. The general expectation is that it should work, but there
may be hidden traps somewhere.

Q5.6: How can I uninstall all of Fink?

A: Almost all files installed by Fink are in /sw (or wherever you
chose to install it). Thus in order to get rid of Fink, enter this

sudo rm -rf /sw

The only exception to this rule is XFree86 or X.org. If you installed
an X server through Fink (i.e., you installed the xfree86,
xfree86-rootless, or xorg packages, instead of using
system-xfree86) and want to remove it, you will need
additionally to enter this:

sudo rm -rf /usr/X11R6 /etc/X11 /Applications/XDarwin.app

If you aren’t planning to reinstall Fink you also will want to
remove the “source /sw/bin/init.csh” line you added to
your .cshrc file or the “source
” line you added to your
.bashrc file, whichever is appropriate to your
setup, using a text editor.

Q5.7: The package database at the website lists package xxx, but apt-get
and dselect know nothing about it. Who’s lying?

A: Both are correct. The package database knows
about every package, including those that are still in the unstable
section. The dselect and apt-get tools on
the other hand only know about the packages available as precompiled
binary packages. Many packages are not available in precompiled form
through these tools for a variety of reasons. A package must be in the
“stable” section of the latest point release to be considered, and it
must pass additional checks for policy compliance as well as licensing
and patent restrictions.

If you want to install a package that is not available via
dselect / apt-get, you have to compile it
from source using fink install packagename
Make sure you have the Developer Tools installed before you try this.
(If there is no installer for the Developer Tools in your
/Applications folder, you can get them from the Apple Developer Connection
after free registration.) See also the question about unstable

Q5.8: There’s this package in unstable that I want to install, but the
fink command just says ‘no package found’. How can I install it?

A: First make sure you understand what ‘unstable’ means. Packages in
the unstable tree are not in stable for any number of reasons. It
could be because there are known issues, validation errors, or just
not enough people giving feedback that the package works for them.
For that reason, Fink doesn’t search the unstable tree by

If you do enable unstable, please remember to e-mail the
maintainer if something works (or even if it doesn’t). Feedback from
users like you is what we use to determine if something is ready for
stable! To find out the maintainer of a package, run fink info

For fink-0.26 and later: If you run
fink configure one of the questions will ask whether you
want to turn the unstable trees on.

To configure Fink to use unstable
when you have an earlier version of the fink tool than
0.26, edit
/sw/etc/fink.conf, and add unstable/main
and unstable/crypto to the Trees: line.

If you use Fink Commander, then there is a Preference to use unstable

None of these options actually download the unstable tree’s package
descriptions.You’ll need to turn on rsync or
cvs updating to do this, which is not set up by default on a new
Fink installation. The following command sequence will set you up on
a new Fink installation:

fink selfupdate

followed by

fink selfupdate-rsync


fink selfupdate-cvs

and then

fink index -f
fink scanpackages

Note: There are Fink Commander analogs for everything except
fink index -f. You will have to use the command line for that.

If you’re already set up with rsync or cvs
updating, then the following
command sequence (or the Fink Commander analogs) will suffice:

fink selfupdate
fink index
fink scanpackages

If you’re not sure what your update method is, check
fink --version in at a command line
and see if that mentions cvs or rsync.

If you don’t want to install any more from unstable than
your specific package(s) and its (their) dependencies, (and any base packages
that got updated) don’t use the
update-all command until you turn the unstable tree
back off.

Q5.9: Do I really need to enable all of unstable just to install
one unstable package that I want?

A: No, but it is highly recommended you do. Mixing and matching can
cause unforeseen issues that make it difficult to debug problems when
they do arise.

That said, if you only want one or two specific packages, and nothing
else from unstable, then you need to switch over to CVS updating (i.e.
use fink selfupdate-cvs), because rsync only updates the
trees that are active in your fink.conf. Edit
/sw/etc/fink.conf and add local/main
to the Trees: line, if not present. Then you’ll need to
run fink selfupdate to download the package description
files. Now copy the relevant .info files (and their
associated .patch files, if there are any) from
/sw/fink/dists/unstable/main/finkinfo (or
/sw/fink/dists/unstable/crypto/finkinfo) to
/sw/fink/dists/local/main/finkinfo. However, note
that your package may depend on other packages (or particular
versions) which are also only in unstable. You will have to move their
.info and .patch files as well. After you
move all of the files, make sure to run fink index, so
that Fink’s record of available packages is updated. Once you’re done
you can switch back to rsync (fink selfupdate-rsync) if
you want.

Q5.10: I’m tired of typing my password into sudo again and again. Is there
a way around this?

A: If you’re not paranoid, you can configure sudo to not ask you for a
password. To do this, run visudo as root and add a line like this:


Replace username with your actual username, of course.
This line allows you to run any command via sudo without typing your

Q5.11: When I try to run init.csh or init.sh, I get a “Permission denied”
error. What am I doing wrong?

A: init.csh and init.sh are not supposed to be run like normal
commands. These files set environment variables like PATH and MANPATH
in your shell. To have a lasting effect on the shell, it must be
processed with the source command for csh/tcsh, or with
the . command for bash/zsh, like this:

for csh/tcsh:

source /sw/bin/init.csh

for bash/zsh:

. /sw/bin/init.sh

Q5.12: Help! I used the “[A]ccess” menu entry in dselect and now I can’t
download packages any more!

A: You probably pointed apt at a Debian mirror, which of course
doesn’t have the Fink files. Use

fink configure

from a terminal window, go through all of the options to the mirror
selection step, and then pick an apt-get repository mirror
other than the default (which is your current setting). Then go through
the rest of the options so that your change will be saved.

Q5.13: When I try to run fink selfupdate or “fink
selfupdate-cvs”, I get the error “Updating using CVS failed.
Check the error messages above.

A: If the message is

Can't exec "cvs": No such file or directory at 
/sw/lib/perl5/Fink/Services.pm line 216, <STDIN> line 3.
### execution of cvs failed, exit code -1

then you need to install the Developer Tools.

If, on the other hand, the last line is

### execution of su failed, exit code 1

you’ll need to look further back in the output to see the error. If
you see a message that your connection was refused:

(Logging in to anonymous@fink.cvs.sourceforge.net)
CVS password:
cvs [login aborted]: connect to fink.cvs.sourceforge.net:2401 failed: 
Connection refused
### execution of su failed, exit code 1
Failed: Logging into the CVS server for anonymous read-only access failed.

or a message like the following:

cvs [update aborted]: recv() from server fink.cvs.sourceforge.net: 
Connection reset by peer 
### execution of su failed, exit code 1 
Failed: Updating using CVS failed. Check the error messages above.


cvs [update aborted]: End of file received from server


cvs [update aborted]: received broken pipe signal

then it’s likely that the cvs servers are overloaded and you have
to try the update later.

Another possibility is that you have some bad permissions in your
CVS directories, in which case you get “Permission denied”

cvs update: in directory 10.2/stable/main: 
cvs update: cannot open CVS/Entries for reading: No such file or directory
cvs server: Updating 10.2/stable/main 
cvs update: cannot write 10.2/stable/main/.cvsignore: Permission denied
cvs [update aborted]: cannot make directory 10.2/stable/main/finkinfo: 
No such file or directory 
### execution of su failed, exit code 1 Failed: 
Updating using CVS failed. Check the error messages above.

In this case you need to reset your cvs directories. Use the

sudo find /sw/fink -type d -name 'CVS' -exec rm -rf {}\
; fink selfupdate-cvs

If, you don’t see either of the above messages, then this almost
always means you’ve modified a file in your /sw/fink/dists tree and
now the maintainer has changed it. Look further back in the
selfupdate-cvs output for lines that start with “C”, like so:

C 10.2/unstable/main/finkinfo/libs/db31-3.1.17-6.info 
... (other info and patch files) ... 
### execution of su failed, exit code 1 
Failed: Updating using CVS failed. Check the error messages above.

The “C” means CVS had a conflict in trying to update the latest
version. The fix is to delete any files that show up as starting with “C” in
the output of selfupdate-cvs, and try again:

sudo rm /sw/fink/10.2/unstable/main/finkinfo/libs/db31-3.1.17-6.info
fink selfupdate-cvs

If you get errors that mention cvs.sourceforge.net:

cvs [update aborted]: connect to cvs.sourceforge.net(
2401 failed: Operation timed out

this is because of a restructuring of the CVS servers at sourceforge.net in 2006. Fink files are now at fink.cvs.sourceforge.net.

Check your Distribution version, e.g. via

fink --version

If that shows 10.4-transitional, then you need to update to the regular 10.4 distribution. An update script has been created to assist with that.

Q5.14: When I use Fink, my whole machine freezes up/kernel panics/dies.

A: A number of reports in fall, 2002 on the fink-users
mailing list
indicated problems (including kernel panics
and infinite hangs during patching) when using Fink to compile
packages while anti-virus software is installed. You may need to
switch off any anti-virus software before using Fink.

Q5.15: I’m trying to install a package, but Fink can’t download it. The
download site shows a later version number of the package than what
Fink has. What do I do?

A: The package sources get moved around by the upstream sites when new
versions are released.

The first thing you should do is run fink selfupdate.
It may be that the package maintainer has already fixed this, and you
will get an updated package description with either a more recent
version or a revised download URL.

If this doesn’t work, most sources are available on http://distfiles.master.finkmirrors.net/
(thanks to Rob Braun) , and you can run fink configure to
choose to search “Master” source mirrors so that Fink will
automatically look there.

If this doesn’t work, please let the package maintainer (available
from “fink describe packagename
“) know that the
URL is broken; not all maintainers read the mailing lists all of the

To get a usable source, first try hunting around the remote site in
other directories for the same version of the source that Fink wants
(e.g. in an “old” directory). Keep in mind, though, that some remote
sites like to trash the old versions of their packages. If the
official site doesn’t have it, then try a web search–sometimes there
are unofficial sites that have the tarball you want. Another place to
look is http://us.dl.sourceforge.net/fink/direct_download/source/,
which is where Fink stores sourcefiles from packages that have been
released in binary form. If all of the above fail, then you might
consider posting on the fink-users
mailing list
to ask if anybody has the old source available to
give you.

Once you locate the proper source tarball, download it manually,
and then move the file into your Fink source location (i.e. for a
default Fink install, “sudo mv package-source.tar.gz
“. Then use ‘fink install packagename
‘ as normal.

If you can’t get the source file, then you’ll have to wait for the
maintainer to deal with the problem. They may either post a link to
the old source, or update the .info and .patch files to use the newer

Q5.16: I get “command not found” errors when I run Fink or anything that I
installed with Fink.

A: If this always happens, then you may have inadvertently
modified (or failed to modify) your startup scripts. Run the
/sw/bin/pathsetup.sh script in a terminal
window. This program will attempt to detect your default shell
and add a command to load Fink’s shell initialization script
into your shell’s configuration. You’ll then need to open a
new terminal session so that your environment settings are
loaded. Note: Some older versions fink called this
script pathsetup.command instead
of pathsetup.sh. Alternately, you can run
the pathsetup.app application on the Fink
binary distribution disk image.

On the other hand, if you only have problems in the Apple X11
terminal, the easy solution is to modify the “Terminal” entry in the X11 Application menu via the Applications->Customize Menu… option. Instead of just


change the command field to read

xterm -ls

ls here means login shell, and the result is that your full login setup gets used (just like the OS X Terminal).

These /sw/bin/init.* scripts do much
more than just add /sw/bin to your PATH.
Many packages will not work correctly without these additional

Q5.17: I want to hide /sw in the Finder to keep users from damaging the
Fink setup.

A: You can indeed do this. If you have the Development Tools
installed, then you can run the following command:

sudo /Developer/Tools/SetFile -a V /sw

This makes /sw invisible, just like the standard system folders
(/usr, etc.). If you don’t have the Developer Tools, there are various
third-party applications that let you manipulate file attributes–you
need to set /sw to be invisible.

Q5.18: I can’t install anything, because I get the following error:
“install-info: unrecognized option `–infodir=/sw/share/info'”

A: This usually is due to a problem in your PATH. In a terminal window

printenv PATH

If /sw/sbin doesn’t appear at all, then you
need to set your environment up as per the
in the Users Guide. If /sw/sbin is there, but
there are other directories ahead of it (e.g.
/usr/local/bin), then you will either want to
reorder your PATH so that /sw/sbin is near the
beginning. Or if you really need the other directory to be before
/sw/sbin, and this former directory includes another install-info directory, then you’ll want to temporarily rename this install-info subdirectory when you use Fink.

Q5.19: I can’t install or remove anything, because of a problem with a
“files list file”.

A: Typically these errors take the form:

files list file for package packagename contains empty filename


files list file for package packagename is missing final newline

This can be fixed, with a little work. If you have the .deb file
for the offending package currently available on your system, then
check its integrity by running

dpkg --contents full-path-to-debfile


dpkg --contents /sw/fink/debs/libgnomeui2-dev_2.0.6-2_darwin-powerpc.deb

If you get back a listing of directories and files, then your .deb
is OK. If the output is something other than directories and files, or
if you don’t have the .deb file, you can still proceed because the
error doesn’t interfere with builds.

If you have been installing from the binary distribution or you
know for sure that the version in the binary distribution is the same
as what you have installed (e.g. by checking the
), then you can get a .deb file by running sudo
apt-get install --reinstall --download-only packagename
. Otherwise you can build one yourself by running fink
rebuild packagename
, but it won’t install yet.

Once you have a valid .deb file, then you can reconstitute the
file. First become root by using sudo -s (enter your
administrative user password if necessary), and then use the following

dpkg -c full-path-to-debfile | awk '{if ($6 == "./"){ print "/."; } \
else if (substr($6, length($6), 1) == "/")\
{print substr($6, 2, length($6) - 2); } \
else { print substr($6, 2, length($6) - 1);}}'\ 
> /sw/var/lib/dpkg/info/packagename.list


dpkg -c /sw/fink/debs/libgnomeui2-dev_2.0.6-2_darwin-powerpc.deb | awk \
'{if ($6 == "./") { print "/."; } \
else if (substr($6, length($6), 1) == "/") \
{print substr($6, 2, length($6) - 2); } \
else { print substr($6, 2, length($6) - 1);}}' \ 
> /sw/var/lib/dpkg/info/libgnomeui2-dev.list

What this does is to extract the contents of the .deb file, remove
everything but the filenames, and write these to the .list file.

Q5.20: I get a bunch of garbage when I select packages in
dselect. How can I use it?

A: There are issues between dselect and
Terminal.app. A workaround is to enter the
following command

tcsh users:

setenv TERM xterm-color

bash users:

export TERM=xterm-color

before you run dselect. You may want to put
this in your startup file (e.g. .cshrc |
.profile) so that it gets run all of the time.

Q5.21: I can’t seem to update Fink’s version.

A: If neither running fink selfupdate nor sudo apt-get update ; sudo apt-get dist-upgrade updates you to a newer Fink release, then you may need to download a newer version of the fink package manually. The relevant commands are:

  • 10.3.x: (0.7.1 distribution)
    curl -O http://us.dl.sf.net/fink/direct_download/dists/fink-0.7.1-updates/main/binary-darwin-powerpc/base/fink_0.22.4-1_darwin-powerpc.deb
    sudo dpkg -i fink_0.22.4-1_darwin-powerpc.deb
    rm fink_0.22.4-1_darwin-powerpc.deb
    fink selfupdate
  • 10.2.x: (0.6.3 distribution)
    curl -O http://us.dl.sf.net/fink/direct_download/dists/fink-0.6.3/release/main/binary-darwin-powerpc/base/fink_0.18.3-1_darwin-powerpc.deb
    sudo dpkg -i fink_0.18.3-1_darwin-powerpc.deb
    rm fink_0.18.3-1_darwin-powerpc.deb
    fink selfupdate

Q5.22: Can I put Fink in a volume or directory with a space in its

A: We recommend against putting your Fink directory tree inside a
directory with spaces in its name. It’s just not worth the hassle.

Q5.23: When I try to do a binary update, there are many messages with
“File not found” or “Couldn’t stat package source list file”.

A: If you see something like the following:

Err file: local/main Packages 
File not found 
Ign file: local/main Release 
Err file: stable/main Packages 
File not found 
Ign file: stable/main Release 
Err file: stable/crypto Packages 
File not found 
Ign file: stable/crypto Release 
Failed to fetch file:/sw/fink/dists/local/main/binary-darwin-powerpc/Packages
File not found 
Failed to fetch file:/sw/fink/dists/stable/main/binary-darwin-powerpc/Packages
File not found
Failed to fetch file:/sw/fink/dists/stable/crypto/binary-darwin-powerpc/Packages
File not found 
Reading Package Lists... Done 
Building Dependency Tree...Done 
E: Some index files failed to download, 
they have been ignored, or old ones used instead. 
update available list script returned error exit status 1.

then all you need to do is run fink scanpackages. This
generates the files that aren’t being found.

If you get an error of the following form:

W: Couldn't stat source package list file: unstable/main Packages
powerpc_Packages) - stat (2 No such file or directory)

then you should run

sudo apt-get update
fink scanpackages

to fix it.

Q5.24: I’ve changed my OS | Developer Tools, but Fink doesn’t recognize
the change.

A: When changing the Fink distribution (of which the source and binary
distros are subsets), Fink needs to be told that this has happened. To
do this, you can run a script that normally gets run when you first
install Fink:


Doing this will point Fink to the correct place.

Q5.25: I get errors with gzip | dpkg-debI
applications from the fileutils package! Help!

A: Errors of the form:

gzip -dc /sw/src/dpkg-1.10.9.tar.gz | /sw/bin/tar -xf - 
### execution of gzip failed, exit code 139


gzip -dc /sw/src/aquaterm-0.3.0a.tar.gz | /sw/bin/tar -xf -
gzip: stdout: Broken pipe 
### execution of gzip failed, exit code 138


dpkg-deb -b root-base-files-1.9.0-1 /sw/fink/dists/unstable/main/binary-darwin-powerpc/base

### execution of dpkg-deb failed, exit code 1
Failed: can't create package base-files_1.9.0-1_darwin-powerpc.deb

or segmentation faults when running utilities from
, e.g. ls or mv, are likely
to be due to a prebinding error in a library, and can be fixed by

sudo /sw/var/lib/fink/prebound/update-package-prebinding.pl -f

Q5.26: When I open a Terminal window, I get a message that “Your
environment seems to be correctly set up for Fink already.”, and it
logs out.

A: What happened is that somehow the OSX Terminal program has been
told to run /sw/bin/pathsetup.command every time you log
in. You can fix this by removing the Preferences file,

If you have other preferences that you want to keep, you can edit
the file with a text editor and remove the reference to

Q5.27: I have Fink installed away from the main partition and I can’t update the fink package from source. There are errors involving chowname.

A: If your error looks like:

This first test is designed to die, so please ignore the error
message on the next line.
# Looks like your test died before it could output anything.
Failed test (./Command/chowname.t at line 27)
#          got: 'root'
#     expected: 'nobody'

then you need to run Get Info on the drive/partition where Fink is installed and unselect the “Ignore ownership” button.

Q5.28: Fink won’t update my packages because it says it can’t find the ‘gnu’ mirror.

A: If you get an error that ends with

Failed: No mirror site list file found for mirror 'gnu'.

then most likely you need to update the fink-mirrors package, e.g. via:

fink install fink-mirrors

Q5.29: I can’t update Fink, because it can’t move /sw/fink out of the way.

A: This error:

Failed: Can't move "/sw/fink" out of the way.

is usually due, in spite of what it says, to permissions errors in one of the temporary directories that get created during a selfupdate. Remove these:

sudo rm -rf /sw/fink.tmp /sw/fink.old

Q5.30: I get a message that says “No fonts found”.

A: If you see the following (so far only seen on OS 10.4):

No fonts found; this probably means that the fontconfig
library is not correctly configured. You may need to
edit the fonts.conf configuration file. More information
about fontconfig can be found in the fontconfig(3) manual
page and on http://fontconfig.org.

then you can fix it by running

sudo fc-cache

Q5.31: I can’t install Fink via the Installer package, because I get “volume doesn’t support symlinks” errors.

A: This message commonly means that you’ve tried to run the Fink installer as user who doesn’t have administrative privileges. Make sure to log in at the login screen as such a user or switch to such a user in the Finder (i.e. fast user switching) before starting the Fink installer.

If you’re having trouble even when using an admin account, then it’s likely a problem with the permissions on your top-level directory. Use Apple’s Disk Utility (from the Utilities sub-folder in your Applications folder), select the hard drive in question, choose the First Aid tab, and press Repair Disk Permissions. If that doesn’t work, then you may need to set your permissions manually via:

sudo chmod 1775 /	  

Q5.32: I can’t update Fink, because package architecture (darwin-i386) does not match system (darwin-powerpc).

6 Compile Problems – General

Q6.1: A configure script complains that it can’t find an “acceptable cc”.
What’s that?

A: Read the docs next time. To compile packages from source, you must
install the Developer Tools, which among other stuff contains the C
compiler, cc.

Q6.2: When I try a “fink selfupdate-cvs” I get this message: “cvs:
Command not found.”

A: You need to install the Developer Tools.

Q6.3: I’m getting an error message involving make

A: if your message is of the form

make: command not found


Can't exec "make": 
No such file or directory at /sw/lib/perl5/Fink/Services.pm line 190.

It means you need to install the Developer Tools.

On the other hand, if your error message looks like

make: illegal option -- C

then you’ve replaced the GNU version of the make
utility installed as part of the Developer Tools with a BSD version of
make. Many packages rely on special features only supported by GNU
make. Make sure that /usr/bin/make is a symlink to
gnumake, not bsdmake. Furthermore, make sure
that /usr/local/bin/ does not contain another copy of

Q6.4: I’m getting a strange usage message from the head command. What’s

A: If you’re seeing this:

Unknown option: 1 Usage: head [-options] <url>...

followed by a list of option descriptions, you have a broken
head executable. This happens when you install the Perl
libwww library on an HFS+ system volume. It tries to create a new
command /usr/bin/HEAD, which overwrites the existing
head command because the file system is case-insensitive.
head is a standard command used in many shell scripts and
Makefiles. You need to get the original head executable
back if you want to use Fink.

The bootstrap script of the source release now checks for this, but
you can still run into it if you use the binary release for first-time
installation or install libwww after you installed Fink.

This problem has also been reported due to the installation of
/sw/bin/HEAD (not by any Fink package). This is
easier to solve: rename /sw/bin/HEAD.

Q6.5: When I try to install a package I get an error message about trying
to overwrite a file that is in another package.

A: This occasionally happens with splitoff packages (i.e. the ones
with -dev, -shlibs, etc.) when a file gets moved from one part of the
splitoff to another (e.g. from foo to
foo-shlibs. What you can do is overwrite the file with
that from the package you are trying to install (since they are
nominally the same):

sudo dpkg -i --force-overwrite filename

where filename is the .deb file corresponding to the
package that you are trying to install.

Q6.6: What does “execution of mv failed, exit code 1” mean when I try to
build a package?

A: If you have StuffIt Pro installed, it could be that you have
“Archive Via Real Name” mode enabled. Check for a StuffIt preference
pane in the System Preferences tool, and disable “ArchiveViaRealName”
if it’s enabled. It contains a buggy reimplementation of a few
important system calls that will cause a number of strange and
transient errors such as this.

Otherwise, an mv error typically means that
another error happened earlier in the build, but the build process
didn’t stop. To track down the offending file(s), search in the output
of the build for the nonexistent file, e.g. if you have something

mv /sw/src/root-foo-0.1.2-3/sw/lib/libbar*.dylib \
mv: cannot stat `/sw/src/root-foo-0.1.2-3/sw/lib/libbar*.dylib': 
No such file or directory 
### execution of mv failed, exit code 1 
Failed: installing foo-0.1.2-3 failed

then you should look for libbar somewhere
further back in the output of your build attempt.

Q6.7: I can’t install a package | update because I get a message that a
“node” already exists.

A: These errors look something like this:

Failed: Internal error: node for system-xfree86 already exists

This problem is that the dependency engine is confused, due to
changes in some of the package info files. To fix it:

  • Remove the offending package by force, e. g.

    sudo dpkg -r --force-all system-xfree86

    for the example given above.

  • Try again to install | upgrade. At some point a “virtual
    dependency” prompt will come up that includes the package you just
    removed. Select it, and it will be reinstalled during your

Q6.8: I’ve heard that libraries and headers installed under /usr/local sometimes
cause build problems for Fink. Is this true?

A: This is a frequent source of problems, because the package
configuration script finds headers and libraries in
/usr/local and decides to use them rather than using those in the Fink tree.
Often, such errors will show up as part of a package’s build diagnostics, for example:

Looking for incorrect headers in 44 dependency files...
	 ./objs/.libs/ftgzip.d uses /usr/local/include/zconf.h
	 ./objs/.libs/ftgzip.d uses /usr/local/include/zlib.h
Please fix build process to get consistent use of fink's headers.

And if you are having problems with a build that aren’t covered by another
FAQ entry, you should also check whether you have libraries in
/usr/local/lib or headers in /usr/local/include.

If you do have headers and/or libraries in /usr/local, then rename
/usr/local to something else, e.g.:

sudo mv /usr/local /usr/local.moved

do your build, and then you can put /usr/local

sudo mv /usr/local.moved /usr/local

Q6.9: When I try to build a package, I get a message that a “table of
contents” is out of date. What do I need to do?

A: The output hints at what to do. The message is usually something

ld: table of contents for archive: 
/sw/lib/libintl.a is out of date; 
rerun ranlib(1) (can't load from it)

What you need to do is run ranlib (as root) on whatever library is
causing the problem. As an example, for the case above, you would

sudo ranlib /sw/lib/libintl.a

Q6.10: Fink Commander hangs when I try to install atlas.

A: This happens because one of the steps in the build of
atlas sends a prompt to the user that Fink Commander
doesn’t display. You’ll have to use fink install atlas

Q6.11: I get messages saying that I’m missing stddef.h | wchar.h | stdlib.h | crt1.o, or that my C compiler cannot create executables.

A: Both of these problems are typically due to the absence of essential headers that are provided by the DevSDK package of
the Developer Tools. Check whether
/Library/Receipts/DevSDK.pkg exists on your
system. If not, then run the Dev Tools Installer again, and install
the DevSDK package using a Custom Install.

The cannot create executables error can also occur when your Developer Tools version is for an earlier OS version.

Q6.12: I can’t update, because Fink is “unable to resolve version conflict
on multiple dependencies”.

A: To get around this, try updating a single package, then try to use
“fink update-all” again. If you still get the message, repeat the

Q6.13: I can’t install anything because I get “dpkg: parse error, in file

A: This means that somehow your dpkg database got damaged, usually
from a crash or some other unrecoverable error. This most often occurs with a buildlock, e.g:

package `fink-buildlock-foo-1.2.3-4':  missing version

(of course, replace foo-1.2.3-4 with the package name you are seeing).

When this happens, you should edit /sw/var/lib/dpkg/status as a superuser.
Then go near the line number which shows up in the error message.
You should see a fink-buildlock-foo-1.2.3-4
package whose Status field is marked

install ok installed

Change that to

purge ok not-installed

Under other circumstances, there may be garbage in the file. You can fix this situation by
copying the previous version of the database, like so:

sudo cp /sw/var/lib/dpkg/status-old /sw/var/lib/dpkg/status

You may need to re-install the last couple of packages you
installed before the problem started occurring.

Q6.14: I get errors involving freetype.

A: There are several varieties of such errors. If you get the following:

/usr/bin/ld: can't locate file for: -lfreetype

check whether you have an extraneous freetype-config excutable by running

where freetype-config

if you’re using tcsh, or

type -a freetype-config

if you’re using bash. The Mono Framework has been known to install a /usr/bin/freetype-config that is a symbolic link to a file in that framework.

If your error looks

error: parse error before '*' token 
error: parse error before '*' token
error: parse error before '*' token 
error: parse error before "pango_ft2_font_get_face"
warning: data definition has no type or storage class 
make[2]: *** [rsvg-gz.lo] Error 1
make[1]: *** [all-recursive] Error 1 
make: *** [all-recursive-am] Error 2 
### execution of make failed, exit code 2 
Failed: compiling librsvg2-2.4.0-3 failed


In file included from vteft2.c:32: 
vteglyph.h:64: error:
parse error before "FT_Library" 
vteglyph.h:64: warning: 
no semicolon at end of struct or union vteft2.c: 
In function `_vte_ft2_get_text_width': 
vteft2.c:236: error: 
dereferencing pointer to incomplete type 
vteft2.c: In function `_vte_ft2_get_text_height':
vteft2.c:244: error: 
dereferencing pointer to incomplete type
vteft2.c: In function `_vte_ft2_get_text_ascent': 
vteft2.c:252: error:
dereferencing pointer to incomplete type 
vteft2.c: In function `_vte_ft2_draw_text': 
vteft2.c:294: error: 
dereferencing pointer to incomplete type 
vteft2.c:295: error: 
dereferencing pointer to incomplete type
make[2]: *** [vteft2.lo] Error 1 
make[1]: *** [all-recursive] Error 1 
make: *** [all] Error 2 
### execution of make failed, exit code 2
Failed: compiling vte-0.11.10-3 failed


checking for freetype-config.../usr/X11R6/bin/freetype-config 
checking For sufficiently new FreeType (at least 2.0.1)... no 
configure: error: pangoxft 
Pango backend found but did not find freetype libraries 
make: *** No targets specified and no makefile found. Stop. 
### execution of LD_TWOLEVEL_NAMESPACE=1 failed, exit code 2 
Failed: compiling gtk+2-2.2.4-2 failed

the problem is due to confusion between headers from the
freetype | freetype-hinting package and the
freetype2 headers that are included with X11 |

fink remove freetype freetype-hinting

will remove whichever variant you have installed. On the other
hand, if your error looks like:

ld: Undefined symbols: _FT_Access_Frame

this is typically due to a residual file from a prior installation
of X11. Reinstall the X11 SDK.

Q6.15: I get build errors involving `Dl_info’.

A: If you have an error that looks like this

unix_dl.c: In function `rep_open_dl_library':
unix_dl.c:328: warning: assignment discards qualifiers from pointer target type 
unix_dl.c: In function `rep_find_c_symbol': 
unix_dl.c:466: error: `Dl_info' undeclared (first use in this function)
unix_dl.c:466: error: (Each undeclared identifier is reported only once 
unix_dl.c:466: error: for each function it appears in.)
unix_dl.c:466: error: parse error before "info" 
unix_dl.c:467: error: `info' undeclared (first use in this function) 
make[1]: *** [unix_dl.lo] Error 1

then most likely you have a header file,
/usr/local/include/dlfcn.h, that is incompatible with
Panther. Move it out of the way.

This usually is installed by Open Office, and you should replace
this header file, as well as the library
/usr/local/lib/libdl.dylib, with symbolic links to
Panther’s builtin files

sudo ln -s /usr/include/dlfcn.h /usr/local/include/dlfcn.h
sudo ln -s /usr/lib/libdl.dylib /usr/local/lib/libdl.dylib

Q6.16: Fink says I’m missing gcc2 or gcc3.1 but I can’t seem to
install it.

A: This is because gcc2 and gcc3.1 are virtual packages to
indicate the presence of gcc-2.95 and gcc-3.1, respectively, on your system. Install the gcc2.95 and/or the gcc3.1
package from the XCode Tools (earlier OS versions have gcc-2.95 and gcc-3.1 as
part of their main Developer Tools installation).

Note: Installing gcc2.95 and/or gcc3.1 will not interfere with your gcc3.3 compiler–they can all coexist.

Q6.17: Fink says Failed: Can't resolve dependency "system-java-dev", but there’s no such package.

A: That’s because it’s a virtual package. At the time of this writing (Jan. 2011), this issue
commonly shows up on Leopard and Snow Leopard due to changes in Apple’s Java packaging.

You need to download the Java Developer Package from Apple.

Then make sure that your package manager version is 0.29.15 or later, e.g. via

fink -V

If your fink version is older, use

fink selfupdate

If your Distribution version shows point, switch to rsync
or cvs updating via

fink selfupdate-rsync


fink selfupdate-cvs

If your fink version is 0.29.99.cvs, then you’re using a CVS
checkout of fink, which doesn’t update itself like release versions do,
and which therefore may be well behind the current releases. We recommend that you use

fink selfupdate ; fink dumpinfo -fallversions fink

which will return something like:

$ fink dumpinfo -fallversions fink
Scanning package description files..........
Information about 10146 packages read in 2 seconds.
 bi	0.29.99.cvs-20110408.1821

Then choose the latest release version-revision (one without a .cvs, e.g. 0.29.21-51 above), and use

fink install fink-version-revision

e.g. use

fink install fink-0.29.21-51

for the example above, to install fink-0.29.51.

To get rid of any memory of CVS checkouts of fink use:

sudo rm /sw/fink/10.4/local/injected/binary-darwin-<architecture>/*;
sudo rm /sw/fink/10.4/local/injected/finkinfo/*;
fink index -f
fink scanpackages
sudo apt-get update
fink cleanup

replacing <architecture> with your architecture, i.e. powerpc,
i386, or x86_64.

Q6.18: When I try to install anything, I get dpkg (subprocess): failed to exec dpkg-split to see if it’s part of a multiparter: No such file or directory. How do I fix this?

Q6.19: I get the following message: configure: error: XML::Parser perl module is required for intltool. What do I do about it?

A: If you’re using the unstable tree, make sure you have intltool-0.34.1or later installed.

Otherwise, you need to make sure that you have the right variant of the xml-parser-pm package to match the Perl version for your system. For example, if you’re on Panther you should have xml-parser-pm581 rather than xml-parser-pm560 (you may also have the xml-parser-pm placeholder), since you have Perl-5.8.1 rather than Perl-5.6.0. If you’re on Jaguar, and are using the default system Perl version, you’ll have the pm560 variant, and if you’ve installed Perl 5.8.0 you may have the pm580 variant.

Q6.20: I’m trying to download a package, but Fink goes to some weird site with distfiles in its name, and the file isn’t there.

A: What’s happened here is that Fink is trying to use one of it’s so called Master mirrors. These were set up to makes sure that sources for Fink packages are available even when the upstream site has moved them around. Typically these errors occur when a new upstream version of a package is released, but hasn’t made it to the Master mirrors yet.

To remedy this, run fink configure and set the search order to use Master mirrors last.

Q6.21: I want Fink to use different options in building a package.

A: The first thing to do is to contact the package maintainer to request a variant. It may be relatively easy to do it. If you don’t hear from the maintainer or see the new packages, or want to try a different option yourself, check out the Packaging Tutorial and Packaging Manual.

Note: Fink is deliberately set up such that all official binaries are identical regardless of what machine they are built on, so things like G5 optimization won’t happen with an official package. If you want them, you’ll have to do it yourself.

Q6.22: Whenever I try to build from source, Fink keeps waffling between alternate versions of the same library.

A: Often, in a complicated build tree, you may find that some of the packages
depend on a particular version of a library, and other depend on a different one
(e.g. db47 vs. db44). Consequently, Fink may try to
switch to whichever one isn’t currently installed in order to satisfy the
build dependency for the current package that you’re trying to update.

Unfortunately, due to limitations in the build-dependency engine, you
may wind up with the dreaded

Fink::SysState: Could not resolve inconsistent dependencies

message when trying a sufficiently complicated update-all. This generally gives you a
command to try to resolve the issue:

fink scanpackages
sudo apt-get update
sudo apt-get install foo=1.23-4	

but this may not work for sufficiently complicated updates. You might need
to update packages one-by-one, at least for a while.

Q6.23: I get errors involving MACOSX_DEPLOYMENT_TARGET when I try to build a Python module.

A: For errors that look like the following:

running build
running build_ext
Traceback (most recent call last):
  File "setup_socket_ssl.py", line 21, in ?
    depends = ['socketmodule.h'] )
  File "/sw/src/root-python24-2.4.1-1/sw/lib/python2.4/distutils/core.py", line 166, in setup
SystemExit: error: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.4" but "10.3" during configure
### execution of /sw/bin/python2.4 failed, exit code 1

the problem occurs because the python2* packages write the current MACOSX_DEPLOYMENT_TARGET to a configuration file when they’re built and the python build utilities use this value when compiling modules. This means that if you have, for example, a python24 package on 10.4 that was built on 10.3, either by upgrading 10.3 => 10.4, or via the 10.4-transitional binary distribution, in which python24 wasn’t rebuilt, there will be a mismatch between what python thinks MACOSX_DEPLOYMENT_TARGET should be (10.3) and what it actually is (10.4).

The fix is to rebuild the offending python package, e.g. fink rebuild python24 for the case above.

For runtime errors that give the same type of error message as above, rebuild the module after rebuilding the appropriate python2* package.

Q6.24: I get unrecognized option `-dynamic’ errors from libtool.

A: This error:

 libtool: unrecognized option `-dynamic'

typically means that you’ve replaced Apple’s /usr/bin/libtool with a GNU libtool. Unfortunately, the two libtools do not do the same thing.

The only way to solve this is to get a working Apple libtool from somewhere. It is installed as part of the DeveloperTools.pkg package of the XCode Tools, and you can reinstall that whole package if you first clear out its receipt in /Library/Receipts (drag it to the Trash for OS 10.4 and later, or use sudo rm -rf /Library/Receipts/DeveloperTools.pkg for 10.3).

7 Compile Problems – Specific Packages

Q7.1: A package fails to build with errors involving

A: This can happen if your login script (e.g. ~/.cshrc)
does something that writes to the terminal, e.g “echo
” or xttitle. To get rid of the problem, the
easy solution is to comment out the offending lines.

If you want to keep the echo, then you can do something like the

if ( $?prompt) then 
	echo Hello 

Q7.2: I can’t install gtk+2 on OS 10.5

A: Typically this involves missing libraries, such as: /usr/X11/lib/libXrandr.2.0.0.dylib or
/usr/X11/lib/libXdamage.1.1.0.dylib (or other versions of libraries in

The current wisdom on the best
fix for such an issue is to install Xcode 3.1.3 or later.

Q7.3: I get errors involving _Perl_Gthr_key_ptr when installing an xml-sax-pm package

A: If you get an error that looks similar to:

update-perl5123-sax-parsers: adding Perl SAX parser
module info file of XML::SAX::Expat...
dyld: lazy symbol binding failed: Symbol not found:
  Referenced from: /sw/lib/perl5/5.12.3/darwin-
  Expected in: flat namespace

this is usually due to a build picking up a different perl5.12 executable
than the system’s (or perl5.10.0, or perl5.8.8, depending on your OS version).

You can verify this by running:

type -a perl5.12

if you’re using the bash shell, or

where perl5.12

if you’re using tcsh (and replace perl5.12 appropriately
for your situation).

To work around this issue, temporarily rename the non-system perl5.12 while
you are building with Fink.

Q7.4: I can’t build a Fink gcc package due to “conflicting types for ‘pointer_t'”

A: Such errors typically look like:

error: conflicting types for 'pointer_t'
note: previous declaration of 'pointer_t' was here
make[3]: *** [fortran/module.o] Error 1

This is associated with someone having unnecessarily added a
symlink. Get rid of that.

On OS X, #include <stdlib.h> should normally be used
in place of #include <malloc.h>.

Q7.5: I’m having issues with a package that isn’t listed here.

8 Package Usage Problems – General

Q8.1: I’m getting lots of messages like “locale not supported by C
library”. Is that bad?

Q8.2: There are suddenly a number of strange users on my system, with
names like “mysql”, “pgsql”, and “games”. Where did they come

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
    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 (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 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.

Q8.3: How do I compile something myself using Fink-installed

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 ACLOCAL_FLAGS="-I /sw/share/aclocal"
export PKG_CONFIG_PATH="/sw/lib/pkgconfig"
export PATH=/sw/var/lib/fink/path-prefix-10.6:$PATH


setenv CFLAGS -I/sw/include 
setenv LDFLAGS -L/sw/lib 
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

(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.
.cshrc | .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

source /sw/bin/init.sh

after the first line.

Q8.5: I’m bewildered by the X11 options: Apple X11, XFree86, etc. What
should I install?

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 tcsh, or

export DISPLAY=:0

if you’re running bash.

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 system-* “virtual
packages” that are sometimes present, but that I can’t
seem to install or remove myself?

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):

9 Package Usage Problems – Specific Packages

Q9.1: I get no sound from XMMS

A: Make sure you have the “eSound Output Plugin” selected in the XMMS
preferences. For some strange reason, it selects the disk writer
plugin as the default.

If you still get no sound output or XMMS complains that it can’t
find your sound card try this:

  • Make sure you haven’t muted sound output in Mac OS X.
  • Run esdcat /usr/libexec/config.guess (or any other
    file of a decent size). If you hear a short noise, eSound works and
    XMMS should work too if it’s configured correctly. If you don’t hear
    anything, esd isn’t working for some reason. You can try to start it
    up manually with esd & and watch the messages.
  • If it still doesn’t work, check the permissions on
    /tmp/.esd and /tmp/.esd/socket. Those
    should have your normal user account as the owner. If they aren’t
    owned by you, kill esd if it’s running, remove the directory as root
    (sudo rm -rf /tmp/.esd), then start esd again (as a
    normal user, not as root).

Note that esd is designed to be run by a normal user, not by root.
It usually communicates via the file system socket
/tmp/.esd/socket. You only need the -tcp and
-port switches if you want to run esd clients on another
machine over the network.

There have also been reports of XMMS crashing or freezing on 10.1.
We don’t have an analysis or a fix yet.

Q9.2: If I am editing a file in nedit, when I open another file its
window pops up but is unresponsive.

A: This is a known problem that occurs with recent versions of
nedit and lesstif on all
platforms. The workaround is to open a new window with File–>New,
then open the next file you want to work on.

This is now fixed in nedit-5.3-6, which
depends on openmotif3 rather than

Q9.3: Help! When I start XDarwin, it immediately quits!

Q9.4: When I try to start XDarwin I get the message “xinit: No such file
or directory (errno 2): no server “/usr/X11R6/bin/X” in PATH”.

A: First, make sure you are sourcing init.sh in your X startup

In Jaguar, sometimes all of the xfree86 packages get
built, but only xfree86-base and
xfree86-base-shlibs are installed. Check whether you have
xfree86-rootless and xfree86-rootless-shlibs
installed. If not, then fink install xfree86-rootless
should do the trick.

If you do have it installed, then try fink rebuild
. If that doesn’t work, verify that you have
/usr/bin/X11R6 in your PATH.

Q9.5: I want the delete key in Apple’s X11.app to behave like that in

A: Some users have reported that the behavior of the
delete key is different between XDarwin and Apple X11.
This can be rectified by adding lines to the appropriate X startup


keycode 59 = Delete


xterm*.deleteIsDEL: true 
xterm*.backarrowKey: false
xterm*.ttyModes: erase ^?


xrdb -load $HOME/.Xresources 
xmodmap $HOME/.Xmodmap

Q9.6: I’m having problems with X11 and Fink.

A: There are two possibilities to consider.

Q9.7: I’m still having problems with X11 and Fink.

A: If the hints in the Fink tries to install XFree86 or X.org entry don’t help, or aren’t applicable to your situation, you may need to flush out your X11 installation and remove any old placeholders and partially/fully installed X11-related packages:

On Leopard, use

sudo pkgutil --forget com.apple.pkg.X11User
sudo pkgutil --forget com.apple.pkg.X11SDKLeo

Then, on either 10.4 or 10.5, run

sudo dpkg -r --force-all system-xfree86 system-xfree86-42 system-xfree86-43 \
xorg xorg-shlibs xfree86 xfree86-shlibs \
xfree86-base xfree86-base-shlibs xfree86-rootless xfree86-rootless-shlibs \
xfree86-base-threaded xfree86-base-threaded-shlibs \
xfree86-rootless-threaded xfree86-rootless-threaded-shlibs
rm -rf /Library/Receipts/X11SDK.pkg /Library/Receipts/X11User.pkg \
fink selfupdate; fink index

(the first line may give you warnings about trying to remove
nonexistent packages). Then, reinstall Apple’s X11 (and the X11SDK, if
needed), or,
if you’re on 10.4, an alternative X11 implementation, like XFree86 or X.org.

If you are still having problems then you can run

fink-virtual-pkgs --debug

to get information about what’s missing.

If you are running an earlier version of fink, then
there is a Perl script (courtesy of Martin Costabel) that you can
download and run to get the same information.

Q9.8: After updating to Tiger (OS 10.4), whenever I use a GTK app, I get errors involving _EVP_idea_cbc.

A: This is caused by an apparent bug in Tiger’s dynamic linker (current as of 10.4.1), but looks to be fixed in 10.4.3, and Fink has had a workaround in the guise of base-files-1.9.7-1 or later.

If you haven’t updated Tiger and/or base-files yet, you can work around this issue by prefixing the name of the software you want to run as follows:


E.g., if you want to use gnucash, you’d use


This method works for applications that are launched via the Application Menu in Apple’s X11 as well as a terminal.

You may find it preferable to set this globally (e.g. in your startup script, and/or in your .xinitrc, which you may need to do to run GNOME). Put


in your .xinitrc (regardless of your login shell) or your .profile (or other startup script) for bash users and:


is the corresponding command to use in e.g. your .cshrc file for tcsh users.

Note: this will automatically be done if you install a recent enough base-files.

Q9.9: I can’t get the help to work for any GNOME application.

A: You need to install the yelp package. This package was not placed within the GNOME bundle because it uses cryptography, and it was decided not to place all of GNOME in the crypto tree just to use the help system.

Copyright Notice

Copyright (c) 2001 Christoph Pfisterer,
Copyright (c) 2001-2013 The Fink Project.
You may distribute this document in print for private purposes,
provided the document and this copyright notice remain complete and
unmodified. Any commercial reproduction and any online publication
requires the explicit consent of the author.

Generated from $Fink: faq.en.xml,v 1.122 2012/11/11 15:20:14 gecko2 Exp $

One response to “FAQ

  1. Hi, i think that i saw you visited my website so i came to “return the favor”.
    I am trying to find things to improve my
    web site!I suppose its ok to use a few of your ideas!!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s