2
24
2011
0

用 Shipwright 构建 Dancer 环境

Shipwright 为在虚拟主机上构建 Perl 应用带来了福音。

Shipwright 是一个软件构建和捆绑环境,用于创建自含的(self-contained)的软件环境。CPAN为我们带来了大量便利高效的模块,但也因此 CPAN 模块通常都有一些依赖关系,更不要说像 Catalyst 那样的庞然大物。Shipwright就是让我们将自己想要的模块以及它的所有依赖包捆绑到一个独立的环境,并且可以方便升级已有的环境或继续添加新包。当然,Shipwright 可以构建多样的软件环境,并不局限于Perl/CPAN。

下面以构建 Dancer 环境作为 Shipwright 的一个最简使用例子。我的系统环境是 Fedora 14。

cpan Shipwright
shipwright create -r fs:/tmp/daner-shipyard
shipwright import -r fs:/tmp/daner-shipyard/ cpan:Dancer
cd /tmp/daner-shipyard/
./bin/shipwright-builder --install-base /tmp/dancer-vessel --skip-test
cd /tmp/dancer-vessel

第1行:安装 Shipwright (希望近期能将 Shipwright 推到 Fedora 主库)

第2行:构建一个 shipyard (造船厂)目录,用于存在源码

第3行:载入 Dancer 源码,自动拉取完整依赖(不包含你正在使用的 Perl 的标准包)

第4行:进入 shipyard 目录

第5行:构建 Dancer 及其完整依赖,安装到 vessel (大船)目录

第6行:进入 vessel 目录,这个目录也就存放着完整的 Dancer 环境

下面来测试一下 Dancer。

如果是用 rpm/deb 的发行版,要先确定是否安装了 CGI 模块,在 Fedora 中可以这样安装:

su -c "yum install 'perl(CGI)'"

然后在当前目录 /tmp/dancer-vessel 创建一个测试小脚本 mydaner.pl:

#!/usr/bin/perl
use lib 'lib/perl5';
use Dancer;

get '/' => sub {
    return 'Hello World!';
};

start;

关键是第2行,将 vessel 的目录加入到 @INC 中。

运行脚本:

perl mydancer.pl

点击: http://0.0.0.0:3000/

Hello World!

 

Category: 未分类 | Tags: | Read Count: 1714

Login *


loading captcha image...
(type the code from the image)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com