Fink comes with a given set of packages that are collectively referred to as a distribution. A distribution depends on whether the user has installed Fink using the binary installer or bootstrapped from source, on the selfupdate method (point, rsync, cvs), on the last time the user has selfupdated, and on whether the user has enabled the unstable tree.
There’s yet another option to change Fink’s distribution: local packages, installed under /sw/fink/dists/local/main. These are packages (either a .deb binary package, or a .info package description) that are not written by Fink itself but are used by Fink whenever appropriate. Normally users don’t need local packages, but there are some situations where they might be necessary:
- a new/updated package is on the Submissions tracker but has not been accepted by Fink yet;
- a new/updated package that the user has packaged and intends to submit to Fink;
- downgrading a Fink package;
- testing/using different build options.
A local package description (.info file, and .patch file if it exists) should be placed under /sw/fink/dists/local/main/finkinfo. Running
makes Fink recognise local packages and add them to the distribution. After that, you may use these local packages like any other package.
If a local package is also present in Fink’s distribution then there are a couple of things to consider:
- Fink always uses the latest version/revision of a package. This means that if you have a local package that at the moment is more recent than Fink’s then it’ll be used until Fink’s version/revision gets updated to a more recent version/revision.
- If a given package exists in different trees with same version/revision, then Fink uses the last tree, as defined in Trees in /sw/etc/fink.conf, that contains that package. In a default Fink installation, the order of Trees is local, stable, unstable.
Hence if you want to use a local package instead of Fink’s, make sure your version/revision is more recent than Fink’s. Remember that problems arising from local packages are essentially unsupported by Fink.