FINK(8) BSD System Manager's Manual FINK(8)NAMEfink — a package management system
SYNOPSISfink [options] command [command-options] [package]
DESCRIPTIONfink is a package management system that aims to bring the full world of
GNU and other common Open Source software to Darwin and Mac OS X.
With the help of dpkg(8) and apt(8) it maintains a separate directory
hierarchy. It downloads original source releases, patches them if necces‐
sary, configures them for Darwin and compiles and installs them. The
information about available packages and the neccessary patches are
included with this distribution, everything else is downloaded off the
Internet.
OPTIONS-h, --help
Display help text.
-q, --quiet
Causes fink to be less verbose, opposite of --verbose
-V, --version
Display fink version information.
-v, --verbose
Causes fink to be more verbose, opposite of --quiet
-y, --yes
Assume default answer for all interactive questions
-K, --keep-root-dir
Causes fink not to delete the temporary installation directory
root-[name]-[version]-[revision] in the Buildpath (see the
fink.conf manpage) after building a package.
-k, --keep-build-dir
Causes fink not to delete the package compile directory
[name]-[version]-[revision] in the Buildpath (see the fink.conf
manpage) after building a package.
-b, --use-binary-dist
Download pre-compiled binary packages from the binary distribution
if available and if deb is not already on the system
Note that this mode instructs fink to download the version it wants
if that version is available for download; it does not cause fink
to choose a version based on its binary availability.
--no-use-binary-dist
Don't use pre-compiled binary packages from the binary distribu‐
tion, opposite of the --use-binary-dist flag. This is the default
unless overridden by a setting in fink.conf configuration file.
--build-as-nobody
Drop to a non-root user when performing the unpack, patch, compile,
and install phases. This is the default behavior unless overridden
by a BuildAsNobody: false directive in a .info file, or if the
--no-build-as-nobody flag is used.
--no-build-as-nobody
Force the the unpack, patch, compile, and install phases to be per‐
formed as root.
-m, --maintainer
Perform actions useful to package maintainers: run validation on
the .info file before building and on the .deb after building a
package; turn certain build-time warnings into fatal errors; run
the test suites as specified in the InfoTest field. This sets
--tests and --validate to on.
--tests[=on|off|warn]
Causes InfoTest fields to be activated and test suites specified
via TestScript to be executed. If no argument is given to this
option or if the argument is on then failures in test suites will
be considered fatal errors during builds. If the argument is warn
then failures will be treated as warnings.
--validate[=on|off|warn]
Causes packages to be validated during a build. If no argument is
given to this option or if the argument is on then validation fail‐
ures will be considered fatal errors during builds. If the argu‐
ment is warn then failures will be treated as warnings.
-l, --log-output
Save a copy of the terminal output during each package building
process. By default, the file is stored in
/tmp/fink-build-log_[name]-[version]-[revision]_[date]-[time] but
one can use the --logfile flag to specify an alternate filename.
--no-log-output
Don't save a copy of the output during package-building, opposite
of the --log-output flag. This is the default.
--logfile=filename
Save package build logs to the file filename instead of the default
file (see the --log-output flag, which is implicitly set by the
--logfile flag). You can use percent-expansion codes to include
specific package information automatically. A complete list of per‐
cent-expanions is available in the Fink Packaging Manual; some com‐
mon percent-expansions are:
%n package name
%v package version
%r package revision
-t, --trees=expr
Consider only packages in trees matching expr.
The format of expr is a comma-delimited list of tree specifica‐
tions. Trees listed in fink.conf are compared against expr. Only
those which match at least one tree specification are considered by
fink, in the order of the first specifications which they match. If
no --trees option is used, all trees listed in fink.conf are
included in order.
A tree specification may contain a slash (/) character, in which
case it requires an exact match with a tree. Otherwise, it matches
against the first path-element of a tree. For example,
--trees=unstable/main would match only the unstable/main tree,
while --trees=unstable would match both unstable/main and
unstable/crypto.
There exist magic tree specifications which can be included in
expr:
status
Includes packages in the dpkg status database.
virtual
Includes virtual packages which reflect the capabili‐
ties of the system.
Exclusion (or failure to include) these magic trees is currently
only supported for operations which do not install or remove pack‐
ages.
-T, --exclude-trees=expr
Consider only packages in trees not matching expr.
The syntax of expr is the same as for --trees, including the magic
tree specifications. However, matching trees are here excluded
rather than included. Note that trees matching both --trees and
--exclude-trees are excluded.
Examples of --trees and --exclude-trees:
fink --trees=stable,virtual,status install foo
Install foo as if fink was using the stable tree, even
if unstable is enabled in fink.conf.
fink --exclude-trees=local install foo
Install the version of foo in fink , not the locally
modified version.
fink --trees=local/main list -i
List the locally modified packages which are installed.
COMMANDSfink has several commands that work on packages. All of them need at
least one package name, and all can handle several package names at once.
You can specify just the package name (e.g. gimp), or a fully qualified
name with a version number (e.g. gimp-1.2.1 or gimp-1.2.1-3). fink will
automatically choose the latest available version and revision when they
are not specified.
install package...
The install command is used to install packages. It downloads, con‐
figures, and builds, or downloads prebuilt (see the
--use-binary-dist flag) and installs the packages you name. It will
also install required dependencies automatically, but will ask you
for confirmation before it does so.
Aliases: update, enable, activate, use
remove package...
The remove command removes packages from the system. The current
implementation has a flaw: it doesn't check dependencies itself but
rather completly leaves that to the dpkg or apt-get tool (usually
this poses no problem, though).
The remove command removes the actual package files (excluding con‐
figuration files), but leaves the .deb compressed package file
intact. This means that you can re-install the package later with‐
out going through the compile process again. If you need the disk
space, you can remove the .deb from the /sw/fink/dists tree.
These flags can be used with the fink remove command
-h,--help
Show the options which are available.
-r,--recursive
Also remove packages that depend on the package(s) to
be removed.
Aliases: disable, deactivate, unuse, delete
purge package...
The purge command purges packages from the system. This is the
same as fink remove except that it removes configuration files as
well.
These flags can be used with the fink purge command
-h,--help
Show the options which are available.
-r,--recursive
Also purge packages that depend on the package(s) to be
purged.
update-all
This command updates all installed packages to the latest version.
It does not need a package list, so you just type:
fink update-all
list [list-options] [package...]
This command produces a list of available packages. If no packages
are specified, it will list all available packages. If one or more
package names are given, fink will list only those packages that
match the given names. If the passed package named contain shell
globs (? and * wildcards), only those packages matching the glob
are returned. If simple text strings (not globs) are passed, pack‐
ages containing them as substrings of the name are returned.
The default output is a table, listing installation state, the lat‐
est version and a short package description. The first column dis‐
plays the installation state with the following meanings:
not installed
i latest version is installed
(i) some version is installed, but a newer version is
available
*i* the version which is installed is more recent than the
newest version currently available
p a virtual package provided by a package that is
installed
The version column always lists the latest (highest) version known
for the package, regardless of what version (if any) you have
installed. To see all versions of a package available on your sys‐
tem along with more detailed status information about each, use
fink dumpinfo -fallversions
The following list-options affect the output format:
-h,--help
Show the options which are available.
-w xyz,--width=xyz
Sets the width of the display you would like the output
formatted for. xyz is either a numeric value or auto.
auto will set the width based on the terminal width.
The default is auto.
-t,--tab
The default table format has fixed-width columns that
are adjusted to fill the available screen size, with
package names and descriptions truncated as necessary
to fit. In -t mode, the output is tab delimited and
fields are not truncated regardles of screen size. The
tabbed mode is useful for running the output through
additional scripts or parsers, and is the default for‐
mat when fink list is used as part of a pipeline rather
than as a simple command.
--format=table
Output results in the standard fixed-width or tab-
delimited table style. See the -t flag for a way to
affect the format, and the intro to this command for
general information about the layout.
--format=dotty
Output package dependency data in .dot format, suitable
for processing by dotty and other graphviz tools (com‐
pare to the human-readable list format of the fink
show-deps command). This output mode just gives runtime
dependencies of each package You can parse the output
to get reverse-depends information, for example:
fink list --format=dotty | grep '
"libgettext8-shlibs"'
will list all packages that have a runtime dependency
on the libgettext8-shlibs package. Technically, this
example lists all packages' runtime dependency data,
and then selects the lines that have libgettext8-shlibs
in the dependency-target field. Note, there is a single
space between the two different quotes before the pack‐
age-name but not after.
--format=dotty-build
Output package dependency data in .dot format, suitable
for processing by dotty and other graphviz tools (com‐
pare to the human-readable list format of the fink
show-deps command). This output mode gives compiletime
dependencies of each package, which includes runtime
and build dependencies of every package in a family
(packages built together). Using the -m flag will also
include dependencies for the package-family's self-
testing (i.e., including TestDepends data). You can
parse the output to get reverse-builddepends informa‐
tion, for example:
fink-m list --format=dotty-build | grep '
"libgettext8-dev"'
will list all packages that have a compiletime depen‐
dency on the libgettext8-dev package. Technically, this
example lists all packages' compiletime dependency
data, and then selects the lines that have libget‐
text8-dev in the dependency-target field. Note, there
is a single space between the two different quotes
before the package-name but not after.
The following list-options control which packages are listed:
-i,--installed
Show only those packages which are currently installed.
-o,--outdated
Show only those packages which are out of date.
-u,--uptodate
Show only packages which are up to date.
-n,--notinstalled
Show packages which are not currently installed.
-N,--newer
Show packages whose installed version is newer than
anything fink knows about.
-s expr,--section=expr
Show only packages in the sections matching expr.
-m expr,--maintainer=expr
Show only packages with the maintainer matching expr.
Some usage examples:
fink list
list all packages.
fink list bash
check if bash is available and what version.
fink list --tab --outdated | cut -f2
just list the names of the out of date packages.
fink list --section=kde
list the packages in the kde section.
fink list --maintainer=fink-devel
list the packages with no maintainer.
fink --trees=unstable list --maintainer=fink-devel
list the packages with no maintainer, but only in the
unstable tree.
fink list "gnome*"
list all packages that start with 'gnome'.
The quotes in the last example are necessary to stop the shell from
interpreting the pattern itself.
apropos package...
This command behaves similarly to fink list except that package...
must be supplied and it searches package descriptions as well as
package names for the given strings (no wildcards).
describe package...
This command displays a description of the package you name on the
command line. Note that only a small part of the packages currently
have a description.
Aliases: desc, description, info
plugins
List the (optional) plugins available to the fink package manager.
Currently lists the notification mechanisms and the source-tarball
checksum algorithms.
fetch package...
Downloads the named packages, but does not install them. This com‐
mand will download the tarballs even if they were downloaded
before.
These flags can be used with the fink fetch command
-h,--help
Show the options which are available.
-i,--ignore-restrictive
Do not fetch packages that are "License: Restrictive".
Useful for mirrors, because some restrictive packages
do not allow source mirroring.
-d,--dry-run
Just display information about the file(s) that would
be downloaded for the package(s) to be fetched; do not
actually download anything.
-r,--recursive
Also fetch packages that are dependencies of the pack‐
age(s) to be fetched.
fetch-all
Downloads all package source files. Like fetch, this downloads the
tarballs even when they were downloaded before.
These flags can be used with the fink fetch-all command
-h,--help
Show the options which are available.
-i,--ignore-restrictive
Do not fetch packages that are "License: Restrictive".
Useful for mirrors, because some restrictive packages
do not allow source mirroring.
-d,--dry-run
Just display information about the file(s) that would
be downloaded for the package(s) to be fetched; do not
actually download anything.
fetch-missing
Downloads all package source files. This command will only download
files that are not present on the system.
These flags can be used with the fink fetch-missing command
-h,--help
Show the options which are available.
-i,--ignore-restrictive
Do not fetch packages that are "License: Restrictive".
Useful for mirrors, because some restrictive packages
do not allow source mirroring.
-d,--dry-run
Just display information about the file(s) that would
be downloaded for the package(s) to be fetched; do not
actually download anything.
build package...
Builds a package, but does not install it. As usual, the source
tarballs are downloaded if they can not be found. The result of
this command is an installable .deb package file, which you can
quickly install later with the install command. This command will
do nothing if the .deb already exists. Note that dependencies are
still installed, not just built.
rebuild package...
Builds a package (like the build command), but ignores and over‐
writes the existing .deb file. If the package is installed, the
newly created .deb file will also be installed in the system via
dpkg(8). Very useful during package development.
reinstall package...
Same as install, but will install the package via dpkg(8) even when
it is already installed. You can use this when you accidentally
deleted package files or changed configuration files and want to
get the default settings back.
configure
Reruns the fink configuration process. This will let you change
your mirror sites and proxy settings, among others.
selfupdate [options]
This command automates the process of upgrading to a new fink
release. It checks the fink website to see if a new version is
available. It then downloads the package descriptions and updates
the core packages, including fink itself. This command can upgrade
to major point releases (for example, the set of packages that
comes with a Fink binary installer), but it can also set up your
/sw/fink/dists directory tree for cvs(1) or rsync(1) updates. This
means that you then will be able to access the very latest revi‐
sions of all packages instead of only the point-release snapshot.
If no options are given, the existing default update method is used
as given in the fink.conf(5) file. Several options can be used to
control the update process:
-h,--help
Show the options which are available.
-m MODE,--method=METHOD
Establish the given METHOD as the default selfupdate
method and update using it.
-f, --finish
Do some standard actions after the actual MODE-specific
updating of the package descriptions (update the
binary-repository data, refresh some internal indices,
make sure fink itself and some other critical packages
are up-to-date).
selfupdate-rsync
Synonym for selfupdate --method=rsync
selfupdate-cvs
Synonym for selfupdate --method=cvs
index
Rebuilds the package cache. You should not normally need to execute
this manually, fink should auto-detect when it needs to be updated.
validate [options] file...
This command performs various checks on .info and .deb files. Pack‐
age maintainers should run this on their package descriptions and
corresponding built packages before submitting them.
Aliases: check
The following optional options may be used:
-h,--help
Show the options which are available.
-p,--prefix
Simulate an alternate Fink basepath prefix (%p) within
the files being validated.
--pedantic, --no-pedantic
Control the display of nitpicky formatting warnings.
--pedantic is the default.
scanpackages [tree...]
Updates the apt-get(8) database of debs in the specified trees.
cleanup [mode(s) and options]
Removes obsolete and temporary files. This can reclaim large
amounts of disk space. One or more modes may be specified:
--debs
Delete .deb files (compiled binary package archives)
corresponding to versions of packages that are neither
described by a package description (.info) file in the
currently-active trees nor presently installed.
--sources,--srcs
Delete sources (tarballs, etc.) that are not used by
any package description (.info) file in the currently-
active trees.
--buildlocks, --bl
Delete stale buildlock packages.
--dpkg-status
Remove entries for packages that are not installed from
the dpkg "status" database.
--obsolete-packages
Attempt to uninstall all installed packges that are
obsolete.
--all
All of the above modes.
If no mode is specified, --debs --sources is the default action. In
addition, the following options may be used:
-k,--keep-src
Move old source files to /sw/src/old/ instead of delet‐
ing them.
-d,--dry-run
Print the names of the files that would be deleted, but
do not actually delete them.
-h,--help
Show the modes and options which are available.
dumpinfo [options] package...
Shows how fink parses parts of a package's .info file. Various
fields and percent expansions will be displayed according to
options as follows:
-h,--help
Show the options which are available.
-a,--all
Display all fields from the package description. This
is the default mode when no --field or --percent flags
are given.
-f fieldname, --field=fieldname
Display the given fieldname(s), in the order listed.
-p key, --percent=key
Display the given percent expansion key(s), in the
order listed.
-e env_var, --env=env_var
Display the given variable(s) from the environment in
effect when the package is compiled. Output is in a
form suitable to be fed to 'eval'.
show-deps package...
Displays a human-readable list of the compile-time (build) and run-
time (installation) dependencies of the listed package(s). See the
fink list --format=dotty and fink list --format=dotty-build com‐
mands for other ways of obtaining dependency (and reverse-depen‐
dency) information.
FILES
/sw/var/lib/fink
Package cache databases. Don't try to edit them manually--instead
update using fink index.
/sw/etc/fink.conf
The system wide configuration file. See fink.conf(5) for more
information.
HOMEPAGE
http://www.finkproject.org/
BUGS
Check out fink's bug tracker at http://source‐
forge.net/tracker/?group_id=17203&atid=117203 for a current list of known
bugs.
AUTHOR
This manpage is maintained by the Fink Core Group <fink-
core@lists.sourceforge.net>.
ACKNOWLEDGEMENTSfink is developed and maintained by The Fink Project (http://www.finkpro‐
ject.org).
SEE ALSOapt-get(8), dselect(8), dpkg(8), fink.conf(5)
May 11, 2024