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

Fink 用户指南

This document gives an overview over all features of Fink. (下面的旧文档可以给你更详尽的概念: 安装, 使用 以及包括在发行安装版本的磁盘映象中的 ReadMe.rtf 文件。) 同时也可以查阅本网站的 文档部分 ,它包括一些其它的有用资讯。

欢迎查看 Fink 用户指南。 本指南包括从源代码或安装包来初次安装或升级 Fink 的步骤。 同时也会涉及软件包的安装和维护。

Contents

1 介绍

1.1 Fink 是什么?

Fink 是 OS X 和 Darwin 上的开放源代码的 Unix 软件。 它给你的 Mac 带来种类众多的 Linux 和其他类似系统上开发的免费命令行及图形界面软件。

1.2 系统要求

任何情况下你都需要:

如果你需要使用源代码发布的版本(详见底下),你还需要:

1.3 支持的操作系统

Mac OS X 10.4 is the leading-edge platform, and is considered to be fully supported and tested, though as a newer operating system there are still some issues. Most of the developers run it, and those who are running 10.3 have 10.4 users test their work. Note, however, that fink on intel hardware is still considered to be of beta quality.

Mac OS X 10.3 is is considered to be fully supported and tested, although there may still be stray compile problems with single packages. Many of the developers run it, and those who don't have 10.3 users test their work.

Mac OS X 10.2 is still supported to some extent. Fink 0.6.4 is the last distribution to suppport this OS.

Mac OS X 10.1 在某种程度仍然被支持。 你只能运行 Fink 0.4.1,在它上面没有更新的版本。

Darwin 8.x 是与 Mac OS X 10.4 对应的 Darwin 版本, 而 Darwin 7.x 是与 Mac OS X 10.3 对应的 Darwin 版本, 而 Darwin 6.x 则是与 Mac OS X 10.2 相应的版本。 总体来讲它们都可以使用,但没有经过非常详细的测试。因为多数人都只是在 Mac OS X 上运行。 对于一些使用了 OS X 专有特性的软件你可能会碰到问题 —— 受影响的软件包包括 XFree86,可能也包括 esound。

1.4 源代码与二进制安装包的对比

软件是用人们可阅读的编程语言来编写("开发")而成的;这种形式称为 "源代码"。 要使得计算机能够真正运行它,它必须转换为一种底层的机器指令代码(对多数人来说,这些代码是不可读的)。 这个转换过程称为 "编译" 经过转换后的程序称为 "可执行" 或 "二进制"程序。 (这个过程有时候也称为 "构建",因为实际上它还包括除编译以外的其它步骤)。

当你购买商业软件的时候,你不会看到源代码。这些公司甚至把它当作商业机密。 你只能获得一个已经可以运行的可执行程序,这意味着你没有办法修改程序,甚至没有办法知道它在运行过程究竟做了什么事情。

对于 开放源码 软件(简称开源软件)则不是这样。 顾名思义,它的源代码是公开给任何人查看和修改的。 事实上,对多数的开源软件的作者只是以源代码方式发布他们的作品,你需要在你自己的计算机上进行编译以后才可以使用。

Fink 可以让你自己在两种方式中间选择。 使用 "源代码" 发行版本的话,你将现在原始的源程序,并在上面应用 OS X 和 Fink 的编译规则,然后在你的机器上进行编译。 整个过程是全自动的,但是会花较长的时间。 使用 "二进制" 发行版本的话,你将下载从 Fink 站点下载已经编译好的软件包进行安装,这可以节省你自己编译的时间。 事实上也可以按照你的需要混合这两种方式。 本指南的其余部分将介绍如何做到这一点。

2 首次安装

在第一次安装时,一套基本的软件包管理工具会被安装到你的计算机上。 在这之后你需要设置好你的 shell 来使用 Fink 所安装的软件。 你只需要做一次这件事情,以后你可以直接从任何 Fink 安装版本(高于 0.2.0 发布版)升级,而不需要重新安装。 这会在如何升级一章进行介绍。

在软件包管理工具安装好以后,你可以用它来安装更多的软件。 这会在 安装软件包一章进行介绍。

2.1 安装二进制发行版

