MacOS X "Tiger"(PPC) 包管理工具的安装和简单使用

请注意:本文仍在施工中,故在这行字被删除之前,将不保证其中任何内容的真实性、准确性

  • 本文图片暂未改为从图床加载

本文是一个在MacOS X 10.4安装、配置、使用各种包管理并安装必要工具的简单指南。尽管该系统已经完全过时,但作为PowerPC黄金时期的、在UI设计上完全贯彻了“Aqua”美学的操作系统,其可玩性十分之高,以至于至今仍有许多开发者为其维护包管理工具和软件源仓库。

本文所用平台:一台10.4.11系统的powerbook G4 15’’(2005, “dl-sd”)
neofetch

截至2026年年初,苹果仍然给10.4系统提供在线更新。在开始前,你应该先进行ota升级,让一切最新。

0.前置

安装Xcode2.5

你必须安装xcode. Xcode2.5是最后支持Tiger的版本,下载安装器并安装它。
下载地址:

配置代理

pass

1.Tigerbrew

本部分全程需要网络连接。强烈建议使用有线网络。

1.1.安装

仓库:https://github.com/mistydemeo/tigerbrew
安装:下载install.txt 然后终端输入(假设你当前位于存放该文件的目录下):

1
ruby install.txt

进行安装。确保你有网络连接。
如果遇到curl报错指出从服务器返回空内容,那么你应该检查网络并多试几次。安装好后,你应该看到类似:
installbrew.png
![[Pasted image 20260316230828.png]]

1.2.配置

你可能已经注意到上一张图中红色下划线标注的警告。如果你此前没有任何配置,那么如果你像这样检查环境变量PATH的内容:

1
echo $PATH

得到的输出中应该不包括/usr/local/bin,这个十分常见的目录不在Tiger——这个古代操作系统的默认环境变量中。
我们知道,对于多数现代Unix软件包管理器,软件默认被安装在/usr/local/bin, tigerbrew自然也遵循这一规范。所以现在你现在为了配置环境变量,应该编辑~/.bash_profile,并加入

1
export PATH=/usr/local/sbin:/usr/local/bin:$PATH

现在,你应该可以继续了。运行下面的命令来下载必要的依赖

1
brew doctor

然后,你需要安装X11. 最简便的方法是挂载你的MacOS安装盘,找到图示最下方的“optional installs(可选安装项目)”,打开。

如果你找不到你的安装盘了,就随便找一个用来安装Tiger的镜像。

![[Pasted image 20260316233049.png]]
然后,在“应用程序”一栏中选择X11,安装它。
![[Pasted image 20260316233522.png]]

如果你的系统没有安装X11,那么你在使用Tigerbrew安装一些常见程序时大概率会遇到问题。比如git的依赖项tcl-tk 包默认编译时包含了图形支持,其图形部分依赖 X11

现在可以使用了。但是,我强烈建议你阅读下一小节,先进行下述配置。

1.2.1.必要的更新

本部讲解如何更新、安装一些必要的软件包。

请务必遵循我给出的顺序,因为Tigerbrew并不能自行解决所有依赖问题。

GCC

Tiger的工具链非常老旧,只有2005年的GCC4.0.1. 所以为了防止无法进行正常的配置和编译,应该首先安装苹果版GCC4.2

1
brew install apple-gcc42

你应该不会在这一步碰到除了网络连接之外的问题。安装后,使用gcc --version检查版本,你应该会看到类似的输出:
gcc42.png
![[Pasted image 20260317132314.png]]

然后继续更新GCC,这会使你得到尽可能新的工具链,对于编译一些现代程序而言这是必须的。不过,尽管我没有测试过,但理论上你可以暂时跳过,先安装bash。但注意,apple-gcc42是必须的,没有它你几乎寸步难行。
要更新GCC,你可以

1
brew install gcc

但这非常有可能出现各种问题,原因是多方面的。建议手动安装。

所幸有高手专为PowerPC Tiger打包了GCC 14.2.0。它还一并包含了一些静态链接库(gmp、mpfr、libmpc 和 isl )使其可以无需额外依赖就能运作。
原作者的blog

你可以在这里下载powerpc-apple-darwin8.11.0-gcc-14.2.0.tar,然后拷贝到目标机器的硬盘中。然后,根据作者的建议解压到/opt/gcc14

1
sudo tar -xvf ~/Downloads/gcc14.2.0-tiger-powerpc.tar.gz -C /

这条命令这么写是因为作者的包内包含/opt/gcc14。考虑到作者日后可能还会更新使得该结构可能发生变化,你需要慎重执行这条命令,或者直接手动解压后拖进去。
接下来,在你的shell配置文件~/.bash_profile中,为环境变量PATH加入如下内容以让你的系统可以找到gcc14

1
export PATH=/opt/gcc14/bin:$PATH

然后应用更改。

1
source ~/.bash_profile

现在,如果你检查gcc版本,应该会看到诸如:
![[Pasted image 20260317200450.png]]

bash

接下来,检查并更新bash版本:

![[Pasted image 20260317024401.png]]
tiger是bash2,十分老旧,许多特性已经过时,需要更新。如果你不这么做,那么一些脚本将无法运行。
更新bash(可以更新到5.2.21)

1
brew install bash

安装后验证

1
bash --version

![[Pasted image 20260317025405.png]]

OpenSSL

更新OpenSSL会给你带来对现代加密协议的支持,它也是git和python3等常用软件的依赖。让我们先检查当前版本

