在使用 Mac OS X 和 perl 多年之后,我提出了一个简单的三部分计划:
- 从源代码编译
- 安装在
/usr/local
- 永远不要碰系统 perl
学习它。知道。活下去。
…
哦,好吧,我会尽力解释。完全接触系统 perl 是一个坏主意,我希望这是显而易见的原因。Apple 的应用程序、第三方应用程序和操作系统本身期望系统 perl 的行为与系统 perl 一样——有时与系统 perl完全一样。仅举一个例子,iTunes 安装程序曾包含一个 perl 脚本,其中包含如下代码:
if ($foo EQ $bar) {
....
}
是的,EQ
而不是eq
. 信不信由你,这实际上在许多旧版本的 perl 中有效——但在我年轻时天真时安装在系统版本之上的新版 perl 中却不行。结果是我双击 iTunes 安装程序,实际上什么都不会发生。(嘿,情况可能会更糟。)
我们可以谈论 Apple 显然在那时编写 perl 代码的那种猴子(以及现在质量是否更好),但底线/System
是 Apple 的领域。 尝试在那里不着陆。(多么热门。)
另一方面,Apple 长期以来一直承诺永远不会放入任何东西/usr/local
,同样重要的是,在系统更新期间不会碰任何东西。这是你的安全区。在那里安装你的 perl,在那里安装 CPAN 模块所需的库,等等。
最后,为什么要从源代码构建?为什么不使用包管理器?这似乎只是脾气暴躁的老人的推理,但我更愿意将其视为来之不易的智慧。Mac OS X 没有一个占主导地位的包管理系统,更不用说官方/内置的了。所有各种第三方包管理器都存在与我使用过的每个包管理器相同的问题:有时你想要的软件没有被打包,有时它没有按照你想要的方式打包,有时它只是被破坏了等等。除了从源代码构建一些软件之外,还尝试安装软件包是灾难的根源。
唯一可行的“统一”方法是从源代码构建所有内容。如今,几乎所有常用的 Unix 软件都在 Mac OS X 上构建,无需任何特别努力。(现在有如此多的 Unix 开发人员使用 Mac OS X 作为他们的个人系统,这对他们很有帮助。)通常只是解压缩、配置、制作、安装。您甚至很少需要指定/usr/local
目的地;这是大多数软件的默认设置。
所以你有它:从源代码编译。安装在/usr/local
. 永远不要触摸系统 perl。你不会后悔的。