二进制发行版以 Mac OS X 安装包 (.pkg) 的形式提供,它被打包在一个磁盘映象文件(.dmg)中。 从下载页面下载了磁盘映象文件以后(你可能需要使用你的浏览器的 "保存目标为..." 或 "下载到磁盘" 功能),双击这个磁盘文件来装载上它。 在 "磁盘工具" 程序(10.3以前是 "磁盘拷贝")校验完你下载的文件后,在你的桌面上(或你下载到的文件夹里面)会出现一个 "Fink 0.x.x Installer" 的磁盘图标,打开它。 在里面你会看到一些文档和一个安装包。 双击安装包并按照屏幕上的说明完成剩下的安装。

你会被要求输入管理员密码,同时会显示一些文本。 请阅读它们 —— 它会比这份用户指南的版本更新。 当安装程序让你选择一个宗卷进行安装时,一定要选择系统宗卷(也就是你安装 OS X 的宗卷)。 如果你选择了错误的宗卷,安装仍然可以进行,但是安装后的 Fink 不能正常工作。 当安装程序运行完毕以后,继续 设置你的环境部分。

2.2 安装源代码发行版

源代码发行版以标准的 Unix tarball (.tar.gz) 方式提供。 它仅包含 fink 软件包管理器以及它自己的软件包描述,整个软件包的其它部分会在安装的过程中才下载。 你可以从这个 下载页面获得它。 很重要的是,你不能用 StuffIt Expander 来解压缩下载后的 tar 压缩档。 由于某些原因,StuffIt 仍然不能处理长文件名。 如果 StuffIt Expander 已经自动解压了你下载的压缩档,把它解压产生的文件夹删除掉。

源代码发行版必须从命令行安装,因此请打开 Terminal.app 并进入到你保存所下载到的 fink-0.x.x-full.tar.gz 压缩档的目录。 (Note: If you have OS X 10.4 and XCode 2.1, you should use fink-0.8.0-full-XCode-2.1.tar.gz instead, and make the appropriate changes below.) 以下的命令将解压压缩档:

tar -xzf fink-0.x.x-full.tar.gz

它会创建一个与压缩档同名的新目录。 我们将继续使用 fink-0.x.x-full 这个名称来代表它。 现在,进入这个新目录,并运行 bootstrap 脚本:

cd fink-0.x.x-full
./bootstrap.sh

这个脚本会对你的系统进行一些检查,然后使用 sudo 把你提升到 root 权限——这时会提示你输入你的密码。然后,脚本会询问你安装的路径,除非你有一个很好的理由,否则你应该使用默认的—— /opt/sw。 只有这样,以后你才可以顺利安装下载的二进制方式提供的安装包。另外,我们全部的例子都使用这个路径,所以如果你使用其它的安装路径,你要记住进行相应的替换。

下一步是 Fink 的配置。 它会询问你一些象代理和镜象服务器设置以及是否需要详细信息输出等问题。 如果你不是很明白有些问题,你可以按回车键接受默认的选择。 以后你还可以通过 fink configure 这个命令重新这个配置过程。

当 bootstrap 收集到它所需要的所有信息以后,它会下载基本系统所需要的源代码并编译它。 这以后不再需要用户的交互。 如果你看到一些软件包被反复编译两次不需要担心。 这是正常的现象,因为要构件一个软件包管理器的二进制安装包,你首先需要有一个软件包管理器。

当 bootstrap 脚本执行完毕,请继续 设置你的环境部分。

2.3 设置你的环境

要使用 Fink 目录下安装的软件,包括软件包管理器本身,你必须相应设置 PATH 环境变量。 In most cases, you can do this by entering the command

/opt/sw/bin/pathsetup.sh

Note that for some older versions of fink the program was called pathsetup.command, and one could run it via open /opt/sw/bin/pathsetup.command.

如果由于某种情况这种方法不奏效,你可以手工配置它。不过,这会随你使用的 Shell 程序不同而不同。 你可以通过打开终端窗口并运行下面指令来查看你 shell 类型:

echo $SHELL

如果命令输出 "csh" 或 "tcsh" ,那么你使用的是 C shell。如果输出是 bash,zsh,sh 或其它类似的东西,你很可能是在使用 Bourne shell 的一个变种。

