位置: 编程技术 - 正文

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)

  • 增值税附加税怎么填
  • 合营企业和联营企业会计核算
  • 三证合一后个体户注销流程
  • 未开票收入下月开票怎么报税
  • 清产核资与清算的关系
  • 递延所得税资产和负债怎么计算
  • 法人分配利润分录
  • 非贸税务备案
  • 注销公司需要提供股东身份证吗
  • 消费税征收环节下划的影响
  • 收到对方开的发票怎么做账
  • 分公司清算和总公司清算
  • 技术服务开什么大类
  • 金税盘820的抵扣联怎么装订?
  • 贴现凭证的贴现银行是谁
  • 与建筑物有关的设计
  • 银行电子承兑如何撤回
  • 小规模纳税人收到增值税专用发票怎么办
  • 转结本月工资
  • 如何恢复微信语言聊天
  • 增值税专票和普票的区别税率
  • 证券的投资
  • 联想一体机如何调节屏幕亮度
  • 新版mac如何连接iphone
  • win11怎么双击直接打开程序
  • 电脑桌面小工具软件
  • 付的押金冲抵部分怎么算
  • 购买税盘怎么做分录
  • php运行js代码
  • mpd linux
  • 中小企业发展专项资金
  • 门诊部需要药品经营许可证吗
  • 现金折扣的账务处理最新规定
  • 赠送的商品怎么入库 企业会计准则
  • spring security功能
  • ChatGPT 的 10 种集成模式:从开源 AI 体验平台 ClickPrompt 中受到的启发
  • php md5 16位
  • mysql封装函数
  • apr命令怎么用
  • 应付账款会计分录大全
  • 浅析学校德育的个体智能发展功能
  • 有趣的 Go HttpClient 超时机制
  • python国内下载地址
  • 印花税按金额还是价税合计交
  • 金蝶利润表出现科目
  • mysql sql性能调优的方法
  • 中标的工程交易怎么处理
  • 利润表中利息费用包括手续费吗
  • 一般纳税人购入固定资产进项抵扣
  • 应收账款在贷方为负数表示什么
  • 预期损失el
  • 矿场维护
  • 实业投资收益如何
  • 收到建筑发票会计分录
  • 电子承兑汇票做账看哪个日期
  • 增值税不超过30万,普通发票可以开0税率吗
  • 专用发票不抵扣联可以当普票用吗?
  • 红字发票信息表在哪里查询
  • 预收账款余额在贷方是什么意思
  • mysql命令导入
  • 如何关闭windows8的密码
  • window xp电脑连接宽带怎么连接
  • mac屏幕共享软件
  • freebsd 安装
  • linux操作系统安装方法有哪几种
  • 桌面上家庭组图标是干嘛
  • win7系统怎么更改桌面图标大小
  • xp注册表文件在哪
  • three.js gui
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • shell 多个文件合并
  • jquery输入框改变事件
  • 公认的经典
  • js事件怎么写
  • python的删除命令
  • 12123人工咨询电话
  • 土地税源编码怎么填
  • 为何新能源汽车在东北推广不佳
  • 财政部监制的发票
  • 税务备案表银行留存
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设