我可以在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.rpmrpmbuild --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.
这是所有的输出。套餐没有安装。请帮我。谢谢。
答案 0 :(得分:3)
如果您将此包定义为要求:
Requires: lynx
然后,它将作为依赖项安装在以下命令之后:
yum localinstall test.rpm
答案 1 :(得分:2)
解决OP的问题:不,你不能从另一个rpm中安装一个rpm。要执行所需操作,可以使用Requires
标记将其他包列为依赖项。
进一步阅读:
RPM依赖关系在这里讨论:
通常,您应该使用yum
进行安装(甚至是本地构建的软件包)以使其数据库保持最新状态。