注意这个 init.shinit.csh 脚本还添加了 /usr/X11R6/bin/usr/X11R6/man 到你 PATH 环境变量中,使得你可以在安装了 X11 以后使用它。 Fink 软件包可以添加它们自己的设置,例如,qt 软件会设置 QTDIR 环境变量。

一旦你的环境设置好,继续 安装软件包 章节来了解如何用 Fink 所包括的软件包管理工具来安装一些实际的软件包。

3 安装软件包

现在你已经做完了一些可以称为 Fink 安装的事情。 本章介绍怎么用 Fink 来安装一些实际的软件包,这也是你安装 Fink 的目的。 在我们解释如何用源码或二进制包安装前,有一些重要的信息是对这两种方式都适用的。

3.1 用 dselect 安装二进制包

dselect 是一个让你查看可用的软件包清单的程序,同时也可以选择你所需要安装的包。 它在 Terminal.app 程序中运行,但会占用整个"屏幕" 并使用简单的键盘进行控制浏览。 和其它软件包管理工具一样 dselect 需要 root 用户权限,所以你需要(以具有管理员权限的帐号)使用 sudo:

sudo dselect

注意: dselect 已知在 Mac OS X 的终端程序中运行存在问题。你需要套在使用它前运行下面的命令,或把它们放到合适的启动文件中(例如 .cshrc.profile):

对 tcsh 用户:

setenv TERM xterm-color

对 bash 用户:

export TERM=xterm-color

在主菜单里面有几个选择:

多数时间你会在软件包浏览器中使用 dselect,这可以通过 "[S]elect" 菜单项访问。 在 dselect 显示软件包清单之前,它会显示一个介绍性的帮助屏幕。 你可以按 'k' 按钮来获得一个键盘命令的详细清单,或按空格键进入软件包清单。

你可以使用上下方向键来在清单中进行浏览。 你可以用 '+' and '-' 来进行选择。 当你选择的软件包安装时需要其它的软件包时,dselect 会显示一个相关的子列表。 多数情况下,你只需要按回车键来接受 dselect 的选择。 你可以在子列表中进行调整(例如,选择另外一个可替代的软件包依赖关系),或者按 'R' (即是 Shift-R)来回到原来的状态。 子列表和主软件包清单都是通过按回车键离开。 当你对你的选择感到满意以后,离开主清单并使用 "[I]nstall" 菜单项来实际安装软件包。

3.2 用 apt-get 安装二进制包

dselect 本身并不实际安装软件包。 相反,它会运行 apt 来做这些实际工作。 如果你喜欢一个纯命令行界面,你可以用 apt-get 命令直接使用 apt 的功能。

和 dselect 一样,你首先需要用这个命令下载可用的软件包清单:

sudo apt-get update

象 dselect 中的"[U]pdate" 菜单项一样,它并不会实际更新你计算机中的文件,而只是更新 apt 的可用软件包列表。要安装软件包,你需要给 apt-get 一个名字,象这样:

sudo apt-get install lynx

如果 apt-get 发现这个软件还需要其它软件包安装,它会告诉你一个清单,让你确认。 然后它会下载和安装所要求的软件包。 删除已安装的软件包也很容易:

sudo apt-get remove lynx

3.3 安装没有二进制版本的依赖软件包

有些时候,当我们执行一个二进制软件包安装的时候,你会或得一个依赖关系不能安装的错误信息。比如:

Sorry, but the following packages have unmet
dependencies:
foo: Depends: bar (>= version) but it is
not installable
E: Sorry, broken packages

这种现象的原因时你要安装的软件包需要依赖于另外一个软件包,但是那个软件包由于版权许可问题不能以二进制包方式发布。你必须用源代码来安装这个依赖关系(见下一部分)。

3.4 从源代码安装软件包

The fink tool will allow you to install packages that are not yet available in the binary distribution.

首先,你需要在你的系统中安装合适版本的开发工具。在 http://connect.apple.com中最新版本免费注册以后可以下载得到它。

要获得可以从源代码安装的软件包清单,可以用 fink 工具查询:

fink list

第一列是安装状态(空白表示没有安装,i 表示已安装,(i) 表示已安装但是并不是最新的版本),后面是软件包的名字,最新版本,以及一个简要的描述。 你可以用 "describe" 命令 ("info" 是它的一个别名)来获得某个软件包的更多信息:

