2

新的 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”可能是个好主意,但这似乎没有帮助。

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

提前致谢。

潘道格

4

1 回答 1

0

试过App::perlbrewlocal::lib吗?第一个是为管理 perl 的多个安装而设计的(虽然不知道它是否可以做现有的)第二个是为了安装......更多特殊情况的库。如果您需要,为每个 perl 版本和每个应用程序拥有一组 cpan 库将变得非常容易。

于 2010-08-09T18:23:31.073 回答