位置: 编程技术 - 正文

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)

  • 房产税城镇土地使用税申报期限
  • 缴纳个人所得税会计分录怎么写
  • 高档珍珠镶嵌
  • 小规模增值税免征额
  • 存货跌价准备的分录
  • 车位销售技巧
  • 目前哪些费用不能加计扣除
  • 标书的资金类型是什么
  • 小规模纳税人普票收入会计分录
  • 小企业准则固定资产折旧每月折旧多折了
  • 哪些车辆可退还车款
  • 已发货未收款怎么做会计分录
  • 购买的旧机械设备怎么办
  • 即征即退免所得税吗
  • 年末发票
  • 购买理财产品现金流量处理怎么做?
  • 报销个人费用如何定性
  • 购入的苗木种植一段时间后再销售要交增值税吗?
  • 小规模转一般纳税人生效时间
  • 医疗收费票据可以补打吗
  • 使用权资产什么时候开始使用
  • 税务机关未采集开票信息是什么意思
  • 公司承兑汇票怎么兑现
  • 冲红发票开错了怎么办
  • 网卡和网线都正确接法
  • mac软件打开提示意外退出
  • 预提费用新会计准则叫什么科目
  • 应收账款零头会计处理
  • win8操作系统
  • 当月收到服务成本票下个月才开出发票
  • php变量的基本概念
  • 员工的医药费
  • 补缴的土地出让金需要计提吗
  • php版本7和5区别
  • php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
  • laravel 5.1下php artisan migrate的使用注意事项总结
  • node实战
  • 可行性研究合同印花税
  • 库存材料清查结论怎么写
  • mongodb 随机获取一条数据
  • 库存现金的会计分录
  • 公司个人所得税申报操作流程
  • 集团与子公司资产的区别
  • sql server 2008的安全机制
  • 新成立的小规模纳税人什么时候报税
  • 出口海运费222011
  • 营改增之后是不是就没有营业税了
  • 收到对方公司退款
  • 行政单位收到的待报解预算收入怎么做账
  • 高新企业 要求
  • 一次性付款的优势
  • 怎样计算存款利息?
  • MySQL replace into 语句浅析(二)
  • sql server创建备份
  • 远程连接sqlserver的数据库和本地连接时不一样
  • sql 获取字段类型
  • xp系统开机按什么还原
  • 开启win7
  • ubuntu16.04终端在哪
  • linux那些事儿
  • linux/tmp
  • win10 rs5
  • mac系统 硬盘
  • automaticupdate
  • 更换主板也不用换硅脂吗
  • win7系统无法查看共享电脑
  • 怎么优化win10系统
  • win10无u盘装系统教程
  • win8如何隐藏任务栏
  • javascript简单
  • 源码分析工具
  • pythone爬虫
  • python 编程技巧
  • android有哪几个特点
  • javascript中的数据类型分为两大类
  • 欠税务局税款的后果
  • 青岛税务局局长是什么级别?
  • 中山大学税务硕士
  • 上海公积金快速提取
  • 广西汽车下乡补贴申请攻略?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设