fink describe xmms

当你找到一个你希望的软件包以后,可以使用 "install" 命令:

fink install wget-ssl

fink 命令首先会检查所有需要先安装的软件("依赖关系")是否已经存在,然后询问你时候可以安装那些现在还不存在的软件包。 然后它会开始下载源代码,解包,给它打上必要的补丁,编译,然后把最终的结果安装到你的系统上。 这可能会花费比较长的时间。 如果你发现此过程中发生了错误,请首先查看 FAQ

For fink versions since 0.23.0 you can tell it to try to download pre-compiled binary packages, if available, instead of building them. Just pass the --use-binary-dist (or -b) option to fink. This can save you a lot of time. E.g. calling

fink --use-binary-dist install wget-ssl

or

fink -b install wget-ssl

will first download all dependencies for wget-ssl that are available from the binary distribution and only build the remainder from source. This option can also be enabled permanently in the Fink configuration file (fink.conf) or by running the command fink configure.

More details about the fink tool are available in the chapter "Using the fink Tool from the Command Line".

3.5 Fink Commander

Fink Commander 是 apt-getfink 工具的 Aqua 界面。二进制包菜单可以让你管理二进制安装包,源程序菜单则相应管理源程序安装包。

Fink Commander 被包括在 Fink 的二进制安装包中。如果你想要单独下载它(比方说,你是从源代码开始建立 Fink 的),或者需要额外的信息,可以访问 Fink Commander 网站

3.6 可用版本

当你希望安装一个软件包,你应该首先查看 软件包数据库 来找找是不是可以通过 Fink 获得。软件包的各个可用版本会在一个表格的多个行中出现。就象这样:

3.7 找到 X11

许多 Fink 中的软件包都要求已经安装某种形式的 X11。因此,首先要做的第一件事情是选择一种 X11 实现。

由于在 Mac OS X 上有几种 X11 实现(Apple X11, XFree86, X.org),以及几种不同的方式去安装它们(手工或通过 Fink),所以存在有几种可选的软件包 - 每种设置方式一个。 这里是可用的软件包和 X11 安装方法:

关于安装和运行 X11 的更多信息,请参考 Darwin 及 Mac OS X 上 X11 的文档.

4 升级 Fink

本章介绍如何升级你的 Fink 安装到最新和最好的版本。

4.1 用二进制包进行升级

如果你只是使用二进制包进行安装,那么不需要什么特别的升级步骤。 简单地选择你喜欢的工具从服务器上获取最新的软件包,并安装需要的所有软件包就可以了。

对于 dselect,只需要选择 "[U]pdate",然后 "[I]nstall" 就足够了。 当然,你也许会希望在两个步骤中间运行 "[S]elect" 来查看做了什么选择以及新软件包的有关信息。

对于 apt,运行 apt-get update 来获取最新的软件包清单,然后运行 apt-get upgrade 来更新全部有新版本的软件包。

对于 Fink Commander,选择 Binary->Update descriptions 来更新软件包清单,然后选择 Binary->Dist-Upgrade packages 来升级到新的版本。

更多的信息,尤其是关于升级 Fink 0.3.0 之前版本,参见 Upgrade Matrix

4.2 升级从源码安装版本

整个过程由两个步骤组成。 第一步,下载最新的软件包描述到你的计算机。 第二步,使用这些软件包描述来编译新的软件包,实际的源代码会根据需要下载。

如果你使用 Fink 0.2.5 或更新版本,第一步可以运行 fink selfupdate。 这个命令会检查 Fink 网站看是否有一个新的版本发布,如果有的话,会自动下载和安装软件包描述文件。 在最新的 fink 版本的命令中,你可以选择直接从 CVS 或通过 rsync 来直接获取软件包描述。 CVS 是一个具有版本控制功能的储存库,它保存和管理软件包描述文件。 使用 CVS 的优点是它是不断更新的,缺点是对 Fink 只有一个 Git 服务器,如果访问量太大,它会变得不稳定。因此,对通常用户,我们推荐使用 rsync。对于 rsync,我们有多个镜像站点。唯一得缺点是新得版本在 Git 发布以后会大约需要一个小时后才会更新到 rsync 镜像站点上。