1
curl --version | grep OpenSSL

如果你此前没有做过任何操作,那么它将是OpenSSL 0.9.7,十分老旧。让我们安装3.5.4版本。如果你使用brew安装总是报错,建议从源码手动编译。
下载地址(github)

而这需要perl的较新版本(至少需要5.10),如果你没有(你可以用perl --version检查默认使用哪个版本),你应该先用brew安装perl(经测试,可以正常安装5.42)。

如果你安装后发现编译时用的仍然是老版perl,那么你需要编辑环境变量PATH,向~/.bash_profile加入:

1
export PATH=/usr/local/opt/perl/bin:$PATH

并应用。

根据 Homebrew 的相关设计,/usr/local/opt/perl/bin 是 Homebrew 安装 Perl 后,当前活跃版本的可执行文件目录。/usr/local/opt/perl 是一个符号链接,指向 /usr/local/Cellar/perl/5.42.x,便于版本切换。如果(我是说如果)这个目录对你无效,你需要想办法找到它。

随后进行配置-编译-安装三连。但在这之前有三点需要特别注意:

  1. Tiger的系统库老旧,它不支持setcontext()(一个POSIX标准的较现代系统调用,用于实现协程),所以在配置时,必须添加参数no-async,否则编译器会因为找不到这个函数而报错。
  2. 编译OpenSSL需要头文件Availability.h,但苹果在Leopard才引入它。所以我们有两种解决方式
    1. 从Tiger 本来就有的 AvailabilityMacros.h创建一个名为Availability.h的符号链接,让试图 #include <Availability.h> 的代码实际读取 AvailabilityMacros.h
    2. 添加Availability.h
  3. 你需要手动指定原子操作库libatomic的位置,如果你已经根据本文安装了gcc14, 那么它在/opt/gcc14/lib"

对于1)给出我的参数供参考:

1
./Configure darwin-ppc-cc --prefix=/usr/local LDFLAGS="-L/opt/gcc14/lib -latomic" no-async no-tests

对于2)这里采用方案1:

1
2
sudo ln -s /usr/include/AvailabilityMacros.h /usr/include/Availability.h
# 完成后你可以删除该链接
  • 注意,由于 OpenSSL 的编译命令会优先搜索源码内的 include/ 目录,你还需要在 OpenSSL 源码目录中创建同样的符号链接。

成功安装后,brew并不知道你已经手动安装了 OpenSSL,因为它有自己的独立的目录结构(/usr/local/Cellar)。因此,你需要把手动编译好的文件连接到这里。

1
2
3
4
5
6
7
8
9
10
11
mkdir -p /usr/local/Cellar/openssl3/3.5.4/bin
mkdir -p /usr/local/Cellar/openssl3/3.5.4/lib
mkdir -p /usr/local/Cellar/openssl3/3.5.4/include

# 链接
ln -s /usr/local/bin/openssl /usr/local/Cellar/openssl3/3.5.4/bin/
ln -s /usr/local/lib/libssl* /usr/local/Cellar/openssl3/3.5.4/lib/
ln -s /usr/local/lib/libcrypto* /usr/local/Cellar/openssl3/3.5.4/lib/
ln -s /usr/local/include/openssl /usr/local/Cellar/openssl3/3.5.4/include/

brew link openssl3

现在进行验证,你应该可以在输出中看到openssl3

1
brew list | grep openssl3

补充:根据 PR #27578一个针对 macOS 10.4 Tiger 和 10.5 Leopard 的兼容性补丁已经于 2025 年 8 月被合并到主线。 故OpenSSL 3.6.0 及更高版本原生支持Tiger,理论上可以用基本配置编译,但为了稳妥起见(我在写这篇文章的时候尚未测试过),本文仍以本人实际配置时使用的3.5.4 为例。

  • 尽管我没有遇到相关问题,但你可以尝试根据这条PR中所指出的,在配置参数中增加no-asm来避免可能的PowerPC汇编代码问题
  • 日后我会对其进行测试,然后更新这一小节到3.6+版本。毕竟在多数情况下,尽可能直接使用来自上游的代码能获得更好的支持和稳定性
curl

curl随着Tigerbrew被安装,但是由于:

  • 你更新了OpenSSL,但现有的curl 依然是旧版openssl
  • 较新的curl是git等常用软件的依赖

我建议你重新编译、安装它。直接从brew安装会遇到编译问题,让我们

1.3.Troubleshuttling

如果你遇到诸如这种错误:
![[Pasted image 20260317173039.png]]
这看起来很反常。你的进度条已经满了,但依然提示下载错误。这种状况很可能体现为,你第一次下载失败,重试时一开始就显示100%。
这时候,你需要清除缓存重试。

1
cd $(brew --cache)

找到对应软件的包体后删除它(不出意外的话,它应该是一个.incomplete文件),然后重试。

  • 也许你应该选择手动安装它。
    它的成因可能和ssl协议版本有关,还在研究

2.MacPorts

macports最新版本已不支持Tiger,使用2.9.3版本问题较多,暂未完全解决。本部分暂且鸽住。

todo:ssl证书过期问题

  1. 已经更新openssl
  2. 重新编译curl todo
    ![[Pasted image 20260317193100.png]]

MacOS X "Tiger"(PPC) 包管理工具的安装和简单使用
http://example.com/2026/03/16/MacOS-X-Tiger-PPC-包管理工具的安装和简单使用/
作者
TVEM
发布于
2026年3月16日
许可协议