새 Mac Mini Server는 OS X 10.6과 함께 제공되며 두 버전의 Perl을 기본적으로 지원합니다 (Apple과 함께 제공). 기본적으로 Apple에 포함되어 있습니다 좋은 이유로.Mac OS X 10.6 Server 및 Apache2에서 Perl 5.8 및 5.10 버전을 전환하는 방법
이들은 다음 디렉토리에서 찾을 수 있습니다 : 나는 또한 /Library/Perl/Updates/5.8.9에서 찾을 /Library/Perl/5.8.9 및 /Library/Perl/5.10.0 및/라이브러리/Perl/Updates/5.10.0.
사과를 사용하여 "defaults write"명령을 사용하여 콘솔 수준에서 perl 5.8.9와 5.10.0 사이를 성공적으로 전환 할 수 있음을 발견했습니다.
예를 들어, OS X Server 10.6이 기본으로 5.10.0으로 설정되어 제공되기 때문에 다음 두 명령을 사용하여 32 비트를 사용하여 5.8.9로 전환하면 콘솔 수준에서 예상대로 작동합니다. 나는 DBD를 사용
sudo perl -eshell -MCPAN
install DBI
install CGI
install HTML::Template
install DBD::Pg
:
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이 너무 펄 5.10.0의 기본 버전과 같은 쉘 사용하여있는 모듈의 다음 원하는 펄을 설치에 성공 대학원은 PostgreSQL을에 연결 데이터베이스 및 너무 잘 작동하는 것 같다.
그러나 5.10.0에서 Perl 5.8.9로 전환하려고하면 동일한 Perl 코드를 사용하려고 할 때 Apache에서 다음과 같은 오류가 발생합니다. 나는 'didn를 그 그러나 "기본 쓰기"명령을 사용하여 5.8.9을 펄로 전환 한 후
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
은 그때 좋은 생각이 다시 "sudo는 펄 -eshell -MCPAN"물건을 통해 갈 수 있습니다 결정 도와 줄 것 같아.
왜 이런 결과가 나옵니까? 소스 코드에서 컴파일하는 데 문제가 없으므로 미리 컴파일 된 바이너리를 사용하지 않고 더 나은 방법을 제안합니다.
미리 감사드립니다.
DougPan
는
"Apple은 정당한 사유로 기본 설정을 포함 시켰습니다." -> 정말로. 그들은 정말로 5.10.0을 제거해야하고 5.10.1 - 5.10.0과 함께 배송하는 것은 좋은 일을 위해 포기되어야한다는 것을 의미하는 다양한 문제가 있습니다. 일반적으로 시스템 perls 만 남겨두고 새 버전을 별도로 설치하는 것이 좋습니다. CPAN 모듈을 자유롭게 설치할 수 있으며 일반적으로 시스템 설치는 그대로 두십시오. [이 우수 가이드] (http://stackoverflow.com/questions/398221/how-do-you-manage-perl-modules-when-using-a-package-manager/398397#398397)를 참조하십시오. – Ether