(如果你在升级从源码安装得版本中碰到问题,请查阅  一些特殊指引。)

如果你的 Fink 是 0.2.5 之前得版本,你需要手工下载软件包描述文件。 访问 下载区,在 "distribution" 模块中寻找最新的 packages-0.x.x.tar.gz 压缩档。 下载它,然后按下面的办法安装:

tar -xzf packages-0.x.x.tar.gz
cd packages-0.x.x
./inject.pl

更新了软件包描述以后(无论你采用什么办法), 你应该可以用 fink update-all 命令一次更新所有软件包。

如果使用 Fink Commander 更新源代码发布版本,选择 Source->Selfupdate 下载最新的软件包信息文件,然后选择 Source->Updata-all 来更新所有不是最新的软件包。

4.3 混合使用二进制和源文件安装的情况

如果你的某些软件包是使用预编译好的二进制安装包安装,而另外一些则使用源代码安装,你需要使用上面的两套步骤来更新你的 Fink 安装。 也就是说,首先使用 dselectapt-get 来获取可用的二进制安装版本,然后使用 fink selfupdatefink update-all 来过去最新的软件包描述,并更新剩下的软件包。

Starting with fink 0.23.0 using the UseBinaryDist option (settable via the --use-binary-dist (or -b) option or in the Fink configuration file) both source and binary descriptions will be updated if you call fink selfupdate. In this case you don't need a separate apt-get call anymore.

If you are using Fink Commander select Binary->Update descriptions to update the package list, and then Binary->Dist-Upgrade packages to update to new versions. After that do Source->Selfupdate to download new package information files, and then Source->Update-all (see previous sections for details).

5 Fink 配置文件

本章会解释 Fink 配置文件(fink.conf)中的设置项,以及他们会对 Fink 的工作产生什么作用,尤其是 fink 命令行工具(也就是说使用源代码发布版本)。

5.1 关于 fink.conf

在 Fink 安装的时候,它会询问你几个问题以建立起你的配置文件,就好像选择你希望使用来下载文件的 镜像网站 以及如何获得超级用户权限。你可以用fink configure 命令来重新进行这个过程。而有一些选项,则需要直接编辑 fink.conf 文件。通常来说,这些选项对于熟练用户才会有用。

fink.conf 文件的位置在 /opt/sw/etc/fink.conf,它可以用你喜欢的纯文本编辑器来编辑它。要编辑它,你需要超级用户的权限。

5.2 fink.conf 文件的语法

你的 fink.conf 文件由多行组成,格式是:

选项名: 选项值

每行一个选项,选项名和选项值之间以一个冒号和一个空格分开。选项值的内容取决每个不同的选项,但通常会是一个布尔值("True" 或 "False"),一个字符串,或用空格分开的多个字符串。 例如:

BooleanOption: True
StringOption: Something
ListOption: Option1 Option2 Option3

5.3 必需的设置

fink.conf 文件里面的一些设置是不可缺的。如果缺少它们,Fink 就无法正常工作。下面的设置就属于这一类。

5.4 可选用户设置

有很多设置用户可以进行调整,来对 Fink 进行优化。

5.5 下载设置

有几个设置会影响 Fink 下载软件包数据的方式。

5.6 镜像站点设置

从网上获取软件可能会是一个冗长的过程。经常下载的速度不会象我们所希望的那样快。镜像服务器会从其它服务器中拷贝文件,但可能它会有一个更快的网络连接,或者它在地理上离你更近,这样从它上面下载会更快些。同时它们也可以分担主服务器的负担,其中一个例子是ftp.gnu.org,在一个访问不到的时候,它会提供另一个替代的服务器。

为了让 Fink 能够使用最合适你的镜像服务器,你要告诉它你居住在哪个洲和哪个国家。如果不能从某个服务器下载,它会提示你是:重试相同的镜像站点,连接与你在相同国家或洲的另一个镜像服务器,还是世界上任意一个镜像服务器。

fink.conf 文件中保存着你希望使用哪些镜像服务器的信息。

5.7 开发人员设置

fink.conf 中一些选项只是对开发人员有用。我们不推荐 Fink 用户修改它们。下面的一些选项属于这一类。

