6.8.使用 Perl
如果 MASTER_SITES
被设置为 CPAN
, 通常会自动选择正确的子目录。如果默认的子目录是错误的, 可以用 CPAN/Module
来改变它。MASTER_SITES
也可以设置为旧的 MASTER_SITE_PERL_CPAN
, 那么 MASTER_SITE_SUBDIR
的首选值就是顶层的层次结构名称。例如,p5-Module-Name
的推荐值是 Module
。顶层的层次结构可以在 cpan.org 上查看。这可以在模块的作者发生变化时保持 Port 的工作。
这一规则的例外情况是, 相关的目录不存在, 或 distfile 不存在于该目录中。在这种情况下, 使用作者的 id 作为 MASTER_SITE_SUBDIR
是允许的。可以使用 CPAN:AUTHOR
宏, 它将被翻译成哈希的作者目录。例如,CPAN:AUTHOR
将被转换为 authors/id/A/AU/AUTHOR
。
当一个 port 需要 Perl 支持时, 它必须设置 USES=perl5
, 以及 perl5 USES 描述中的可选 USE_PERL5
表 14. 使用 Perl 的 Port 的只读变量
Read only variables | Means |
---|---|
| Perl 5 解释器的完整路径,可以是系统中的,也可以是从一个 Port 安装的,但没有版本号。当软件需要 Perl 解释器的路径时,就使用这个。要替换脚本中的“ |
| 安装的 Perl 的完整版本(例如, |
| 已安装的 Perl 版本是一个整数,形式为 |
| Perl 存储依赖架构的库的地方。默认为 |
| 所安装的 Perl Port 的名称(例如,“perl5”)。 |
| 放置特定站点 Perl 包的目录名称。这个值被添加到 |
注意
没有官方网站的 Perl 模块的 port 必须在 Makefile 的 WWW 行中链接到 cpan.org。首选的 URL 形式是 https://search.cpan.org/dist/Module-Name/ (包括尾部的斜线)。
注意
请不要在依赖关系声明中使用 ${SITE_PERL}。这样做的前提是 perl5.mk 已经包含在内, 但这并不总是真实的。如果这个 port 的文件在以后的升级中被移动, 依赖于这个 port 的 port 将会有错误的依赖关系。声明 Perl 模块依赖关系的正确方法在下面的例子中显示。
例67. Perl 依赖性实例
对于安装手工页面的 Perl port, 可以在 pkg-plist 中使用宏 PERL5_MAN3 和 PERL5_MAN1。举例来说、
可以替换为
注意
其他部分(2中的x和4至9)没有
PERL5_MAN_x_
宏,因为这些宏会被安装在常规目录中。
例68. 一个只需要 Perl 来构建的 Port
由于默认的 USE_PERL5 值是建立和运行的,因此将其设置为:
例69. 一个同样需要用 Perl 进行修补的 Port
时常使用 sed(1) 进行修补是不够的。当使用 perl(1) 更容易时,请使用:
例70. 一个需要
ExtUtils::MakeMaker
来构建的 Perl 模块大多数 Perl 模块都有一个 Makefile.PL 配置脚本。在这种情况下,设置:
例71. 一个需要
Module::Build
来构建的 Perl 模块当一个 Perl 模块带有 Build.PL 配置脚本时,它可能需要 Module::Build,在这种情况下,设置
如果它需要
Module::Build::Tiny
,请设置
最后更新于