10

我正在尝试使用纸箱作为部署容器。但是我遇到了一个小问题。我不知道,如何安装私有模块。

创建了一个快速测试模块:

h2xs -AX Foo::Bar

tree Foo-Bar/
Foo-Bar/
├── Changes
├── lib
│   └── Foo
│       └── Bar.pm
├── Makefile.PL
├── MANIFEST
├── README
└── t
    └── Foo-Bar.t

打包:tar cvfz Foo-Bar-0.01.tar.gz Foo-Bar/ 将包复制到vendor/cache目录。

ls vendor/cache/
Foo-Bar-0.01.tar.gz  Try-Tiny-0.18.tar.gz

cat cpanfile
requires 'Foo::Bar', '0.01';
requires 'Try::Tiny', '0.18';

carton install --cached
Installing modules using /home/donpedro/Garbage/Carton/cpanfile
! Couldn't find module or a distribution Foo::Bar (0.01)
Successfully installed Try-Tiny-0.18
! Installing the dependencies failed: Module 'Foo::Bar' is not installed
! Bailing out the installation for /home/donpedro/Garbage/Carton/.
1 distribution installed
Installing modules failed

也尝试了 Milla 默认模块(教程示例,milla new Dist-Name),但没有结果。文档提到,对于 DarkPan 模块,只需将模块放入 vendor/cache 目录,我正在尝试这样做。官方 CPAN 模块可以直接放到 vendor/cache 目录中。

接下来要尝试什么或如何解决我的问题?:)

编辑: carton IRC 频道中的 miyagawa 和 lejeunerenard 给了我这个信息:为了这个目前工作,需要 Carton 1.1(当前稳定的 1.0)和新的 cpanfile 开发版本。cpanfile 有新选项 -dist => '/path/to/Foo-Bar.tar.gz' argument for the requires method

由于我懒得成为早期采用者,我将使用 Carton 来获取 CPAN 捆绑包,使用 cpanm 来获取私有捆绑包。

感谢宫川和 lejeunerenard。

4

2 回答 2

2

carton IRC 频道中的 miyagawa 和 lejeunerenard 向我提供了以下信息:为此,目前需要 Carton 1.1(当前稳定的 1.0)和新的 cpanfile 开发版本。cpanfile 为 requires 方法添加了新选项 -dist => '/path/to/Foo-Bar.tar.gz' 参数

截至目前(28.12),仍然没有 Carton 版本的凹凸,git 1.1 分支已经 3 个月大。所以事情需要一点时间。Pinto 目前似乎正在积极开发中。

于 2013-12-28T21:34:49.093 回答
0

你也可以将你的模块放在 local/lib/custom(或其他)中,然后在你的 perl 应用程序中使用该 lib - 或将其添加到 PERL5LIB 或使用 perl -Ilocal/lib/custom。

于 2015-06-19T20:52:19.030 回答