Fink:把 Unix 开源软件带到 macOS 的包管理器 #

Fink 是什么? #

Fink 是一套面向 macOS(Darwin)平台的 Unix 开源软件发布与包管理系统,由志愿者团队维护,目标是把 Unix 世界丰富的自由软件完整地带到苹果系统上。

它通过"移植"的方式修改 Unix 软件,使其能够在 Mac OS X 上编译和运行,并为这些软件提供统一的下载、安装与升级渠道。Fink 借助 Debian 项目中成熟的 dpkg、apt-get 等工具实现强大的二进制软件包管理,用户既可以下载预编译好的二进制安装包快速部署,也可以从源代码自行构建一切。对于需要在 Mac 上使用 GNOME、KDE、GIMP、Groff 等传统 Unix 工具的开发者和高级用户来说,Fink 提供了一条与原生命令行环境无缝衔接的软件获取路径。

Fink 有哪些亮点特色? #

  • 一站式 Unix 软件移植:Fink 项目把 Unix 平台上的开放源码软件批量移植到 Darwin 和 Mac OS X,用户在 Mac 上即可直接获取并使用原本只在 Linux/BSD 上运行的经典工具与桌面环境。
  • 基于 Debian 的成熟包管理:内置 dpkg 与 apt-get 等 Debian 生态工具,提供依赖解析、版本管理、批量升级等完整的二进制软件包管理能力,无需自行处理复杂的依赖关系。
  • 二进制与源码双模式自由选择:官方明确支持"下载预编译好的二进制安装包"或"从源代码自己构建一切"两种方式,追求效率的用户可直接安装二进制包,追求可控性的用户则可自行编译。
  • Fink Commander 图形界面:随发行版附带 Fink Commander,为不习惯命令行的新用户提供简单易用的 GUI,通过 Binary/Source 菜单即可完成软件包的搜索、安装与更新。
  • 紧跟新版 macOS 与 Apple Silicon:主开发分支已支持 macOS 11 至 macOS 13,覆盖 Intel(x86_64)以及 Apple M1、M2(arm64)芯片,同时继续为 macOS 10.9–10.15 等版本提供源码发行版。
  • 完全免费且开源:作为志愿者驱动的开源项目,Fink 的源码托管在 SourceForge 与 GitHub,任何人都可以自由下载、使用、反馈问题甚至提交新的软件包。
  • 文档与多语言支持完善:官网提供《用户指南》《打包手册》《常见疑问(F.A.Q.)》等系统文档,网站本身提供中文(简)、English、Français、Deutsch、Italiano、日本語、Русский、Español、Português 等多语言版本。
  • 软件库持续更新:官方首页持续公示近期软件包更新动态(如 groff-1.24.2、libtre5-shlibs-0.9.0、elinks-0.20.0 等),保证软件库的活跃度与可用性。

免费下载 Fink #

以下为官方提供的各平台安装包,点击链接即可下载。

文件名 描述 大小 下载
Fink-0.9.0-Intel-Installer.dmg Intel 处理器(x86)版二进制安装磁盘映象 13.8 MB 夸克网盘
Fink-0.9.0-PowerPC-Installer.dmg PowerPC 处理器版二进制安装磁盘映象 13.0 MB 夸克网盘

说明:上述二进制安装包主要面向 Mac OS X 10.5 用户。10.4 用户可使用 Fink 0.8.1,10.3 用户可使用 Fink 0.7.2,更早系统请参考官网"下载"页面的版本对应关系。10.6 及更高版本的系统目前没有官方二进制安装包,需要使用源码安装方式。

Fink 如何使用? #

