位置: 编程技术 - 正文

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)

  • 汇算清缴所得税退回做账
  • 一般纳税人优惠政策最新2022标准
  • 应纳税所得额是利润总额吗
  • 借款给别的公司收到的利息会计分录怎么写
  • 年初建账考虑要点有哪些
  • 汇算清缴企业所得税退税账务处理
  • 红线范围外增加的工程量
  • 小规模免税农产品怎么做账
  • 生产车间维修费
  • 电费专票抵扣需要发票吗
  • 租赁到期日 英语
  • 印花税购销比例
  • 水电费的税收分类有哪些
  • 房地产企业未出售的房子是否要交房产税
  • 主营业务收入增速怎么算
  • 员工旅游计入什么费用
  • 计提社保公司承担部分怎么算
  • PHP:xml_set_notation_decl_handler()的用法_XML解析器函数
  • 软件服务费怎么算
  • 股东实缴出资的证明
  • win切换平板模式
  • 一些出口商为什么要倾销
  • win11系统关闭防火墙怎么关
  • consolo application
  • PHP:pg_connect_poll()的用法_PostgreSQL函数
  • 年终奖发放形式 更改 税务局
  • 野生动植物种源包括
  • 报错专业了可不可以改
  • 其他收益年末需要结转吗
  • 如何使用nodejs
  • 金融企业计提贷款利率
  • php最安全的登录功能
  • 以股权出资成立公司的模板
  • yii2组件的理解
  • 高新技术企业收入占比不到60%,能否享受税收优惠政策
  • yolov3实现
  • php获取目录列表
  • index.php怎么修改
  • 托收的收款人是谁
  • 怎么把其他应收款的转到其他应付款
  • 免税农产品包括30万元吗
  • 织梦网站停止使用了还侵权吗
  • 预付卡账务处理在注会
  • 一般纳税人开普票要交税几点
  • 不动产租赁服务包括哪些
  • 什么是现金什么是现金流
  • 公司水电费分摊怎么算
  • 期初应收账款对应什么科目试算平衡
  • 融资租入固定资产的入账价值
  • 银行承兑汇票贴现利息怎么算
  • 可供出售金融资产和交易性金融资产
  • 企业在期间新购进的设备、器具
  • 小规模红冲发票收入正数税额负数
  • 生产车间生产工人的薪酬计入什么
  • 盘盈的固定资产怎么处理
  • 帮客户支付的机票计入什么科目
  • 预付调整到其他应付款
  • 冲销以前年度多计提的折旧
  • 建立mysql
  • windows u盘制作
  • 如何延长手机电池使用寿命
  • xp操作系统还能用吗
  • windowsxp还能正常使用吗
  • xp系统蓝屏解决
  • ubuntu 14.04安装
  • win7电脑能登qq但打不开网页怎么办
  • linux apt apt-get
  • win7系统如何查看隐藏文件夹
  • win8禁用网络之后如何开启
  • 原生js实现promise.all
  • content provider
  • Python制作钟表代码
  • 湖南历年社保缴费
  • 发票红冲步骤图片
  • 股权转让税收优惠个人所得税
  • 总分公司如何纳税
  • 关于地税代收工会经费工作实施办法
  • 广州车船税每年交多少
  • 金米财税口碑如何?
  • 伴生矿和伴采矿的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设