2012-08-30 12 views
6

Chcę uruchomić aplikację Catalyst na moim serwerze sieciowym, który ma system perl v5.10. Chcę używać co najmniej wersji 5..12 dla aplikacji. I nie chcę wtrącać się w systemowy perl.Jaki jest zalecany sposób korzystania z perla nie systemowego dla aplikacji internetowej?

Nasz sysadmin nalega, że ​​aplikacja. być uruchamianym przez użytkownika nieposiadającego powłoki (np. "nikt")

Wiem, że mogę używać perlbrew do korzystania z nie-systemowego perla do programowania, ale nie jestem pewien, jaki jest najlepszy sposób na uruchomienie wersji na żywo jest. Jak ludzie radzą radzić sobie z tą sytuacją?

Odpowiedz

4

Daj nobody (tj. Każdemu) odczytanie i wykonanie uprawnień do plików wykonywalnych perl i wszystkich bibliotek (wszystko pod katalogami @INC).

Zmień linię półksiężyca we wszystkich skryptach aplikacji (w tym co najmniej wszystko pod katalogiem ./scripts) na wystąpienie perl, którego chcesz użyć. Lub jeśli chcesz być elastyczny o out, wskaż linię shebang do dowiązania symbolicznego, które wskazuje na pożądany plik wykonywalny perl. Upewnij się, że ten link jest również dostępny pod numerem nobody.

Zrestartuj aplikację za każdym razem, gdy wskażesz dowiązanie symboliczne do innej wersji Perla.

6

Ponieważ znasz perlbrew, możesz go użyć do zainstalowania Perla.

perlbrew install 5.16.1 --as=5.16.1t -Dusethreads 

Po prostu upewnij się, że dajesz odpowiednie uprawnienia. Załóżmy, że Twoja $PERLBREW_ROOT jest /home/djh/perl5/perlbrew (domyślnie):

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"!!! 

Następnie kliknąć na poniższy shebang linii w skrypcie:

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

Ale może nie chcesz go w swoim domu. Jeśli tak, to możesz:

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 

Instalator ustawi uprawnienia poprawnie. Wszystko co musisz zrobić, to ustawić shebang do

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

("t" jest moim Konwencja gwintowany buduje. Usuń -Dusethreads jeśli nie chcą pomocy gwintu.)

+0

@djh, Dodano do mojej odpowiedzi. – ikegami

Powiązane problemy