首次使用 Fink,建议按照官方"快速上手"指南依次完成以下步骤:

  1. 安装 Fink 并初始化环境:完成安装后,安装程序会自动打开终端并运行 pathsetup.command 脚本,在修改你的 shell 配置文件前会征求你的同意。每个用户账号都应登录后各运行一次该脚本,以便正确设置环境变量。
  2. 刷新软件包索引:打开一个新的终端窗口,运行 fink scanpackages; fink index,或使用 Fink Commander 的 Source->scanpackages 与 Source->Tools->index 菜单完成同样的操作。
  3. 更新 Fink 自身:这一步非常关键,可以确保读取到软件发布后可能出现的重要变更。命令行方式为 fink selfupdate(提示选择时推荐选择 (1) rsync);图形界面方式为 Source->Selfupdate;也可以使用 sudo apt-get update; sudo apt-get install fink。
  4. 安装你需要的软件包,有三种常用方式:
    • 图形界面:在 Fink Commander 中选择软件包,然后使用 Binary->Install(二进制安装)或 Source->Install(源码编译安装);
    • apt-get:例如 sudo apt-get install gimp 即可安装 GIMP,速度快、无需编译,但并非所有软件包都提供二进制版本;
    • fink 命令:例如 fink install gimp,会获取并编译源代码形式的软件包,需要使用 Xcode 开发工具。
  5. 日常维护:定期执行 fink selfupdate 与 fink index -f 保持软件包描述文件与补丁为最新,再用 fink update-all 或 apt-get 升级已安装的软件。

如果你更习惯图形操作,Fink Commander 提供了 Binary 和 Source 两套菜单,分别对应二进制安装与源码编译,是新手或不愿意使用命令行的用户的推荐选择。

Fink 的常见问题? #

安装 Fink 之前必须先装什么?

必须先安装 Xcode。官方明确要求 "Xcode must be installed before Fink"。你至少需要安装对应系统的 Command Line Tools(可通过终端运行 xcode-select --install 安装,或从 Apple 官网下载)。如果你需要使用带图形界面的应用程序(GUI 类软件包),还需要额外安装 XQuartz 2.8.5 或更高版本(旧系统对应更早的 XQuartz 版本)。

Fink 目前支持哪些 macOS 版本?

官方源码发行版目前覆盖 macOS 10.9 至 10.15,并继续在更早的 OS X 版本上运行(但官方不再为这些老版本提供更新)。macOS 11 至 macOS 13 的支持正在开发中,可通过 Git 获取主开发分支代码进行安装,覆盖 Intel(x86_64)与 Apple M1/M2(arm64)平台。

为什么 Fink 不安装在 /usr/local?为什么选择 /opt/sw 或 /sw?

这是 Fink 有意为之的设计选择。将软件安装在独立的目录(官方文档中默认位置为 /sw,FAQ 中亦提及 /opt/sw)可以避免与系统自带工具、其他来源的软件产生冲突,也便于整体卸载和版本管理。相关讨论可参见官网 FAQ 的 1.4 与 1.5 节。

运行 Fink 或其安装的软件时提示 "command not found" 怎么办?

这通常是因为环境变量尚未设置或未生效。请运行 /sw/bin/pathsetup.sh 来配置环境,然后打开一个全新的终端窗口,让新的环境设置生效。这一问题在 FAQ 第 5.16 条中有专门说明。

升级 Fink 后仍然看不到新软件包,是什么原因?

在执行 rsync 或 CVS selfupdate 之后,还需要重新生成索引(如 fink index -f)才能看到最新的软件包描述。另外,并非所有软件包都有二进制版本,部分软件包只存在于 unstable 代码树中,需要显式启用 unstable 或改用源码安装方式。

我想要的软件包不在 Fink 里,可以请求添加吗?

可以。你可以在 SourceForge 的软件包提交跟踪器中请求一个尚未包含在 Fink 中的软件包(需要先免费注册 SourceForge 账号)。如果你有打包经验,也可以参考官方的《打包手册》与《打包教程》,自己制作软件包后提交。

遇到问题时可以去哪里求助?

官方推荐三条路径:查阅网站"文档"与"常见疑问"章节;在 fink-beginners 或 fink-users 邮件列表中提问(发帖前建议先搜索历史归档);或加入 Libera.chat IRC 网络上的 #fink 频道与其他用户和开发者实时交流。提交问题报告时请附上 Fink 版本、macOS 版本、相关软件包版本、失败的命令及错误信息。

Fink 如何安装? #

macOS 平台(二进制安装,适用于 Mac OS X 10.5) #

  1. 下载与你机器架构相匹配的安装磁盘映象:Intel 用户选择 Fink-0.9.0-Intel-Installer.dmg,PowerPC 用户选择 Fink-0.9.0-PowerPC-Installer.dmg。
  2. 双击 .dmg 文件装载磁盘映象。
  3. 双击映象中的 Fink 0.9.0 Installer.pkg,按照屏幕提示完成安装。
  4. 安装的最后阶段会自动打开终端并运行 pathsetup.command 脚本,脚本在编辑你的 shell 配置文件前会请求你的同意,运行完毕后关闭终端窗口即可。
  5. 如果在安装过程中出现错误,可以重新运行安装卷中的 pathsetup.command,或手动执行 /sw/bin/pathsetup.sh。请注意每个用户账号都应各自登录并运行一次该脚本。
  6. 安装完成后,打开新的终端窗口运行 fink scanpackages; fink index 即可开始使用。

