位置: 编程技术 - 正文

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)

  • 税务行政复议是税务行政复议机关的裁决活动
  • 运输发票税率是9
  • 金税四期对增值税发票的比对
  • 房屋租赁的发票备注怎么写
  • 利息资本化计入什么现金流量科目
  • 印花税购销合同计税依据70%
  • 主营业务收入没收到钱怎么做账
  • 如何确定企业
  • 利润分配包括缴纳所得税吗
  • 哪些银行承兑汇票不能收的名单
  • 其他公司向本企业借款
  • 货代行业红字冲正发票怎么做凭证
  • 暂估入库产品行程影响所得税汇算清缴吗
  • 红字发票可用于入账吗
  • 招商费用计入哪个明细科目
  • 未退还的保证金怎么处理
  • 个人所得税加计扣除有哪些项目
  • 基础设施建设包括哪些方面
  • 公司的汽车购置税怎么交
  • 企业涉及预计负债的主要事项包括
  • 工资扣税标准计算方法
  • 购买原材料无法确认收入
  • 什么是会计科目?为什么要设置会计科目?
  • PHP:mb_ereg_replace()的用法_mbstring函数
  • php开发用什么ide
  • 租赁的车间改造的会计分录
  • 采购周转材料会议记录
  • 从价计征房产税如何计算
  • 优先股转化
  • 北极野生动物
  • 简单的php文件
  • 保税进料加工企业
  • 公司购买承兑
  • 现金流量表的填写说明
  • 变更法人需要什么流程
  • 应付职工薪酬账户期末余额可能是
  • 公益性捐赠支出纳税调整
  • 房开企业增值税销项税额
  • 关于种植养殖的手抄报
  • 享受残疾人增值服务的是
  • 软件退税款会计如何处理
  • 个人咨询费发票怎么开
  • 社保计提少了怎么办
  • 个体户怎么能享受生育险
  • 弃置费用预计负债的会计处理
  • 企业接受股东划入资产的处理
  • 营业成本增加额公式
  • 如果是车间不生气怎么办
  • 采购商品的运费会计分录
  • 将sql语句的执行状态传递给主语言的是
  • mysql几天能学会
  • 用Autoconf检测MySQL软件包的教程
  • mysql压缩包安装教程5.7.32
  • sqlserver用户权限不给增删查改表结构权限
  • centos7 阿里云 yum
  • winscope是什么意思
  • win10快速切换到桌面快捷键
  • win7电脑连不上wifi怎么解决
  • ubuntu写脚本
  • centos查看具体版本
  • w7系统如何设置
  • win7注册表修改锁屏时间
  • win10查看驱动
  • win10预览文件怎么显示内容
  • win7电脑耳机插上还是外放
  • 不需要远程传输的文件
  • android环境搭建实训心得
  • cocos2d
  • Extjs中通过Tree加载右侧TabPanel具体实现
  • python快速上手 自动化
  • 用python做web
  • unity 开发游戏
  • 梦见擦窗户框
  • jquery基础教程详解
  • 通州区税务局办税大厅电话号码
  • 街道税务所职责和任务
  • 已知税率怎么求政府税收
  • 吉林省电子税务局操作手册
  • 关税由谁来承担
  • 福州灵活就业社保缴费2024年多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设