位置: 编程技术 - 正文

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)

  • 增值税电子发票查询平台
  • 出租设备的租金收入记入( )账户
  • 吴中区个体户如何办理
  • 未认证待抵扣进项税重分类
  • 保险公司车险理赔款如何入账
  • 运输货车折旧计算公式
  • 劳务外包可以差额纳税吗
  • 原材料盘亏会计分录怎么做
  • 水利建设工程
  • 付佣金给客户怎么做分录?
  • 已经认证的进项税转出
  • 应付职工薪酬社保
  • 期末未缴税额为什么会有数据
  • 预付款发票可以入费用吗
  • 去年的税还能退吗
  • 即征即退收入是否计入所得税
  • 差旅费未及时报销说明怎么写
  • 预付账款需要发票吗
  • 哪些银行承兑汇票比较好
  • 退租水电费从押金里扣除
  • 政府性基金预算收入包括
  • 营业收入销售收入计算公式
  • 无法偿还的借款怎么处理
  • 个人股东企业分红一共需要交多少税
  • 生产成本包括哪三类
  • 员工罚款算收入吗
  • php如何解决异常处理
  • php的总结
  • php pack
  • 企业向股东发放现金股利会引起
  • 房地产开发公司组织架构
  • 境外机动车临时可以办理什么车险业务
  • 房地产开发成本明细
  • 承兑汇票到期超过10天怎么办
  • 未核定税种是谁的责任
  • 职工教育经费是不是教育费附加
  • 企业期末结转本期实现的各项收入
  • web 前端
  • 手撕视频教程全集
  • 跨平台 gui
  • 哪些行业不适用税前加计扣除政策
  • sql server 2016 sp3
  • 加计扣除减免政策
  • 先预付货款,货到了怎么做账
  • 个体户是怎么交公积金的
  • 其他应收款期末借方余额表示什么意思
  • 企业在建工程项目
  • 一般纳税人在外地预缴税款,预缴多了需不需退税
  • 倒卖承兑汇票被判刑
  • 事业单位可以报考事业单位吗
  • sql语句中having是什么意思
  • sqlserver怎么恢复数据
  • 如何解决女性漏尿问题
  • windows vista界面
  • 开源镜像是什么意思
  • WNxp下让所有用户桌面显示系统默认图标的方法
  • win7旗舰版显示不全屏
  • xshell远程桌面
  • mssvr.exe - mssvr是什么进程 什么用
  • win10怎么切任务管理
  • linux简明教程
  • linux根目录和主目录
  • jquery实战
  • android中数据存储
  • linux中xargs的含义
  • javascript中new Array()和var arr=[]用法区别
  • 原生javascript开发
  • Jquery操作Ajax方法小结
  • 搭建nodejs
  • shell中删除文件和目录
  • Unity for Absolute Beginners(一)
  • python3 random模块
  • jQuery validate+artdialog+jquery form实现弹出表单思路详解
  • bootstrap和css的关系
  • js获取鼠标点击位置
  • 长沙税务网站查询系统
  • 粮食的增值税税率怎么算
  • 3000劳务报酬如何缴税
  • 执法事业单位改革最新进展
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设