Perl 如何控制舞者网络应用程序';什么是部署?

Perl 如何控制舞者网络应用程序';什么是部署?,perl,dancer,Perl,Dancer,假设我有一个独立的舞者网络应用程序。我可以通过运行make dist,获取tarball,然后通过cpanm或类似的方式将其部署到主机上。然而,我似乎找不到如何控制这种部署。当我只是在应用程序上进行dist,然后在其他地方安装应用程序时,它似乎只是安装了应用程序的模块。但是,应用程序脚本、各种html文件和模板以及环境配置文件没有安装到本地文件系统 从系统a上的webapp->tarball->系统b上的webapp的正确方式是什么 编辑: 对不起,我应该澄清一下,我知道我可以手动完成整个过程。

假设我有一个独立的舞者网络应用程序。我可以通过运行make dist,获取tarball,然后通过cpanm或类似的方式将其部署到主机上。然而,我似乎找不到如何控制这种部署。当我只是在应用程序上进行dist,然后在其他地方安装应用程序时,它似乎只是安装了应用程序的模块。但是,应用程序脚本、各种html文件和模板以及环境配置文件没有安装到本地文件系统

从系统a上的webapp->tarball->系统b上的webapp的正确方式是什么

编辑:

对不起,我应该澄清一下,我知道我可以手动完成整个过程。我只是感到惊讶,没有一种快速的方法可以通过几个命令进行安装,或者在应用程序中指定各种组件可以安装的位置

由于我在很大程度上使用了cpanm,这简化了系统B上的工作,因为我可以将其提取到一个目录中,更改到目录中,运行“cpanm”,然后将依赖项和应用程序的模块安装到系统库中

但是,这会导致应用程序模块同时位于/lib/和system perllib安装路径中。这还意味着用户需要了解一些perl


我想我只是想知道,自从三年前被问到以后,情况是否发生了变化。随着现代Perl技术的发展,这类问题似乎已经得到了解决。

这里有一种方法。在system-a上创建应用程序:

dancer -a Foo
cd Foo
perl Makefile.PL
make dist
scp Foo-0.1.tar.gz system-b:
ssh system-b
在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
此方法将您的应用程序安装到/opt/your app。您的所有配置文件、脚本等都将包含在一个文件夹中

<>你可能想考虑的是用你的应用程序捆绑所有的DEP。你可以在system-a上这样做。(请注意,这要求system-a和system-b具有相同的体系结构)捆绑DEP的一种简单方法是使用App::cpanminus:

cpanm -L extlib Dancer Plack YAML # and any other deps
然后,当您部署并启动应用程序时,您将执行以下操作:

perl -Ilib -Iextlib/lib/perl5 -Iextlib/lib/perl5/x86_64-linux ./bin/app.pl
这种方法使您不必在system-b上安装任何东西。您只需提取应用程序并运行它即可