2012-08-30 7 views
6

시스템 웹 브라우저에서 시스템 perl v5.10이있는 Catalyst 응용 프로그램을 실행하고 싶습니다. 나는 적어도 v5.12 앱을 사용하고 싶다. 나는 시스템 perl에 간섭하고 싶지 않다.웹 응용 프로그램에 비 시스템 펄을 사용하는 권장 방법은 무엇입니까?

Google 시스템 관리자는 앱이 있다고 주장합니다. non-shell 사용자 (예 : "nobody")가 실행해야합니다.

개발을 위해 non-system perl을 사용할 수 있음을 알고 있습니다. 그러나 라이브 버전을 실행하는 가장 좋은 방법은 무엇인지 모르겠습니다. 입니다. 사람들은이 상황을 어떻게 처리 할 것을 권고합니까?

답변

4

nobody (즉, 모두)은 perl 실행 파일 및 모든 라이브러리 (@INC 디렉토리 아래의 모든 항목)에 대한 읽기 및 실행 권한을 부여합니다.

모든 응용 프로그램 스크립트 (최소한 ./scripts 디렉토리의 모든 항목 포함)에서 사용하려는의 인스턴스로 변경하십시오. 또는 유연하게 말하려는 경우 shebang 행을 원하는 perl 실행 파일을 가리키는 기호 링크로 지정하십시오. nobody도이 링크에 액세스 할 수 있는지 확인하십시오.

기호 링크가 다른 버전의 Perl을 가리킬 때마다 응용 프로그램을 다시 시작하십시오.

6

여러분은 perlbrew에 익숙하므로 Perl을 설치하는 데 계속 사용할 수 있습니다.

perlbrew install 5.16.1 --as=5.16.1t -Dusethreads 

적절한 사용 권한을 부여했는지 확인하십시오.

chmod a+x /home/djh/ 
chmod a+x /home/djh/perl5/ 
chmod a+x /home/djh/perl5/perlbrew/ 
chmod a+x /home/djh/perl5/perlbrew/perls/ 
chmod -R a+rX /home/djh/perl5/perlbrew/perls/5.16.1t/ # Capital "X"!!! 

그런 다음 스크립트에 다음 오두막 줄을 사용하십시오 :

#!/home/djh/perl5/perlbrew/perls/5.16.1t/bin/perl 

을하지만 어쩌면 당신은 당신의 가정에서 그것을하지 않으려는 $PERLBREW_ROOT입니다 /home/djh/perl5/perlbrew (기본값) 말. 그렇다면 다음 작업을 수행 할 수 있습니다.

cd /tmp 
wget http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/perl-5.16.1.tar.bz2 
tar xvjf perl-5.16.1.tar.bz2 
cd perl-5.16.1 
sh Configure -des -Dprefix=/opt/perls/5.16.1t -Dusethreads 
make test 

sudo mkdir /opt/perls/5.16.1t 
sudo chown djh:djh /opt/perls/5.16.1t 
make install 

설치 프로그램이 사용 권한을 올바르게 설정합니다. 당신이 할 일은

#!/opt/perls/5.16.1t/bin/perl 

에 오두막을 설정 ("t"는 나사 빌드에 대한 내 규칙입니다. 당신이 스레드를 지원하지 않을 경우 -Dusethreads를 제거합니다.)

+0

@djh, 추가됨 내 대답에. – ikegami

관련 문제