5.8 Advanced Settings

There are some other options which may be useful, but require some knowledge to get right.

5.9 Managing apt's sources.list file

Starting with fink 0.21.0, fink actively manages the file /opt/sw/etc/apt/sources.list which is used by apt to locate binary files for installation. The default sources.list file looks something like this, adjusted to match your Distribution and Trees:

# Local modifications should either go above this line, or at the end.
#
# Default APT sources configuration for Fink, written by the fink program

# Local package trees - packages built from source locally
# NOTE: this is automatically kept in sync with the Trees: line in 
# /opt/sw/etc/fink.conf
# NOTE: run 'fink scanpackages' to update the corresponding Packages.gz files
deb file:/opt/sw/fink local main
deb file:/opt/sw/fink stable main crypto

# Official binary distribution: download location for packages
# from the latest release
deb http://us.dl.sourceforge.net/fink/direct_download 10.3/release main crypto

# Official binary distribution: download location for updated
# packages built between releases
deb http://us.dl.sourceforge.net/fink/direct_download 10.3/current main crypto

# Put local modifications to this file below this line, or at the top.

With this default file, apt-get first looks in your local installation for already-compiled binaries, and then looks in the official binary distribution. You can alter this by making entries at the beginning of the file (which will be searched first) or at the end of the file (which will be searched last).

If you change your Trees line or the Distribution you are using, fink will automatically modify the "default" portion of the file to correspond to the new values. Fink will, however, preserve any local modifications you have made to the file, provided that you confine your modifications to the top of the file (above the first default line) and the bottom of the file (below the last default line).

Note: If you had modified /opt/sw/etc/apt/sources.list prior to upgrading to fink 0.21.0, you will find your former file stored at /opt/sw/etc/apt/sources.list.finkbak .

6 在命令行使用 Fink 工具

6.1 使用 Fink 工具

fink 工具使用几个后缀命令来处理源程序发行包。其中的一些需要至少有一个软件包名称,但同时可以处理多个软件包。你可以简单地应用软件包的名称(例如, gimp),或包括版本号的全名(例如 gimp-1.2.1) 或包含版本号和修订版号的名称 (例如 gimp-1.2.1-3)。在没有指明版本的情况下,Fink 会自动选择最新的版本。其它还具有不同的选项。

下面是 fink 工具的命令清单:

6.2 Global options

There are some options, which apply to all fink commands. If you type fink --help you get the list of options:

(as of fink-0.26.0)

-h, --help - displays help text.

-q, --quiet - causes fink to be less verbose, opposite of --verbose. Overrides the Verbose flag in fink.conf.

-V, --version - display version information.

-v, --verbose - causes fink to be more verbose, opposite of --quiet. Overrides the Verbose field in fink.conf.

-y, --yes - assume default answer for all interactive questions.

-K, --keep-root-dir - Causes fink not to delete the root-[name]-[version]-[revision] directory in the Buildpath after building a package. Corresponds to the KeepRootDir field in fink.conf.

-k, --keep-build-dir - Causes fink not to delete the [name]-[version]-[revision] directory in the Buildpath after building a package. Corresponds to the KeepBuildDir field in fink.conf.

-b, --use-binary-dist - download pre-compiled packages from the binary distribution if available (e.g. to reduce compile time or disk usage). 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. Corresponds to the UseBinaryDist flag in fink.conf.

--no-use-binary-dist - Don't use pre-compiled binary packages from the binary distribution, opposite of the --use-binary-dist flag. This is the default unless overridden by setting UseBinaryDist: true in the fink.conf configuration file.

--build-as-nobody - Drop to a non-root user when performing the unpack, patch, compile, and install phases. Note that packages built with this option may be non-functional. You should use this mode for package development and debugging only.

-m, --maintainer - (fink-0.25 and later) 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; (fink-0.26 and later) run the test suites as specified in the field. This sets --tests and --validate to on.

--tests[=on|off|warn] - (fink-0.26.0 and later) Causes InfoTest fields to be activated and test suites specified via TestScript to be executed (see the Fink Packaging Manual). 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 failures will be considered fatal errors during builds. If the argument 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 percent-expanions is available in the Fink Packaging Manual; some common percent-expansions are:

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

