2

我是一个老 Perl 黑客,但我基本上已经放弃了我的 Mac,因为我通常无法使用cpan安装任何东西。

依赖项列表中的某些内容通常会因(对我而言)毫无意义的错误而失败。我的 Mac 是新的,但在 10 多年的时间里从以前的 Mac 升级过程中复制了很长的历史。

多年来,我一直在尝试使用finkMacPorts并且homebrew我怀疑此时我有很多不兼容的地方。

在我发布我的最新问题之前,我真正想做的是从 Perl 开始清理,就好像我安装了一个干净的 OSX-lion 一样。有什么方法可以做到这一点,而无需擦除我的磁盘并从头开始安装 OSX?

4

2 回答 2

5

您提到的项目都没有安装到系统目录中。因此,从您当前的用户环境中删除它们应该与将它们从您的路径中删除并从您的启动文件中删除对它们的引用一样简单(例如.bashrc,或者如果您将它们添加到您的“登录项”等)。

在那之后,你会得到操作系统给你的东西。别管那个。安装perlbrew(这样您就可以安装多个perls 并在它们之间切换而不会干扰系统的其余部分)和cpanm(因为它更有趣 ;-) 并从那里获取它。

请务必阅读您使用的所有内容的文档,以便了解他们的工作以及他们如何做到这一点。

PS:如果您出于某种原因确实强制任何finkportshomebrew践踏系统目录,那么您做错了。如果我是你,在这种情况下我会选择从头开始安装(但请确保先备份你的文档)。我个人认为即使/usr/local像 homebrew 开发者倡导的那样也不是一个好主意,但如果你这样做了,至少他们会给你一个卸载脚本

于 2012-06-16T16:03:47.963 回答
4

OS X 和 Perl = 有点痛苦,当需要很多模块时。

问题:

  • macports - 默认 5.12 可选 5.14。不幸的是,许多macports 有错误的依赖关系,准确地询问 5.12,当您遇到 5.14 时遇到问题您的默认 perl 将是 5.14,并且某些软件包将安装和使用 5.12 :(。

  • perlbrew - 非常好和容易,但这里有一个缺点。当你想用 macports 安装一些包并且依赖于 macport 的 perl 时 - 它被安装了。因此,您将获得一个 macport 的 perl(适用于已安装的软件包和 perlbrew perl)。更糟糕的是,您的例如 5.14 perlbrew 无法与 macports(默认 5.12)一起正常播放。例如 p5-GD、ImageMagick 和许多其他的。

  • 自制- IMO,太可怕了。到达推荐rm -rf /usr/local的部分时停止阅读文档。(当然,所有数据,例如mysql)。也许现在更好了。

  • fink,和macports一样的问题。

我的解决方案:

简单地使用 macports 版本进行真正的开发和 perlbrew 仅用于测试(但不使用依赖的二进制文件,如 GD 等)。当想要“perlbrew”采购它的 shell-start-files 时,否则不使用 macports。

另一个痛苦的来源是 - 尝试首先安装 macports 版本的 perl 模块(因为一致性和依赖性)并且只有当 macports 版本不存在或需要最新的 cpan 版本时 - 使用cpanm. CPAN 版本 Extutils::Makemaker 不喜欢 macports 版本 - 并且在使用cpanm.

真正的痛苦。Macports 迫切需要一个新的 perl - maintenaier,他将清理错误的依赖项并制作 macports 版本,cpanm它将正确安装 cpan 版本的模块作为 macport 包。几年前 FreeBSD 就有了一些东西 - cpan 模块进入 BSDPAN 捆绑包中,可以使用 pkg_* 命令进行管理。

所以结果:我目前不知道任何简单的 OS X perl 用法。当你想立即使用一些依赖于 perl 的软件时,你必须自己编译它们(有时它们不会编译 - 所以你需要 OSX 的补丁版本,所以开始使用 macports 或 homebrew 和......痛苦.. ;(

正如 Sinan 已经说过的那样 - 这些安装中的任何一个都不会干扰您的系统 perl,但您可能首先开始使用 cpan 和系统 perl 并将一些模块安装到 /Library..

IMO,你可以忍受它。只需安装 macports 并开始使用它。但是,如果您想要一些 perl-repair-installation - 可能更好的地方是:https ://apple.stackexchange.com/ 。

于 2012-06-17T01:59:11.673 回答