位置: 编程技术 - 正文

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)

  • 小规模企业需要交哪些税
  • 汇算清缴研发费用加计扣除优惠明细表
  • 城建税计税依据扣除增值税期末留抵
  • 机票改签费能否抵税
  • 小规模纳税人月超10万季度不超30万
  • 企业亏损结转年限举例说明
  • 小规模纳税人可以开13%的发票吗
  • 利息支出可以抵扣吗
  • 出租不动产房屋交什么税
  • 不同外币之间的折算
  • 委托出口退税账务处理
  • 老板垫付的费用怎么做凭证
  • 非独立核算不用做核算吗
  • 主营业务税金及附加大概比例
  • 员工生育期间社保
  • 退票费可以开公司发票吗
  • 企业所得税可以弥补几年亏损
  • 进项税额忘了抵扣
  • 办公室装修合同印花税怎么缴纳?
  • 视同销售的企业所得税汇缴表怎么填列?
  • 收购股权公司
  • 收到购买商品发票怎么做账
  • windows10显示文件格式
  • 厂区地面硬化的意义
  • 笔记本电脑按键掉了怎么修
  • php总结
  • 固定资产入账流程图
  • 资本公积转增股本需要缴纳个人所得税吗
  • zend framework手册
  • php curl_init
  • html5旅游网页设计
  • 多模态教学模式论文
  • react中key
  • 100多年前程序员
  • autoscle
  • 国家给农民的青春有哪些
  • 营业外支出会计科目
  • vue多平台
  • 交通费怎么报销
  • 取得发票没有加税怎么办
  • 年金终值系数表值系数
  • 基本户开立账户清单
  • 建筑企业分项目信息采集表怎么填
  • 本年利润的会计分录怎么做
  • 本月没开票还需要上报汇总吗
  • 科研经费的间接费用会审核吗
  • 增值税退税账务处理,经其他收益科目
  • 固定资产无票怎样入账
  • 防伪税控开票系统SOAP服务端
  • 离线发票累计金额是多少
  • 公司开办期间的住宿费会计分录
  • 资产类科目一般是什么
  • 股权转让 会计
  • 实收资本未到账减资要交税吗
  • 私营公司应付工资的规定
  • mysql的子查询语句
  • MySQL使用xtrabackup进行备份还原操作
  • Centos安装dig命令
  • 为什么要淘汰相关性高的指标
  • ubuntu12.04 amd64系统中lamp环境搭建方法
  • Ubuntu下配置vpn工作环境
  • linux应对攻击的防御手段
  • windowsxp打不开
  • macbookpro屏幕显示
  • win7任务栏高度可以改变
  • mongoose怎么用
  • jquery animate源码
  • cocos2d官网
  • unity projector
  • js实现的简洁二次函数
  • python scripy
  • unity ugui组件
  • javascript教程 csdn
  • python魔法方法详解
  • 税务局约谈记录
  • 学历认证取消申请还能再申请吗
  • 发票打印机设备设置
  • 劳动仲裁受理通知
  • 法治税务演讲稿结尾
  • 税务违法怎么处理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设