Exclusion of (or failure to include) these magic trees is currently only supported for operations which do not install or remove packages.

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

Most of these options are self-explanatory (see here for the definition of Buildpath). They can also be set in the Fink configuration file (fink.conf) if you want to set them permanently and not just for that invocation of fink.

6.3 install

install 命令用于安装软件包。它下载,配置,构建和安装你指名的软件包。它还会自动安装需要的依赖关系,但在此之前会要求你确认。例如:

fink install nedit

Reading package info...
Information about 131 packages read.
The following additional package will be installed:
 lesstif
Do you want to continue? [Y/n]

Use of the --use-binary-dist option with fink install can speed the build process for complicated packages by quite a lot.

install 命令的别名包括: update, enable, activate, use (这些别名多数是因为历史原因形成的)。

6.4 remove

The remove command removes packages from the system by calling 'dpkg --remove'. The current default implementation has a flaw: it doesn't check dependencies itself but rather completely leaves that to the dpkg tool (usually this poses no problem, though).

The remove command only removes the actual package files, (excluding configuration files), but leaves the .deb compressed package file intact. This means that you can re-install the package later without going through the compile process again. If you need the disk space, you can remove the .deb from the /opt/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 (i.e. overcome the above-mentioned flaw).

Aliases: disable, deactivate, unuse, delete.

6.5 purge

The purge command purges packages from the system. This is the same as the remove command except that it removes configuration files as well.

This command takes the:

-h,--help
-r,--recursive

options.

6.6 update-all

这个命令会更新所有已经安装的软件包到最新的版本。它不需要输入要更新的软件包清单,你只需要输入:

fink update-all

--use-binary-dist is also useful with this command.

6.7 list

这个命令产生一个可用的软件包,它的安装情况,最新版本和简单的描述。 如果你不使用其它参数的话,它会列出所有可用软件包。 你可以附上一个名称或 shell 模式,fink 会列出所有匹配的软件包。

第一列显示的安装状态的意义为:

    未安装
 i   已安装最新版本
(i)  已安装,但不是最新版本
 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, use the dumpinfo command.

fink list 命令可以使用下面这些标志:

-h,--help
	  显示可用的选项。
-t,--tab
	  按制表位输出清单,这对需要在脚本中使用输出很有用。
-i,--installed
	  只显示已安装的软件包。
-o,--outdated
	  只显示已过期的软件包。
-u,--uptodate
	  只显示没有过期的软件包。
-n,--notinstalled
	  只显示没有安装的软件包。
-s expr,--section=expr
	  只显示满足正则表达式的软件包。
-m expr,--maintainer=expr
          Show only packages with the maintainer  matching the
          regular expression expr.
-r expr,--tree=expr
          Show only packages in the trees matching the regular
          expression expr.
-w=xyz,--width=xyz
	  设定你希望输出格式化为的宽度。xyz 可以为一个数字或者 auto。
	  auto 会根据终端的宽度来设置输出宽度。
	  默认值是 auto。

一些有用的例子:

fink list                 - 列出所有的软件包
fink list bash            - 检查 bash 是否可用,以及它的版本
fink list --outdated      - 列出过期的软件包
fink list --section=kde   - 列出属于 kde 部分的软件包
fink list "gnome*"        - 列出所有以 'gnome' 开头的软件包

在最后一个例子中,引号是必须的。因为这样才可以避免 shell 自己来匹配这个模式。

6.8 apropos

这个命令的作用几乎和 fink list 一样。最主要区别是 fink apropos 还会搜索软件包描述来寻找软件包。第二个区别是必需提供一个搜索字符串,而不是可选的。

fink apropos irc          - 寻找在名称或描述中包含 'irc' 的软件包
fink apropos -s=kde irc   - 同上,但只在 kde 部分寻找

6.9 describe

你在这个命令中给出软件包的名称,命令会输出它的描述。 注意,目前只有一小部分软件包有描述信息。

别名: desc, description, info

6.10 plugins

List the (optional) plugins available to the fink program. Currently lists the notification mechanisms and the source-tarball checksum algorithms.

6.11 fetch

下载指定的软件包,但不安装它。这个命令下载压缩档,即使以前已经下载过。