macOS 平台(源码安装,适用于 macOS 10.4 及以后) #

  1. 先安装对应的 Xcode 或 Command Line Tools。10.9–10.15 用户可在终端运行 sudo xcode-select --install;10.7–10.8 用户需安装完整版 Xcode 并在偏好设置的 Downloads 标签页中安装命令行工具。
  2. 如果安装了完整版 Xcode,建议运行 sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer,并执行 sudo xcodebuild -license 接受许可协议,以保证 fink 的构建用户可以正常工作。
  3. 下载对应版本的源码包:macOS 10.9–10.15 使用 fink-0.45.6.tar.gz;OS X 10.7–10.8 使用 fink-0.38.7.tar.gz;OS X 10.6 使用 fink-0.36.5.tar.gz;OS X 10.5 使用 fink-0.34.10.tar.gz;OS X 10.4 使用 fink-0.30.2.tar.gz。
  4. 在终端中解压源码包,例如 tar -xvf fink-0.45.6.tar.gz,然后进入解压后的目录执行 ./bootstrap 开始引导安装。如果想安装到非默认位置,可使用 ./bootstrap /path 指定目录。
  5. 安装完成后运行 /sw/bin/pathsetup.sh 配置环境,再依次执行 fink selfupdate-rsync 与 fink index -f(或使用 git 方式)下载软件包描述文件与补丁。
  6. 请注意,源码包内的 README、INSTALL、USAGE 文档提供了完整说明,建议安装前仔细阅读——Fink 并不是"一键完成"的工具。

macOS 11 至 macOS 13(开发中支持) #

  1. 先安装系统对应的 Xcode 版本:macOS 11 使用 Xcode 13 至 13.2.1;macOS 12 使用 Xcode 13.3 至 14.2;macOS 13 使用 Xcode 14.3 至 15.0。Xcode 可从 App Store 免费下载,或至少安装 Command Line Tools。
  2. 在终端中依次运行以下命令从 Git 获取源码:
    mkdir -p ~/src
    cd src
    git clone https://github.com/fink/fink fink-upstream
    cd fink-upstream
    
  3. 如果是全新安装,运行 ./bootstrap;如果是升级已有的 Fink 安装,则运行 ./inject.pl。
  4. 如需 X11 支持,请从 Xquartz.org 安装 XQuartz 2.8.5 或更高版本。由于该版本支持仍在开发中,官方提示完整发行版的工作仍在进行。

Fink 如何卸载? #

由于 Fink 采用独立目录安装的设计,卸载主要依靠手动清理,具体流程如下:

  1. 移除软件包(可选但推荐):在终端中先使用 fink remove <软件包名> 或 apt-get 的删除命令逐个移除已安装的软件包,避免直接删除目录留下散落的配置。
  2. 删除安装目录:Fink 默认安装在 /sw(部分文档与旧版本使用 /opt/sw),删除整个安装目录即可移除 Fink 主体及其安装的所有软件。删除前请确认目录中没有你需要保留的自定义文件。
  3. 恢复 shell 环境配置:安装时运行的 pathsetup.command / pathsetup.sh 会在你的 shell 配置文件(如 .bashrc、.zshrc 等)中写入与环境变量相关的设置。卸载时需要手动编辑这些文件,删除由 Fink 添加的相关行。
  4. 清理索引与缓存目录:如 /sw/var 或用户目录下的相关缓存仍在,可一并删除。
  5. 参考官方说明:官网《常见疑问(F.A.Q.)》第 5 节"安装,使用和维护 Fink"中的第 5.6 条"我怎么彻底反安装 Fink?"提供了官方卸载指引,建议操作前先行查阅,以免误删系统文件。

卸载完成后,请打开一个新的终端窗口以确认环境变量已恢复,避免残留配置影响后续使用。

相关标签
FinkmacOS 包管理器Unix 软件移植DarwinMac OS Xapt-getdpkg源码编译XQuartzHomebrew 替代