pkgsrc - 什么?你还在用 Homebrew !?

Pkgsrc 是源自 NetBSD 的类 Port 包管理系统框架,同时具有 BSD 风格的 Port Tree 和一个能计算依赖的二进制包管理区器,收录 17000 个开源软件,并官方支持多达 32 个不同系统平台,包括 Linux,Darwin 和 macOS,各大 BSD,Minix,Solaris/SmartOS/Illumos,Cygwin。

因为只是个框架,所以具体平台上的 binary 需要第三方来提供。我现在用的是 http://pkgsrc.joyent.com,实际有 14000+可用包。

Pkgsrc 相比 Homebrew 有什么优点?

  • 使用 Command Line Tools 的 clang 编译软件,而 brew 用的是自举的 gcc。
  • 不需要安装 Xcode
  • 更加精细的编译选项
  • 更多可选的包
  • 移植性强,Linuxbrew 目前还未稳定
  • 能计算依赖关系,清理无用的依赖包,brew 目前还是只管杀不管埋的阶段,虽然有第三方插件可以实现这个功能
  • 用 C 写成,速度较快。
  • 安装在 /opt/pkg 目录下。Homebrew 则用 /usr/local,我觉得缺点大于优点。
  • 和系统头文件,库紧密联结。

有什么缺点嘛?

完全自举一个 pkgrc 比较复杂,不过 Joyent 提供基本配置好了的 Pkgrc。需要用 sudo,当然也可以安装在 home 目录下。不支持 Brew Cask 类似的功能。

友情提示,在尝试一个包管理器前,为了保险起见,先查查看怎么卸载。

1 个赞

从时间顺序上来说,Homebrew 应该是最晚出现的(2009),MacPorts(2002)、Fink、pkgsrc(2001) 看起来都比它早上很多年,我一直觉得 Homebrew 的口号不太对劲:

-The missing package manager for macOS
+The newest  package manager for macOS

因为显然早在 Homebrew 之前,Mac 上就有且不止一个包管理器了。当然所以的(包括 Homebrew)都不是 Apple 预装的。

不过 pkgsrc 是 14 年才出现提供 macOS 的 binary,不然恐怕轮不到后面几个。

没有足够的资料,但是 12 年是有的。

不清楚。Wikipedia 上说 “Darwin and macOS October 2001”,所以我以为是 2001 年。

光 sudo 这点就吓退很多人了。

安装看起来也很复杂,http://pkgsrc.joyent.com/install-on-osx 写那么多是要用户一行一行粘贴吗?

我个人不喜欢把软件装在 HOME 里面。如果装在 HOME 目录当然是不需要 sudo 的。

安装当然是复制粘贴啦。

真正必要的只有两句:

curl -O https://pkgsrc.joyent.com/packages/Darwin/bootstrap/${BOOTSTRAP_TAR}
sudo tar -zxpf ${BOOTSTRAP_TAR} -C /

再简练就是:下载解压。

其他就是验证一下安装包,刷新下环境变量。

应该不算复杂吧。

Homebrew 也用 clang,不需要安装 Xcode。

要求 sudo 真的会吓退不少人。:laughing:

Homebrew 除了依赖关系处理的不太好之外,没有什么可抱怨的。

不好意思,我记错了。不过严格意义上还是 brew 要多装一套 Xcode 的开发工具(非 Command Line Tools)的 :sunglasses:

C 写的东西速度快倒是真的。

然后 homebrew 经常 grave 包给我留下了不愉快的经历。

粘贴麻烦、容易错漏。如果是像我一样使用 fish 就更麻烦了,粘贴来的语句还要修改。

初次接触的用户,出于谨慎,一般不会想着去简化安装步骤,否则哪里出错都不知道。

完全可以把安装过程放在脚本文件里,然后给用户一句:

curl -sL http://~/install.sh | sh -

对比起来我装 Gentoo 的时候没有剪贴板,只能手敲的经历……

@LdBeth “经常 grave 包”是什么意思?旧版本的包安装起来困难?

口号没什么不对,我就是弥补你生命中缺憾的那个,呃,包管理器。我是电,我是光,我是唯一的神话。I’m the chosen one,其余皆尘埃。

其实第一次看到 Homebrew 这个名字,对苹果历史有些了解的人多半会会心一笑。个人认为 Homebrew 包管理器能够后来居上与它的名字以及口号有较大关系。

Homebrew 是我在 Mac 平台上使用过的唯一一款包管理器,目前没有要换的打算。

Homebrew 的流行我认为主要是简单,安装/使用不费劲,Formula 人人能写,谁都可以提交。

嗯。再加上易于引起共鸣和传播的名字/口号,就流行起来了。

没用过 homebrew(因为没有 mac),目前 pacman (以及建立在其上的 yaourt ) 是我用过最好用的包管理器。

这你怕是要被 Gentoo 用户表示不服。pacman 除了小和快,在依赖处理和软件包的粒度上都很欠缺。

每个 formula 没有固定的维护者,有时候出于上游的变化 formula 就废弃了,brew 又不会保留旧版本的包。

家酿,Apple I 出产的地方。然而 Homebrew 本身就是常见名词。

Homebrew is a poor name, it’s too generic, why was it chosen?

@mxcl was too concerned with the beer theme and didn’t consider that the project may actually prove popular. By the time he realized it was, it was too late. However, today, the first Google hit for “homebrew” is not beer related :wink:

严格来说 Homebrew 所有历史版本的 formula 都存在 Github 上,二进制包则好像存在某 CDN 上。安装旧版本的包个人经历过一次,说实话过程不会那么令人愉快,但肯定能装上。对旧版本软件不那么待见,这点倒是和 Apple 挺像的。

Homebrew 确实是个挺常见的词,但如果你敢说“家酿俱乐部”是个破名字,估计一群 Apple 爱好者要追着来打你了 =͟͟͞͞(꒪⌓꒪*) By the time he realized it was, it was too late. 走红还是挺快的嘛~

最后一段是官方 FAQ 上的自嘲。

嗯,我只是想说 Homebrew 是个好名字,even 它的创建者都没有意识到这一点。

当然这个只是我个人感觉,没有任何证据。:grin:


刚看到点资料补充一下:“家酿俱乐部”正式名称为"Homebrew Computer Club",其重要意义也并不只针对苹果,正是这群黑客推动了当时大公司们瞧不上眼的“个人”计算机的诞生。

Several very high-profile hackers and computer entrepreneurs emerged from its ranks, including the founders of Apple Inc. The open exchange of ideas that went on at its biweekly meetings, and the club newsletter, helped launch the personal computer revolution. The Homebrew Computer Club has been called “the crucible for an entire industry.”

gentoo prefix 飘过 Project:Prefix - Gentoo Wiki