Tag Archives: selfupdate

SelfUpdateTrees and Distribution in fink.conf

There are two entries in /sw/etc/fink.conf whose values seem to refer to a Mac OS X version.

The Distribution entry must contain the OS X version of the machine, so if you installed Fink on Snow Leopard, it should be 10.6.

The SelfUpdateTrees entry is different. For Mac OS X versions prior to 10.5 Fink used to organise package descriptions according to the OS X version, so there used to be different trees: 10.2, 10.3, 10.4. Whenever a user ran

fink selfupdate

Fink would download the package descriptions of the tree corresponding to the specific OS X version where it was installed.

With the release of Mac OS X 10.5, Fink decided not to have different package description trees any longer and reuse the 10.4 tree instead. Therefore SelfUpdateTrees: 10.4 is the correct entry in fink.conf on Mac OS X 10.4, 10.5, and 10.6 because the 10.4 package description tree is shared amongst these OS X versions. This might change in the future.

Note that in general users shouldn’t change the Distribution and SelfUpdateTrees entries. These are created when Fink is installed and updated, if necessary, when Fink is updated.


Selfupdate methods: point, rsync, cvs

In Fink parlance, a distribution is a set of available packages which depends, amongst other things, on the trees defined in /sw/etc/fink.conf (local, stable, unstable) and the selfupdate method (point, rsync, cvs).

Fink defaults to the point selfupdate method in a brand new installation. The point distribution is the set of packages available when Fink last released a binary distribution. As these releases are not frequent, having a point distribution usually implies having outdated packages.

There are two alternative selfupdate methods that provide the latest packages: rsync and cvs. In the former method, fink selfupdate uses the rsync command to download packages descriptions from one of the rsync mirrors; in the latter, cvs is used to download package descriptions from SourceForge.net.

Choosing a selfupdate method

You should consider the following when choosing a selfupdate method:

  • whenever possible, use either rsync or cvs. They’ll get you up-to-date packages;
  • up-to-date packages are probably not available as official binaries. You’ll need to install Xcode to compile packages from source. You might want to check someĀ unofficial binary distributions;
  • rsync is faster than cvs;
  • when a maintainer releases a new package it is readily available in the cvs distribution. In normal operation, new packages should reach the rsync mirrors in one hour at the latest;
  • firewalls might block rsync or cvs.

Note that when you switch from point to rsync/cvs your next selfupdate will take a while. Subsequent selfupdates should be significantly faster.

In order to switch to rsync, run

fink selfupdate-rsync

Or, if you want to use cvs, run

fink selfupdate-cvs

You can’t go back to the point distribution once you’ve switched to rsync/cvs.

After having changed the selfupdate method, run

fink update-all

to update your packages to their latest versions.

You only need to run selfupdate-rsync or selfupdate-cvs once. Fink remembers your choice and is going to use it in subsequent selfupdates.

Some Fink versions have a minor glitch that shows up when changing the selfupdate method. Please read this FAQ section.

Identifying which selfupdate method Fink is using

There are two ways to check what selfupdate method is being used in your Fink installation. If you run

fink –version | grep Distribution

and it shows something like

Distribution version: architecture (e.g. i386)

then Fink is using the point distribution. If either rsync or cvs is being used, then the command above outputs

Distribution version: selfupdate-cvs (or -rsync), timestamp of last update, OS X version, architecture.

The other possibility is to check the SelfUpdateMethod entry in /sw/etc/fink.conf.

Distribution version: i386