如何在Mac OS X上将Perl环境和模块恢复到已知状态?

时间:2012-06-16 14:33:40

标签: perl osx-lion

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

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

多年来,我尝试使用finkMacPortshomebrew,我怀疑此时我有许多不兼容性。

在我发布我的最新问题之前,我真正想做的是用Perl开始清理,好像我有一个干净的OSX-Lion安装。有没有办法在不擦除磁盘和从头开始安装OSX的情况下执行此操作?

2 个答案:

答案 0 :(得分:4)

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

在那之后,你将被留下操作系统给你的东西。独自离开。安装perlbrew(这样你就可以安装多个perl并在它们之间切换而不会打扰系统的其余部分)和cpanm(因为它更有趣;-)并从那里拿走它。

请务必阅读您使用的所有文档,以便了解他们的工作以及他们的工作方式。

PS:如果你出于某种原因强制任何finkportshomebrew践踏系统目录,那你就错了。如果我是你,我会选择在这种情况下从头开始安装(但请务必先备份你的文件)。我个人认为即使/usr/local作为自制开发者提倡者也不是一个好主意,但如果你这样做,至少他们会给你一个uninstall script

答案 1 :(得分:3)

当需要很多模块时,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文件时,否则不会使用macports。

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

真正的痛苦。 Macports非常需要一个新的perl - 维护者,他将清理错误的依赖关系并制作cpanm的macports版本将正确安装cpan版本的模块作为macport包。几年前FreeBSD有些东西 - 使用pkg_ *命令可以管理cpan模块到BSDPAN包中。

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

正如Sinan已经说过的那样 - 这些安装中的任何一个都不会干扰你的系统perl,但是你可能先用system perl开始使用cpan并在/ Library中安装了一些模块。

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