位置: 编程技术 - 正文

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)

  • 股权转让中土地房产占比较大时怎么交税
  • 一般纳税人企业所得税多久申报一次
  • 已开票未确认收入怎么填写纳税申报表
  • 固定资产账务处理实操
  • 小微企业利润表模板
  • 利润表中所得税费用包括哪些
  • 买金税盘发票能全额抵进项税吗
  • 长期股权投资的4个明细科目
  • 善意取得虚开专票的条件包括
  • 商业承兑汇票可以提前承兑吗
  • 个体户国税定额开发票60000元地税要交多少钱?
  • 社保补缴上月的在当月扣款
  • 增值税普票只要发票号吗
  • 按期汇总缴纳印花税可以退税吗
  • 居间费税收是多少
  • 企业2015年申报抵扣的增值税,2016年检查有11000元不得抵扣,需要补交增值税11000元并收滞纳金及罚款1200元,请问老师具体该怎么做账,谢谢
  • 回扣费可以税前扣除吗?
  • 加班工资算做个月工资吗
  • 企业会计准则基本准则的主要内容
  • 减少注册资本金程序
  • 个人承担的社保费用算在员工工资里吗?
  • 研发费用领用材料
  • 城市维护建设税属于什么税种
  • 收到往来款的账务处理
  • 鸿蒙工具栏在哪里
  • 苹果手机录音配音乐怎么配
  • 合并财务报表中的负债和股东权益
  • 去年的记账凭证错了怎么办
  • 在windows 7中
  • linux配置ssh免密
  • PHP:Memcached::appendByKey()的用法_Memcached类
  • 企业所得税的概述
  • hottray.exe是什么进程 有什么作用 hottray进程查询
  • 二级资本债向谁发行
  • electronx
  • html盒子边框圆角
  • 观察者模式java实现
  • 提租补贴计入个税吗
  • 微信小店的入口在哪里
  • pytorch教程
  • 业务招待费进项转出报表怎么填
  • 在建工程预付款超过审计价怎么办
  • 个体工商户没有收入要交税吗
  • 不能抵扣的进项税转出账务处理
  • 将织梦dedecms转换到wordpress
  • mongodb 统计
  • 出租车手撕票可以税前扣除吗
  • 综合所得年度自行申报怎么操作
  • 企业生产经营发展
  • 专用发票与普通发票的区别有
  • 起征点与免征额的联系
  • 应付账款属于外币货币性项目吗
  • 运费对方出怎么处理
  • 筹建期的印花税怎么算
  • 母公司与子公司的法律关系
  • 购买汽车抵扣增值税税率
  • 稳定用工社保补贴怎么领
  • 年终奖和工资一起发吗
  • 会计净资产计算公式
  • 使用sql查询
  • mysql数据库定时备份脚本
  • win7桌面和win10桌面
  • win8开始在哪里
  • 如何配置linux系统
  • 笔记本win7win10双系统怎么装
  • 远程桌面的文件怎么无法复制到本地桌面
  • windows2008域
  • perl教程 pdf
  • java timer
  • java程序员练手项目
  • jquery插件开发方法
  • shell批量处理文件
  • jquery中validate
  • eclipse创建android项目
  • linux 使用技巧
  • python数据清洗的方法有哪些
  • 利用python进行
  • 如何搭建python项目架构
  • 怎么查询开票信息呢
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设