位置: 编程技术 - 正文

perl 模块打包加入外部依赖程序(perl package)

发布时间:2024-02-27

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)

  • 小规模企业所得税2023年税收政策
  • 残保金季报要填上年职工人数
  • 非流动资产处置损失包括哪些
  • 母公司为子公司担保需要股东会决议吗
  • 扣缴义务人怎么删除
  • 什么样的运输发动机最好
  • 计入当期损益的利得
  • 本年利润怎样结转未分配利润
  • 现金抵用券购买怎么用
  • 工程款抵房款账务怎么做
  • 固定资产机械设备
  • 小规模季度不超过45万的税收优惠
  • 异地劳务公司所在地怎么交税
  • 公司的私账合法吗
  • 利润表所得税费用计算公式
  • 公司账户转入另一个公司的投资款怎么做账?
  • 职工食堂报销经费标准
  • 河道管理费入什么科目
  • 中国电信服务
  • 消费税在哪个环节征税
  • 债券返售
  • 结转法定盈余公积会计分录怎么写
  • 定期存款利息收入怎么算
  • 银行贷款需要走第三方账户,第三方需要提供身份证
  • uniapp intent
  • 减半征收所得税的有哪些
  • php通信协议
  • 客户端调用axis1.4的方式
  • 废钢收购无进项怎么处理
  • springboot -d
  • vue富文本编辑器移动端
  • php代码自动生成
  • 企业所得税的特别纳税调整
  • 销售免税农产品如何开票
  • 生产车间领用材料的会计分录
  • python循环语句的语法
  • 银行年费什么时候取消的
  • 开工程款发票有什么规定?
  • 固定资产折旧范围口诀
  • 公司保障措施
  • sql2008r2怎么用
  • 销售返利及发票开具如何进行会计处理?
  • 公司贷款可以转私户吗
  • 购买金税盘的分录怎么做
  • 差旅费中火车票的进项税怎么计算
  • 预提费用多提了怎么办
  • 利润与所有者权益的区别
  • 支付设备款怎么做账
  • 贷款服务的利息怎么算
  • 减值损失和减值损失区别
  • 外币报表折算差额会计分录
  • 五险 会计
  • 产品成本核算有多条原则和要求
  • 分页存储过程的实现
  • win7系统中怎么卸载安装的软件
  • Win7系统关闭怎么办
  • 安装office提示
  • xp系统ip地址设置在哪里
  • 如何显示文件后缀win10
  • spybotsd.exe - spybotsd 是什么文件进程
  • win批处理命令
  • 如何关闭mcafee软件
  • 如何将电脑的win7系统变为win10
  • sendmail邮件服务器
  • WIN10系统怎么查看隐藏的文件夹
  • linux操作系统怎么装
  • textview可以点击吗
  • 游戏引擎有几种
  • css里注释
  • nodejs 回调
  • 网站检测系统
  • jquery validation plugin
  • 猫的所有视频
  • js浏览器运行机制
  • 使用jquery实现的项目
  • 税务稽查条例操作规程
  • 税务部门行政审批
  • 经营数据分析需要学什么
  • 交医保显示已申报怎么办
  • 地税可以跨区交吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号