如何在Mac OS X 10.6服务器上使用Apache2在Perl 5.8和5.10版本之间切换

时间:2010-08-09 17:25:56

标签: perl perl5.8

新款Mac Mini Server附带OS X 10.6,并且原生支持(自带)两个版本的Perl,Apple默认包含这些版本。

这些可以在以下目录中找到: /Library/Perl/5.8.9 和 /Library/Perl/5.10.0 我还在/Library/Perl/Updates/5.8.9和/Library/Perl/Updates/5.10.0下找到了。

我发现通过使用苹果建议的“默认写入”命令,我可以在控制台级别成功地在perl 5.8.9和5.10.0之间切换。

例如,由于OS X Server 10.6的默认设置为5.10.0,我已成功使用以下两个命令使用32位切换到perl 5.8.9,并且一切都在控制台级别按预期工作。

sudo defaults write /Library/Preferences/com.apple.versioner.perl Version 5.8.9
sudo defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes

我成功地使用CPAN shell安装了以下所需的Perl模块,就像默认版本的perl 5.10.0一样:

sudo perl -eshell -MCPAN
install DBI
install CGI
install HTML::Template
install DBD::Pg

我使用DBD:Pg连接到PostgreSQL数据库,这看起来也很好。

但是,当我尝试从5.10.0切换到Perl 5.8.9时,我在尝试使用相同的Perl代码时在Apache中遇到以下错误。

Server error!
  The server encountered an internal error and was unable to complete your request.
  Error message:
  Premature end of script headers: login.pl
  If you think this is a server error, please contact the webmaster.
Error 500
  192.168.2.100
  Mon Aug 9 12:10:09 2010
  APACHE/2.2.14(UNIX)mod_ssl/2.2.14 OpenSSL/0.9.81

然后我决定通过使用“default write”命令切换到perl 5.8.9之后再次通过“sudo perl -eshell -MCPAN”这个东西可能是一个好主意但是这似乎没什么帮助

有没有人知道为什么我会得到这些结果? 如果不使用预编译的二进制文件,您对更好的方法有任何建议,因为我没有从源代码编译任何问题。

提前致谢。

DougPan

1 个答案:

答案 0 :(得分:0)

尝试App::perlbrewlocal::lib?第一个用于管理perl的多个安装(虽然不知道它是否可以执行现有的安装),第二个用于安装更多特殊的库。如果需要的话,每个perl版本和每个应用程序都可以很容易地拥有一组cpan库。