新的Mac Mini Server附带OSX10.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下找到。
我发现,通过在终端上使用Apples建议的"defaults write“命令,我可以在控制台级别上成功地在perl 5.8.9和5.10.0之间进行切换。
例如,由于OSXServer10.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 5.10.0的默认版本安装了以下所需的perl模块:
sudo perl -eshell -MCPAN
install DBI
install CGI
install HTML::Template
install DBD::Pg我使用DBD:Pg连接到PostgreSQL数据库,这似乎也很好用。
但是,当我尝试从5.10.0切换到Perl 5.8.9时,在Apache中尝试使用相同的Perl代码时得到以下错误。
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然后我决定,在我使用“-eshell -MCPAN”命令切换到Perl5.8.9之后,再看看"sudo perl -eshell write“可能是个好主意,但是这似乎没有什么帮助。
有人知道为什么我会得到这些结果吗?如果不使用预编译的二进制文件,你有什么建议,因为我从源代码编译没有任何问题。
提前谢谢。
DougPan
发布于 2010-08-10 02:23:31
试过App::perlbrew和local::lib吗?第一个是为管理多个perl安装而设计的(尽管不知道它是否可以处理现有的安装),第二个是为了……安装了更多库的特殊情况。如果需要,为每个perl版本和每个应用程序提供一组cpan库将非常容易。
https://stackoverflow.com/questions/3442525
复制相似问题