位置: 编程技术 - 正文

perl 模块打包加入外部依赖程序(perl package)

编辑:rootadmin

Perl 社区并不是所有的东西都发布在 CPAN 上。甚至专门有一个 Module::ThirdParty 模块记录这些非 CPAN 的 perl 项目列表。其中最有名的应该就属写博客的 Movable Type 和做监控的 SmokePing 了。

但是如果个人图方便又想把 smokeping 打包方便部署使用的时候,就会发现一点小问题:打包成rpm,很多 perl 的依赖模块不一定在系统 repo 里存在;打包成 perl 的模块,smokeping 最常用的几个 probe 比如 fping、curl 什么的,又是非 perl 程序,cpanm 没法解决这个 requires_external_bin ,最多只能报错退出。

其实这里可以采取一些别的办法,虽然笨一些,但是解决问题。

首先还是让我们创建一个示例模块:

然后就会在本目录下创建一个 Alien-FPing 目录,自带好了 Build.PL 等模块文件。这里使用了 Alien:: 的名字空间,是一个潜规则,有些项目依赖 C 源码的库和头文件,就用 perl 包一层来安装,都放在这个空间下,比如 Alien::V8, Alien::Gearmand, Alien::IE7 等等。

现在让我们下载 fping 的源码放到模块里:

接下来应该就是编写 Build.PL 了。不过为了尽量让 Build.PL 看起来简洁而且一眼看出目的。我们最好把编译操作单独定义一个模块来使用:几乎就是调用 shell 而已,唯一需要讲一下的就是这个 ACTION_build。这是 Module::Build 定义好的提供给 subclass 用的方法,事实上 ./Build help 看得到的所有 action 都有类似的方法可以用。

然后稍微修改一下 Build.PL 如下:

把 Module::Build 替换成 Alien::FPing::Build 而已,其他都不用动。

然后试一下吧:

看到编译输出,并且成功安装有 /usr/sbin/fping 了吧。现在可以打包了。注意默认生成的 ignore.txt 里,是排除掉了 inc 目录的,需要去除掉,然后修改 MANIFEST 文件加入 inc 和 src 里的文件,然后再打包出来的 perl 模块就可以直接用了。

推荐整理分享perl 模块打包加入外部依赖程序(perl package),希望有所帮助,仅作参考,欢迎阅读内容。

perl 模块打包加入外部依赖程序(perl package)

文章相关热门搜索词:perl怎么安装包,perl怎么安装包,perl怎么安装包,perl模块安装,perl模块安装,perl打包exe,perl package,perl打包exe,内容如对您有帮助,希望把文章链接给更多的朋友!

一个perl扩展正则表达式代码分析 my$ip="..0.1|..0.2|..0.1";if($ip=~/^(?:((?:d{1,3}.){3}d{1,3})(?=(?:|(?!1)(?1))*z)|)*(?1)$/x){print"matchn";}根据perlre文档的说明,一点一点解释。首先是/x,

perl实现blog备份的脚本代码 之前总不重视自己的博客,上回一丢才心疼,现在重视起来,决定定期备份sql。写个小脚本如下:#!/usr/bin/perlusewarnings;usestrict;useMySQL::Backup;useMail::Sender;o

perl中子程序中参数的两种引用(传递)方式介绍 下面是一个例子:usestrict;#这里是两个数组my@i=('1','2','3');my@j=('a','b','c');#在进行处理之前,我们把他们先打印出来,看一看他们的样子print"Inmainprogrambefor

标签: perl package

本文链接地址:https://www.jiuchutong.com/biancheng/372536.html 转载请保留说明!

上一篇:perl的POD权限问题处理(perl do)

下一篇:一个perl扩展正则表达式代码分析(perl keys)

  • 可转债中签后怎么操作卖出
  • 员工产假个税系统改为非正常要更正申报吗?
  • 成本费用总额占营业收入比重
  • 合并两公司的帐务怎么做
  • 其他应收款报表数据怎么取
  • 认缴注册资本的风险
  • 增值税一般纳税人是什么意思
  • 发生销货退回需要退回发票么
  • 长期投资换入固定资产如何处理
  • 保险金扣税吗
  • 货物已到发票未到怎么做账
  • 印花税缴款了发现报错了怎么办?
  • 没有实收资本是负债吗
  • 用金税盘怎样认证抵扣
  • 开具房屋租赁发票税率
  • 会务费 发票
  • 调整以前年度应付
  • 提高并购成本
  • 公司汽车保养费用怎么做账
  • 个体户需要对公户吗
  • 个税退手续费要多久到账
  • 建筑工程劳务费占比例
  • 小规模纳税人可以开增值税专用发票吗
  • 税控服务费政策
  • linux系统文件压缩命令
  • 贷款利息 发票
  • rds selected
  • win11自动更新卡在94%
  • 涉税服务实务重点总结
  • 虚假财务报表的法律后果
  • 加利福尼亚湾在哪
  • ros urdf
  • 将时间序列转化为图像
  • 初学者安装visual studio
  • 阿里pv
  • 持续ping ip的命令
  • 车保险费中的车险是什么
  • etc充值卡发票可以入账吗
  • 个体户办营业执照网上怎么申请
  • 资产盘盈盘亏处理
  • 研发支出相关科目
  • 我国营改增后,一般纳税人适用的增值税基本税率
  • 销售折扣增值税例题
  • 法人章两个字的怎么印
  • 支付版权使用费怎么记账
  • 如何修改mysql
  • 给中间人回扣犯罪吗
  • 中药和中药饮片有区别吗
  • 开销项负数发票怎么做账
  • 递延所得税资产账务处理
  • 增值税税率调整后,合同价应该调整吗
  • 劳务派遣公司主营业务成本是什么
  • 营改增后工程结算的账务处理
  • 旅行社代订机票发票报销
  • 以前年度损益调整借贷方向
  • 不开票收入怎么做账
  • 建账时都要建哪些科目
  • mysql里的数据库在哪个位置
  • 微软9月30日将发行股票
  • mac系统的控制面板在哪
  • macbook key
  • centos7批量创建用户
  • win8系统如何卸载软件
  • lnmp一键安装包 linux
  • css样式的使用
  • perl 批量注释
  • ExtJS 2.0实用简明教程之应用ExtJS
  • url跟uri
  • texture packer工具
  • linux命令行常用操作
  • jquery get(0)
  • 蛋哥的日常
  • javascript怎么学好
  • kmp算法理解
  • 广东国家电子税务全电发票
  • 企业所得税税率10%
  • 噼里啪啦财务公司加盟
  • 河南省郑州市巩义市籍贯怎么写
  • 快递公司开票
  • 存量房交易税费申报表是契证吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设