包管理器——选择brew还是macports

背景

最近有几个古老的Mac OS X 10.10和10.11设备在使用brew更新包的时候陆续遇到了一些困难,显示有一些包不支持了,必须要卸载掉不然不能正常使用。我突然想起其实还有另外一套包管理系统macports,按照说明它维护的包数量其实也很多,并且对于老版本的OS X支持也不错,是否可以尝试下呢?

尝试

那我就从我手头最老的iBook G4开始吧。之前我使用的是tigerbrew,一个支持PowerPC平台的brew的fork版。这个tigerbrew严格讲基本不维护了,而且新的包也很少。所以我就首先把brew卸载掉,然后从macports下载了专门用于Leopard版本的dmg安装包进行安装。

访问HTTPS

老系统的首要问题就是几乎没法正常访问HTTPS资源,不管是浏览器,还是wget,还是curl。在这一点上,我要先看看macports的表现如何。按照说明我尝试安装curl和wget

首先更新一下自己,然后安装相应的包。在计算好依赖项后,我输入y回车确认安装。

更让人惊喜的是,尽管是darwin9这么老旧的平台,还是有不少包直接通过下载二进制版本的形式进行安装。一些不那么常见或设置了variants包必须要进行编译安装。

可以看到它自己安装了最新版的openssl 1.1.1k以及gnutls,还有就是最新的根证书集合,在编译安装过后,我尝试访问HTTPS网站,完全没有任何障碍了! 看来这一点上macports比老旧的brew的fork版要强不少。

支持C++11的编译器

Mac OS X 10.5.8和自带的Xcode 3.1.4安装了两种编译器,一种是gcc 4.0.1的编译器

另一种是gcc 4.2.1编译器

令人欣喜的是,macports在darwin9的ppc平台可以安装到gcc 7.5

这个版本不低了,都可以支持C11和C++11了。这么古董的机器还能享受到这样的编译器感觉还是很赚的。

音视频瑞士军刀ffmpeg 4.4.1

说实话这让我着实有些意外。我试着搜了下macports的ffmpeg已经更新到4.4.1了,那我看看能不能装。没想到一安装还装上了!

当然安装过程肯定没那么快(已经不能这么形容了,实际上是非常慢),足足花了有十几个小时吧。。。但是整个过程依赖库安装全部非常顺利,编译也一点都没有出错!来看看最后的效果

实话说都有点惊艳到我了。这个ffmpeg自带x264和x265编码器,解码器甚至包含了时新的av1,乖乖~

我尝试下载了一个256kbps的rmvb视频,将其重新转码成120kbps的h264+16kbps的aac的mp4视频,大概可以维持在0.4x左右,严格讲还是可以的~

只可惜由于libsdl2在ppc上安装需要的编译器是llvm的更高版本系列,但是powerpc版本并没有提供维护,所以就没有安装上ffplay。

nodejs与qemu

尝试安装了下nodejs和qemu,针对这台powerpc系列的机器看来确实要求过高了。nodejs只提供i386/x86_64和arm三种架构的安装包,所以在这里就全部扑街。qemu系列也是由于编译器不支持-femulated-tls特性而不能正常安装。

经过搜索,我看到有人介绍可以通过高版本gcc来编译安装llvm-3.8甚至llvm-3.9,再通过llvm系列来安装其他的包,比如qemu。但是鉴于这台设备性能实在太拉胯(1.2GHz PowerPC G4),这里就不做尝试了。

选择

通过我的iBook G4的验证,其实感觉macports作为包管理器还是很方便的,既有编译好的二进制包可以作为加速,又支持本地编译,而且包非常多,对于x86和x86_64平台的支持也不错,甚至最新的arm64平台也慢慢做上支持了。我的感觉是针对完全的老爷机,macports是首选。对于主流CPU架构的半老不新的且CPU强大的机器,也适合macports。针对日常使用的机器,选择brew更新包迅速而且也不会占用额外的时间进行编译。macports的缺点在于相对来讲维护的人较少,所以包更新相对brew不那么频繁。但是讲真咱们不是拿来玩,天天更新也是没那么必要的。所以macports这类包管理器还是很有生命力的。

发表评论

为防机器,验证码请直接输入4个数字1

*