安装自定义 RPM 时显示“不更新已安装的软件包”

安装自定义 RPM 时显示“不更新已安装的软件包”

我继承了一些服务器,这些服务器以前总是将其软件作为自定义编译版本(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

相关内容