给出一个模块,我如何不仅创建该模块的转速,还创建所有模块依赖项的转速?
从创建测试模块开始
$ module-starter --author "Evan Carroll" --email "me@evancarroll.com" --module Foo::Bar
Added to MANIFEST: Changes
Added to MANIFEST: ignore.txt
Added to MANIFEST: lib/Foo/Bar.pm
Added to MANIFEST: Makefile.PL
Added to MANIFEST: MANIFEST
Added to MANIFEST: README
Added to MANIFEST: t/00-load.t
Added to MANIFEST: t/manifest.t
Added to MANIFEST: t/pod-coverage.t
Added to MANIFEST: t/pod.t
Added to MANIFEST: xt/boilerplate.t
Created starter directories and files
现在,我编辑Makefile.pl
,并添加Mojolicious
作为先决条件。
...
PREREQ_PM => {
'Mojolicious' => '0'
....
现在我可以跑步
perl Makefile.PL
make dist
但是跑步,
$ sudo cpantorpm -y /tmp/yum /tmp/Foo-Bar/Foo-Bar-0.01.tar.gz
我明白了
error: Failed build dependencies:
perl >= 5.006 is needed by perl-Foo-Bar-0.01-1.noarch
perl(ExtUtils::MakeMaker) is needed by perl-Foo-Bar-0.01-1.noarch
perl(Mojolicious) is needed by perl-Foo-Bar-0.01-1.noarch
这很有意义,但是我希望它为这些要求创建RPM。我希望Foo::Bar
要求从cpan生成的代表Mojolicious的rpm,并且要使构建系统输出两个RPM(Foo::Bar
的一个rpm也需要提供的{{1} } RPM)。
答案 0 :(得分:2)
要绕过依赖地狱太容易了。我会去一些项目 像cpan-dependecy一样。有人已经做了 为您工作。
这是它的工作方式:
1)如何安装需要以下CPAN模块。
- CPANPLUS
- RPM :: Specfile
2)如何使用创建Linux :: Smaps的rpm bin / cpan-dependency.pl --conf = config / conf.yml Linux :: Smaps
3)conf.yml
- filter_requires ..从软件包中删除指定的需求。
- build_skip ..跳过以构建软件包。
- build_requires ..在构建软件包之前,先构建并安装指定的软件包。
- 需要..将指定的程序包添加到程序包的依赖项中。
您需要调整conf.yml以满足您的依赖。
要构建您的项目,请执行以下操作:
bin/cpan-dependency.pl --conf=config/conf.yml Foo::Bar