The following flags can be used with the 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
			package(s) to be fetched.

6.12 fetch-all

下载 所有 软件包源程序文件。和 fetch 一样,它会下载即使已经下载过的压缩档。

These flags can be used with the fink fetch-all command:

-h,--help
-i,--ignore-restrictive
-d,--dry-run

6.13 fetch-missing

下载 所有 缺失的软件包源程序文件。这个命令只下载系统中没有的文件。

These flags can be used with the fink fetch-missing command:

-h,--help
-i,--ignore-restrictive
-d,--dry-run

6.14 build

构建一个软件包,并不安装它。通常,缺少的源压缩档会自动被下载。这个命令的结果是产生一个可用于安装的 .deb 软件包文件,以后你可以使用 install 命令迅速地安装它。如果 .deb 文件已经存在,这个命令会什么都不干。注意,依赖关系会被安装,而不仅仅是构建。

6.15 rebuild

构建一个软件包(和 build 命令类似),但忽略和覆盖现存的 .deb 文件。如果这个软件包已经安装,新创建的 .deb 文件也会通过 dpkg 安装到系统。对软件包开发过程很有用。

The --use-binary-dist option is applicable here.

6.16 reinstall

和 install 相同,但会使用 dpkg 安装,即使它已经被安装。你可以用这个命令安装被意外删除的软件包文件或者改变了设置文件以后希望恢复回默认的设置。

6.17 configure

重新运行 fink 的配置过程。 你可以改变镜像站点和代理服务器设置等。

New in fink-0.26.0: This command will also let you turn on the unstable trees if desired.

6.18 selfupdate

这个命令会自动更新到一个新的 Fink 版本。它检查 Fink 网站确定是否有新的版本。然后下载软件包描述并升级核心软件包,包括 fink 本身。这个命令可以升级标准的发布版本,但也可以设置你的 /opt/sw/fink/dists 目录树来使用直接 git 或 rsync 进行升级, if you select one of those options the first time this command is run。这意味着你可以访问所有软件包的最新修订版。

If the --use-binary-dist option is enabled, the list of available packages in the binary distribution is also updated.

6.19 selfupdate-rsync

Use this command to make fink selfupdate use rsync to update its package list.

This is the recommended way to update Fink when building from source.

Note: rsync updates only update the active trees (e.g. if unstable isn't turned on in fink.conf the list of unstable packages won't be updated.

6.20 selfupdate-git

Use this command to make fink selfupdate use Git access to update its package list.

Rsync updating is preferred, except for developers and those people who are behind firewalls that disallow rsync.

6.21 index

重建软件包缓存。通常你不应该手工运行这个命令,因为 fink 应该能够自动检测到什么时候需要更新。

6.22 validate

这个命令会对 .info.deb 文件进行一些检查。软件包维护人员在提交他们负责的软件包之前,应该运行这个命令来对它的描述和相应的构建好的软件包进行检查。

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.

别名: check

6.23 scanpackages

Updates the apt-get database of debs; defaults to updating all of the trees, but may be restricted to a set of one or more trees given as arguments.

6.24 cleanup

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. (new in fink-0.26.0)
--all                - All of the above modes. (new in fink-0.26.0)

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 /opt/sw/src/old/ instead of deleting 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.

6.25 dumpinfo

Only available in fink newer than version 0.21.0

显示 fink 如何解析软件包的 .info 文件的各个部分。各个字段和百分号展开会按照下面选项的设置来显示:

-h, --help           - 显示可用的选项。
-a, --all            - 显示软件包描述文件的全部字段。
                       这时没有指定 --field 或 --percent 标志时的默认方式。
-f 字段名,            - 按列出的顺序显示给定的字段名
  --field=字段名
-p 关键字,            - 按列出顺序显示指定的关键字的百分号扩展
   --percent=关键字
      

6.26 show-deps

Only available in fink-0.23-6 and later.

Displays a human-readable list of the compile-time (build) and run- time (installation) dependencies of the listed package(s).


Copyright Notice

Copyright (c) 2001 Christoph Pfisterer, Copyright (c) 2001-2020 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: uguide.zh.xml,v 1.23 2023/08/04 4:49:23 nieder Exp $