我可以从自己的rpm-package安装不同的软件包吗?

时间:2015-12-10 12:08:40

标签: linux rpm rpmbuild

我可以在CentOS 7上安装我自己的rpm-package中的不同软件包(这是我的任务,其他变种,如shell脚本被拒绝)吗?我试图理解rpmbuild的spec-file格式,所以我使用了这个文件的一些最小配置。我创建了一个rpm包(让我们称之为test.rpm),用" rpm -i test.rpm"启动它。并看到" yum install"从%post发布,但卡在"运行事务"安装级别。 SELINUX被禁用。

这是我的test.spec:

Name: test_script_name
Summary: It's just a test_script_summary
Version: 0.1 
Release: 1
Group: Applications/Internet
License: GPL 
BuildArch: noarch

%description
A test_script_description.

%prep 

%build

%install

%clean

%post
yum install -y lynx

%files
%defattr(-,root,root)

%changelog
* Tue Dec 08 2015 test test <test@test.com>
- test_script_changelog!

我用:

构建我的test.rpm
rpmbuild --bb test.spec

使用以下命令启动它:

rpm -i test.rpm

以下是安装过程中显示的yum输出的一部分:

Total download size: 1.5 M
Installed size: 5.4 M
Downloading packages:
(1/2): centos-indexhtml-7-9.el7.centos.noarch.rpm                                               |  92 kB  00:00:00     
(2/2): lynx-2.8.8-0.3.dev15.el7.x86_64.rpm                                                      | 1.4 MB  00:00:00     
-----------------------------------------------------------------------------------------------------------------------
Total                                                                                  2.4 MB/s | 1.5 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.

这是所有的输出。套餐没有安装。请帮我。谢谢。

2 个答案:

答案 0 :(得分:3)

如果您将此包定义为要求:

Requires: lynx

然后,它将作为依赖项安装在以下命令之后:

yum localinstall test.rpm

look the question about autoinstallation dependencies

答案 1 :(得分:2)

解决OP的问题:不,你不能从另一个rpm中安装一个rpm。要执行所需操作,可以使用Requires标记将其他包列为依赖项

进一步阅读:

RPM依赖关系在这里讨论:

通常,您应该使用yum进行安装(甚至是本地构建的软件包)以使其数据库保持最新状态。