2017-04-03 426 views
0

我是rpmbuild + spec文件的新手,我尝试使用以下tutorial来构建“hello world”示例。rpmbuild安装依赖关系

管理得到它的工作,但我想了解依赖/需要如何工作。因此,我试图复制另一个“hello world 2”示例,并将它作为依赖项链接到下面spec文件中的第一个。

但是我不断收到下面的错误。有没有一种方法,百胜安装将拿起helloworld1并自动安装时,我yum安装helloworld2?

我学习的任何例子?

SPEC FILE

Name:   helloworld2 
Version:  2.0 
Release:  1%{?dist} 
Summary:  A hello world program 

License:  GPLv3+ 
URL:   https://blog.packagecloud.io 
Source0:  helloworld2-2.0.tar.gz 

#BuildRequires: helloworld1 
Requires(preun): helloworld1 
#PreReq: testYW 

%description 
A helloworld program from the packagecloud.io blog! 

%prep 
%setup 

%build 
make PREFIX=/usr %{?_smp_mflags} 

%install 
make PREFIX=/usr DESTDIR=%{?buildroot} install 
echo %{?buildroot} 

%clean 
rm -rf %{buildroot} 

%files 
%{_bindir}/helloworld2 

ERORR

COMMAND >>百胜安装RPMS/x86_64的/ helloworld2-2.0-1.el6.x86_64.rpm

Loaded plugins: product-id, search-disabled-repos, security, subscription-manager 
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. 
Setting up Install Process 
Examining RPMS/x86_64/helloworld2-2.0-1.el6.x86_64.rpm: helloworld2-2.0-1.el6.x86_64 
Marking RPMS/x86_64/helloworld2-2.0-1.el6.x86_64.rpm to be installed 
Resolving Dependencies 
--> Running transaction check 
---> Package helloworld2.x86_64 0:2.0-1.el6 will be installed 
--> Processing Dependency: helloworld1 for package: helloworld2-2.0-1.el6.x86_64 
--> Finished Dependency Resolution 
Error: Package: helloworld2-2.0-1.el6.x86_64 (/helloworld2-2.0-1.el6.x86_64) 
      Requires: helloworld1 
You could try using --skip-broken to work around the problem 

回答

1

因为helloworld2需要helloworld1;你应该先安装helloworld1;要么一起安装。由于helloworld2取决于helloworld1;如果不先安装helloworld1(或同时),则无法安装他。

0

好吧!我得到了答案!

我可以做百胜安装*的.rpm,它会做自己的依赖

否则将所有新rpm文件到库中,它会捡起来:)