2011-06-10 4 views
8

내가 댄서 웹 응용 프로그램을 포함하고 있다고 가정 해보십시오. make dist를 실행하고 tarball을 얻은 다음 cpanm 또는 유사한 방법으로 설치하여 호스트에 배포 할 수 있습니다. 그러나이 배포를 제어하는 ​​방법을 찾지 못하는 것 같습니다. 방금 응용 프로그램을 dist로 만들었 으면 다른 곳에 응용 프로그램을 설치하면 응용 프로그램의 모듈을 설치하는 것처럼 보입니다. 그러나 응용 프로그램 스크립트, 다양한 html 파일 및 템플릿, 환경 설정 파일은 로컬 파일 시스템에 설치되지 않습니다.Dancer 웹 응용 프로그램의 배포를 어떻게 제어합니까?

시스템 b에서 시스템 a -> tarball -> webapp에서 webapp로 이동하는 올바른 방법은 무엇입니까?

편집 :

미안 해요, 난 내가 수동으로 모든 일을 할 수있는 이해 명확히해야합니다. 몇 가지 명령을 사용하여 설치하는 빠른 방법이 없거나 다양한 구성 요소를 설치할 수 있다고 느낄 수있는 앱 자체를 지정하는 것이 간단합니다.

대부분의 경우 cpanm을 사용하기 때문에 시스템 B의 작업을 단순화하고 디렉토리로 추출한 후 변경하고 'cpanm'을 실행하십시오. 의존성과 앱의 모듈을 시스템 lib에 설치합니다.

그러나 앱 모듈은 <>/lib /와 시스템 perllib 설치 경로에 모두 있습니다. 또한 사용자가 perl에 대해 약간 이해해야한다는 것을 의미합니다.

나는 단지 What's the best system for installing a Perl web app?이 3 년 전에 질문을 받았기 때문에 사물들이 바뀌 었는지 알아 내려고 노력하고 있다고 생각합니다. 현대 펄의 최신 기술이 발전함에 따라 지금까지 처리 된 문제와 같은 것처럼 보입니다.

답변

5

여기에는 한 가지 방법이 있습니다. 시스템-A에 응용 프로그램을 만듭니다 시스템 B에

dancer -a Foo 
cd Foo 
perl Makefile.PL 
make dist 
scp Foo-0.1.tar.gz system-b: 
ssh system-b 

:

sudo tar xf Foo-0.1.tar.gz -C /opt 
cd /opt/Foo-0.1 
perl Makefile.PL # this will tell you the deps you need to install 
# install needed deps if any 
make 
sudo make install 
./bin/app.pl # this starts your app 

이 방법을 앱에/옵션/귀하의-앱을 설치합니다. 설정 파일, 스크립트 등은 모두 하나의 폴더에 포함됩니다.

귀하의 앱에 모든 deps를 묶는 것이 좋습니다. system-a에서이 작업을 수행합니다. 당신의 deps를 번들하는 쉬운 방법을 (이 같은 구조를 가지고 시스템 A와 시스템 B 필요하다는 것을 참고) 응용 프로그램 함께 :: cpanminus : 다음

cpanm -L extlib Dancer Plack YAML # and any other deps 

앱을 시작 배포 할 때, 당신은 할 것 이 방법은 그래서 당신은 시스템 B에 아무것도 설치할 필요가 없습니다 수 있습니다

perl -Ilib -Iextlib/lib/perl5 -Iextlib/lib/perl5/x86_64-linux ./bin/app.pl 

: 같은 것을. 방금 앱을 추출하여 실행할 수 있습니다.