IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

给 perl 的模块打包成rpm

扶凯 2010-03-18 09:06:03 累计浏览 3,411 次
本机暂存

正如Fayland 所讲的" Perl 最让其他语言的人嫉妒的地方就是 CPAN. 有了 CPAN 我们几乎能找到所需要的任何东西。"

我们常用 perl 中的模块,就象一个标准一样,不象别的语言,一直担心这个模块是否可用,是否有人维护等。。。

但我们用了 perl 的模块后,有个小问题,当我个有上千台服务器时,我们不可能每台服务器上编译一次,所以我们需要用到 perl 模块打包.编译成 rpm 包,这样用 Yum 可以非常方便的安装和升级,但怎么打包,很多人很头痛的.其它在 perl 中这是非常容易的.

我们使用 cpan2rpm 就行了.这个软件可以指定 tar.gz 包来生成 rpm 包。也可以只写一个模块的名字,会自动从 CPAN 网络上下载下来.

使用方法如下:

[root@localhost ~]# cpan2rpm YAML
 
-- cpan2rpm - Ver: 2.028 --
Upgrade check
Fetch: HTTP
 
-- module: YAML --
Using cached URL: http://search.cpan.org//CPAN/authors/id/A/AD/ADAMK/YAML-0.71.tar.gz
Tarball found - not fetching
Metadata retrieval
Tarball extraction: [/usr/src/redhat/SOURCES/YAML-0.71.tar.gz]
Prototype mismatch: sub main::prompt: none vs ($;$) at (eval 38) line 2
        main::BEGIN() called at (eval 38) line 2
        eval {...} called at (eval 38) line 2
        eval 'use ExtUtils::MakeMaker 6.42
;' called at /usr/bin/cpan2rpm line 486
        main::get_meta() called at /usr/bin/cpan2rpm line 54
Generating spec file
SPEC: /usr/src/redhat/SPECS/YAML.spec
RPM: /usr/src/redhat/RPMS/noarch/perl-YAML-0.71-1.noarch.rpm
SRPM: /usr/src/redhat/SRPMS/perl-YAML-0.71-1.src.rpm
-- Done --

如上所示,生成了一个包,在 /usr/src/redhat/RPMS/noarch/perl-YAML-0.71-1.noarch.rpm 别的机器直接安装就行了.相当的方便吧。点本连接下载 cpanrpm 包: cpan2rpm

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. perl更新/修改/删除文本文件内容 (累计阅读 10,648)
  2. perl大牛flw传说 (累计阅读 7,715)
  3. AWStats是一个基于Perl的WEB日志分析工具。 (累计阅读 7,176)
  4. perl模块Getopt::Std用法及实例-从命令行读取参数模块 (累计阅读 7,018)
  5. [Perl] Template::Toolkit 模板技术. (累计阅读 6,347)
  6. Perl命令行常见用法及技巧 (累计阅读 5,912)
  7. PHP将死,何以为继? (累计阅读 5,919)
  8. 在perl中连接和使用sqlite做数据存储 (累计阅读 5,814)
  9. Perl 倒行分析文件方法。perl读文本文件,从末尾往前读. (累计阅读 5,609)
  10. perl的expect使用方法,实现非交互式登录。 (累计阅读 5,488)