如何将Perl模块做成rpm文件
时间:2019-11-20 08:52:56 来源:igfitidea点击:
问题
在RHEL/CentOS Linux上如何使用cpanspec将Perl模块做成rpm文件?
在Linux系统中,没法运行perl -MCPAN -e'install Module :: Name'
。
如何把模块做成rmp软件包的形式进行安装?
可以使用yum命令安装Perl模块吗?
解决方案
rpmbuild命令用于为基于CentOS/RHEL的系统构建二进制软件包和源软件包。
rpm软件包包括文件档案和用于安装和清除档案文件的元数据。
使用cpanspec构建Perl模块rpm文件:
如何安装cpanspec
执行以下cpanspec命令。
首先为RHEL 7/CentOS 7添加EPEL存储库:
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo yum install cpanspec perl-ExtUtils-CBuilder perl-Module-Build perl-Test-Simpl
如何安装编译器以构建Perl模块
需要在CentOS Enterprise Linux或Red Hat Enterprise Linux版本7上安装以下软件包。
设置基本的开发环境。
$ sudo yum group install "Development Tools"
如何使用cpanspec
cpanspec的语法非常简单:
cpanspec moduleNameHere cpanspec [options] moduleNameHere
如何在RHEL/CentOS上使用cpanspec构建Perl模块rpm文件
假设我们需要一个支持lchown()系统调用的perl接口,在支持该平台的平台上。
这里将构建Perl CPAN模块rpm文件Lchown:
$ cpanspec --follow --packager 'admin' -v Lchown
其中:
--follow
将构建依赖项添加到要处理的模块列表中--packager
打包程序的名称和电子邮件地址。覆盖~/.rpmmacros中的%packager宏。-v
显示详细构建新型Lchown
生成一个规范文件,以从CPAN风格的Lchown的Perl模块发行版本构建rpm
命令将在当前目录中生成两个文件,如下所示:
$ ls *.tar.gz *.spec `Lchown-1.01.tar.gz perl-Lchown.spec`
perl-Lchown.spec文件描述了rpmbuild如何构建和打包Lchown Perl模块。
$ cat perl-Lchown.spec
准备源目录
使用mkdir命令创建目录 ~/rpmbuild/SOURCES/:
$ mkdir -pv ~/rpmbuild/SOURCES/
将Lchown-1.01.tar.gz源文件复制到SOURCES目录中,供rpmbuild命令使用:
$ cp -v ~/Lchown-1.01.tar.gz ~/rpmbuild/SOURCES/
使用rpmbuild构建RPM
运行以下命令:
$ rpmbuild -ba perl-Lchown.spec
rpmbuild命令的-ba选项指明将从指定的.spec文件构建源代码和二进制包。
输出示例:
Wrote: /home/Hyman/rpmbuild/RPMS/x86_64/perl-Lchown-1.01-1.el7.centos.x86_64.rpm Wrote: /home/Hyman/rpmbuild/RPMS/x86_64/perl-Lchown-debuginfo-1.01-1.el7.centos.x86_64.rpm
安装perl-Lchown-1.01-1.el7.centos.x86_64.rpm文件:
$ sudo yum install ~/rpmbuild/RPMS/x86_64/perl-Lchown-1.01-1.el7.centos.x86_64.rpm
给rpm文件配置签名以获得安全性(前提是您已为GPG配置了密钥):
$ rpmsign --addsign ~/rpmbuild/RPMS/x86_64/perl-Lchown-1.01-1.el7.centos.x86_64.rpm