新款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
答案 0 :(得分:0)
尝试App::perlbrew和local::lib?第一个用于管理perl的多个安装(虽然不知道它是否可以执行现有的安装),第二个用于安装更多特殊的库。如果需要的话,每个perl版本和每个应用程序都可以很容易地拥有一组cpan库。