新的 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。
我发现我可以在控制台级别使用 Apple 建议的“默认写入”命令在终端上成功切换 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
然后我决定,在使用“默认写入”命令切换到 perl 5.8.9 后,再次检查“sudo perl -eshell -MCPAN”可能是个好主意,但这似乎没有帮助。
有谁知道为什么我会得到这些结果?您对不使用预编译二进制文件的更好方法有什么建议,因为我从源代码编译没有任何问题。
提前致谢。
潘道格