3

新发布的 Mavericks 已从其存储库中删除了已弃用的模块“Switch.pm”。但是,我最近尝试构建 AOSP 源代码树,它以某种方式使用此模块生成“make-hash-tools.pl”

Mavericks 的 perl 版本为 5.16.2,其前身 Mountain Lion 的版本为 5.12.4。有没有办法降级我的 Perl?

编译错误如下所示:

  Can't locate Switch.pm in @INC (@INC contains: /Library/Perl/5.16/darwin-thread-\ 
  multi-2level /Library/Perl/5.16 /Network/Library/Perl/5.16/darwin-thread-multi-2level\
  /Network/Library/Perl/5.16 /Library/Perl/Updates/5.16.2\
  /System/Library/Perl/5.16/darwin-thread-multi-2level /System/Library/Perl/5.16\
  /System/Library/Perl/Extras/5.16/darwin-thread-multi-2level \
  /System/Library/Perl/Extras/5.16 .) at external/webkit/Source/WebCore\
  /make-hash-tools.pl line 23.

谢谢~!

4

6 回答 6

5

您可以使用perlbrew将 Perl 的并行版本安装在其自己的目录中,并带有自己的模块。目前,它允许您安装 Perl 早至 5.003_07,尽管 Perl Porters 并不支持所有这些安全修复程序。

不过,从 CPAN 安装 Switch可能会更简单。

于 2013-10-26T16:08:02.103 回答
3

看起来跑步sudo cpanm Switch --force对我有用

于 2013-10-28T15:39:00.937 回答
2

你也可以使用这个:

$ sudo defaults write '/Library/Preferences/com.apple.versioner.perl' Version 5.12

它使 perl 为大多数东西运行版本 12。不幸的是,不是为了apache...

于 2014-02-19T21:25:05.257 回答
1

在 10.9.2 上为我工作,没有“强制”。


cpan[2]> install Switch
Running install for module 'Switch'
Running make for C/CH/CHORNY/Switch-2.17.tar.gz
Fetching with LWP:

...一堆获取的东西...

CPAN.pm: Building C/CH/CHORNY/Switch-2.17.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for Switch
Writing MYMETA.yml and MYMETA.json

...一堆xcode许可证的东西...

cp Switch.pm blib/lib/Switch.pm
Manifying blib/man3/Switch.3pm
  CHORNY/Switch-2.17.tar.gz
  /usr/bin/make -- OK
'YAML' not installed, will not store persistent state
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/given.t ... ok       
t/nested.t .. ok   
t/switch.t .. ok       
All tests successful.
Files=3, Tests=590,  0 wallclock secs ( 0.04 usr  0.01 sys +  0.22 cusr  0.01 csys =  0.28 CPU)
Result: PASS
  CHORNY/Switch-2.17.tar.gz
  /usr/bin/make test -- OK
Running make install
Installing /Library/Perl/5.16/Switch.pm
Installing /usr/local/share/man/man3/Switch.3pm
Appending installation info to /Library/Perl/Updates/5.16.2/darwin-thread-multi-2level/perllocal.pod
  CHORNY/Switch-2.17.tar.gz
  /usr/bin/make install  -- OK

然后我运行了之前出现“Can't locate Switch.pm in @INC”错误的代码,并且代码运行良好。

于 2014-03-25T07:02:31.547 回答
0

我发现这些命令有效。

sudo perl -MCPAN -e shell

cpan > force install Switch 
于 2013-12-22T01:31:22.113 回答
0

我发现了另一个命令:

sudo cpan -f Switch

我必须执行该命令 2 次,但对我来说它适用于优胜美地。谢谢这个博客

于 2015-04-27T19:15:13.283 回答