我继承了一些服务器,这些服务器以前总是将其软件作为自定义编译版本(apache、perl、mod_perl 等)。我在想,与其每次都编译,不如将它们放入 RPM 中。我正在尝试 Vagrant 的一些新想法。这也部分是为了学习过程。
其中之一是自定义 Perl 版本 5.14.2,我们有一个编译脚本,我已在新的 Vagrant 盒子上运行该脚本并使用“checkinstall”创建 RPM。编译后一切正常,同一个盒子上有 2 个版本的 Perl(自定义版本进入 /opt/perl)。
然而,我有了 perl RPM,如果我拿一个新的盒子并尝试通过 yum 安装,我会得到......
yum -y install /vagrant/perl-5.14.2-1.x86_64.rpm
Examining /vagrant/perl-5.14.2-1.x86_64.rpm: perl-5.14.2-1.x86_64
/vagrant/perl-5.14.2-1.x86_64.rpm: does not update installed package.
这也许是有道理的,所以我想我会尝试 rpm...
rpm -ivh /vagrant/perl-5.14.2-1.x86_64.rpm
perl(DBD::SQLite) is needed by perl-5.14.2-1.x86_64
perl(DBIx::Simple) is needed by perl-5.14.2-1.x86_64
perl(FCGI) is needed by perl-5.14.2-1.x86_64
perl(Mac::BuildTools) is needed by perl-5.14.2-1.x86_64
perl(Mac::InternetConfig) is needed by perl-5.14.2-1.x86_64
perl(Tk) is needed by perl-5.14.2-1.x86_64
perl(Tk::Pod) is needed by perl-5.14.2-1.x86_64
perl(Your::Module::Here) is needed by perl-5.14.2-1.x86_64
所以有几个问题。创建自定义编译脚本的 RPM 是正确的做法吗(假设它需要编译而不是发行版自己的版本),我会通过 rpm 还是通过 yum 安装它?
为什么 rpm -ivh 说存在依赖关系,而原始编译/检查安装没有喊出任何依赖关系并且工作正常?
编辑:这是 rpm -qi 的输出
rpm -qi perl
Name : perl Relocations: (not relocatable)
Version : 5.10.1 Vendor: CentOS
Release : 136.el6_6.1 Build Date: Wed 12 Nov 2014 09:22:55 UTC
Install Date: Thu 14 May 2015 09:55:13 UTC Build Host: c6b8.bsys.dev.centos.org
Group : Development/Languages Source RPM: perl-5.10.1-136.el6_6.1.src.rpm