2010-08-09 2 views
2

새 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

+0

"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

답변

0

App::perlbrewlocal::lib 시도? 첫 번째는 perl의 여러 설치를 관리하기 위해 설계되었습니다 (기존 패키지를 수행 할 수 있는지 여부는 모르겠지만). 두 번째는 설치 한 라이브러리의 특수한 경우입니다. 필요한 경우 각 perl 버전 및 각 응용 프로그램에 대해 cpan 라이브러리 1 세트를 갖는 것이 매우 쉽습니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 이미 Apache mod를 사용하는 경우를 제외하고는 문제없이 버전간에 전환 할 수 있습니다. – Dougpan