Available Languages: | English | Español | Français | 日本語 (Nihongo) | Português | Русский (Russkiy) | 中文 (简) (Simplified Chinese) |

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.

Contents

1 General Questions

Q1.1: What is Fink?

A: Fink wants to bring more Unix software to Mac OS X, which results in two main goals:

Goal number one is porting software to Mac OS X. That means we take commodity Open Source Unix software and fix whatever is necessary so that it will compile and run on Mac OS X. Sometimes that's easy, but it can also be very hard or even impossible for some packages. We're trying to provide tools and documentation to make this easier.

Goal number two is making the results available to casual users. For this, we build a distribution using package management tools ported over from Linux, namely dpkg and apt-get, written by and for the Debian GNU/Linux project. The binary distribution uses the .deb package format. For building packages from source, we have our own tool, named fink, which creates those .deb package files.

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:

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:

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?

A: 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?

A: Darwinports and Fink are complementary projects. There is some overlap between the two projects, and several people contribute to both the Fink and DarwinPorts projects. For example, Benjamin Reed is doing the KDE packages for both. Darwinports and Fink are free to make use of each other's patches, and we have discussed collaboration on a new dependency engine.

DarwinPorts started from scratch to try a different approach to a packaging system. Read the statement on the DarwinPorts homepage for details.

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.

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)"'

A: Apply the fix from the prior entry.

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?

A: Since Fink 0.2.3, there is the list command. It produces a list of all packages known to your Fink installation. Example:

fink list

If you're using the binary distribution, dselect gives you a nice browsable listing of available packages. Note that you must run it as root if you want to select and install packages from within dselect.

There's also the package database at the website.

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.

ftp://proxy.yoursite.somewhere

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.

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

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), except for a few exceptions. Thus, in order to get rid of Fink, enter this command:

fink remove --recursive daemonic xinitrc
sudo rm -rf /sw
		

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 /sw/bin/init.sh" line you added to your .bashrc file, whichever is appropriate to your setup, using a text editor. If you had the xinitrc package installed, then you will want to restore the original /usr/X11/lib/X11/xinit/xinitrc, which has been backed up as /usr/X11/lib/X11/xinit/xinitrc.YYYYMMDDhhmm, i.e. the extension has a year, month, date, hour, and minute). If you have more than one of these, the original one normally does not mention sys-xinitrc-fink. Once you've found the right one, you can use

sudo mv /usr/X11/lib/X11/xinit/xinitrc.YYYYMMDDhhmm  \
	/usr/X11/lib/X11/xinit/xinitrc

replacing YYMMDDhhmm with the actual extension on your system.

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

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

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

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

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

or

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:

username ALL =(ALL) NOPASSWD: ALL

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

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.

or

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

or

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" messages:

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

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(66.35.250.207):
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. Help!

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

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 /sw/src/". 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 version.

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

xterm

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

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

printenv PATH

If /sw/sbin doesn't appear at all, then you need to set your environment up as per the instructions 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

or

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
        

e.g.

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 package database), 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 command:

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

e.g.

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:

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

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
(/sw/var/lib/apt/lists/_sw_fink_dists_unstable_main_binary-darwin-
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:

/sw/lib/fink/postinstall.pl

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

or

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

or

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 fileutils, e.g. ls or mv, are likely to be due to a prebinding error in a library, and can be fixed by running

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, ~/Library/Preferences/com.apple.Terminal.plist.

If you have other preferences that you want to keep, you can edit the file with a text editor and remove the reference to /sw/bin/pathsetup.command.

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.
./00compile............................ok
./Base/initialize......................ok
./Base/param...........................ok
./Base/param_boolean...................ok
./Command/cat..........................ok
./Command/chowname.....................#     
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).

A: This error occurs if you use a PowerPC installer package on an Intel machine. You'll need to flush your Fink installation, e.g.:

sudo rm -rf /sw

and then download the disk image for Intel machines from the downloads page.

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

or

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

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

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

mv /sw/src/root-foo-0.1.2-3/sw/lib/libbar*.dylib \
/sw/src/root-foo-shlibs-0.1.2-3/sw/lib/ 
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:

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

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

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

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

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

Q6.13: I can't install anything because I get "dpkg: parse error, in file `/sw/var/lib/dpkg/status'"!

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

/sw/include/pango-1.0/pango/pangoft2.h:52: 
error: parse error before '*' token 
/sw/include/pango-1.0/pango/pangoft2.h:57:
error: parse error before '*' token
/sw/include/pango-1.0/pango/pangoft2.h:61: 
error: parse error before '*' token 
/sw/include/pango-1.0/pango/pangoft2.h:86: 
error: parse error before "pango_ft2_font_get_face"
/sw/include/pango-1.0/pango/pangoft2.h:86: 
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

or

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

or

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

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

or

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.
allversions:
   	0.29.21-51
 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?

A: Generally, this can be fixed by setting your environment up correctly, cf. this FAQ entry.

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

A: This can happen if your login script (e.g. ~/.cshrc) does something that writes to the terminal, e.g "echo Hello" 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 following:

if ( $?prompt) then 
	echo Hello 
endif

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 /usr/X11/lib/).

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:
_Perl_Gthr_key_ptr
  Referenced from: /sw/lib/perl5/5.12.3/darwin-
  thread-multi-2level/auto/XML/Parser/Expat/Expat.bundle
  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:

../../gcc-4.6.3/gcc/fortran/module.c:110:1:
error: conflicting types for 'pointer_t'
/usr/include/mach/vm_types.h:40:26:
note: previous declaration of 'pointer_t' was here
make[3]: *** [fortran/module.o] Error 1
      

This is associated with someone having unnecessarily added a /usr/include/malloc.h->/usr/include/malloc/malloc.h 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.

A: Since package problems tend to be transient, we've decided to put them up on the Fink wiki. Check the Package issues page.

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:

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:

-bash-

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

-tcsh-

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. .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 add:

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?

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:

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

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 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?

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

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

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

A: Don't Panic. The Running X11 document now has an extensive troubleshooting section for this common problem.

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 ~/.xinitrc.

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 xfree86-rootless. 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 XDarwin.

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

.Xmodmap:

keycode 59 = Delete

.Xresources:

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

.xinitrc

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 \
 /Library/Receipts/X11Update*.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:

env DYLD_FALLBACK_LIBRARY_PATH=: 

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

env DYLD_FALLBACK_LIBRARY_PATH=: gnucash

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

export DYLD_FALLBACK_LIBRARY_PATH=:

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

setenv DYLD_FALLBACK_LIBRARY_PATH :

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.123 2013/06/23 22:49:28 alexkhansen Exp $