2014-01-10 2 views
0

gem2rpm을 사용하여 gem (요리사)을 rpm 패키지로 변환하려고했습니다. 이제 보석을 가져 와서 'spec'파일을 만들고 사용 된 'rpmbuild'를 만들었습니다. 나는 다음과 같은 오류가 발생합니다 : 나는 내가 % 파일 % 섹션에서 뭔가를 변경해야 이해gem2rpm 도구가 작동하지만 rpm 패키지를 찾을 수 없습니다.

# Generated from chef-11.8.2.gem by gem2rpm -*- rpm-spec -*- 
%global gem_name chef 
%global rubyabi 1.9.1 

Name: rubygem-%{gem_name} 
Version: 11.8.2 
Release: 1%{?dist} 
Summary: A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure 
Group: Development/Languages 
License: GPL 
URL: http://wiki.opscode.com/display/chef 
Source0: http://rubygems.org/gems/%{gem_name}-%{version}.gem 
Requires: ruby(abi) = %{rubyabi} 
Requires: ruby(rubygems) 
Requires: rubygem(mixlib-config) => 2.0 
Requires: rubygem(mixlib-config) < 3 
Requires: rubygem(mixlib-cli) => 1.3 
Requires: rubygem(mixlib-cli) < 2 
Requires: rubygem(mixlib-log) => 1.3 
Requires: rubygem(mixlib-log) < 2 
Requires: rubygem(mixlib-authentication) => 1.3 
Requires: rubygem(mixlib-authentication) < 2 
Requires: rubygem(mixlib-shellout) => 1.2 
Requires: rubygem(mixlib-shellout) < 2 
Requires: rubygem(ohai) => 6.0 
Requires: rubygem(ohai) < 7 
Requires: rubygem(rest-client) >= 1.0.4 
Requires: rubygem(rest-client) < 1.7.0 
Requires: rubygem(mime-types) => 1.16 
Requires: rubygem(mime-types) < 2 
Requires: rubygem(json) >= 1.4.4 
Requires: rubygem(json) <= 1.7.7 
Requires: rubygem(yajl-ruby) => 1.1 
Requires: rubygem(yajl-ruby) < 2 
Requires: rubygem(net-ssh) => 2.6 
Requires: rubygem(net-ssh) < 3 
Requires: rubygem(net-ssh-multi) => 1.1.0 
Requires: rubygem(net-ssh-multi) < 1.2 
Requires: rubygem(highline) => 1.6 
Requires: rubygem(highline) < 2 
Requires: rubygem(highline) >= 1.6.9 
Requires: rubygem(erubis) => 2.7 
Requires: rubygem(erubis) < 3 
Requires: rubygem(diff-lcs) => 1.2 
Requires: rubygem(diff-lcs) < 2 
Requires: rubygem(diff-lcs) >= 1.2.4 
Requires: rubygem(chef-zero) => 1.6 
Requires: rubygem(chef-zero) < 2 
Requires: rubygem(chef-zero) >= 1.6.2 
Requires: rubygem(puma) => 1.6 
Requires: rubygem(puma) < 2 
Requires: rubygem(pry) => 0.9 
Requires: rubygem(pry) < 1 
BuildRequires: ruby(abi) = %{rubyabi} 
BuildRequires: rubygems-devel 
BuildRequires: ruby 
BuildArch: noarch 
Provides: rubygem(%{gem_name}) = %{version} 

%description 
A systems integration framework, built to bring the benefits of configuration 
management to your entire infrastructure. 


%package doc 
Summary: Documentation for %{name} 
Group: Documentation 
Requires: %{name} = %{version}-%{release} 
BuildArch: noarch 

%description doc 
Documentation for %{name} 

%prep 
gem unpack %{SOURCE0} 

%setup -q -D -T -n %{gem_name}-%{version} 

gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec 

%build 
mkdir -p .%{gem_dir} 

# Create the gem as gem install only works on a gem file 
gem build %{gem_name}.gemspec 


# gem install installs into a directory. We set that to be a local 
# directory so that we can move it into the buildroot in %%install 
gem install --local --install-dir ./%{gem_dir} \ 
      --bindir ./%{_bindir} \ 
      --force --rdoc %{gem_name}-%{version}.gem 

%install 
mkdir -p %{buildroot}%{gem_dir} 
cp -pa .%{gem_dir}/* \ 
     %{buildroot}%{gem_dir}/ 


mkdir -p %{buildroot}%{_bindir} 
cp -pa .%{_bindir}/* \ 
     %{buildroot}%{_bindir}/ 

find %{buildroot}%{gem_instdir}/bin -type f | xargs chmod a+x 

%files 
%{gem_instdir} 
%{_bindir}/chef-client 
%{_bindir}/chef-solo 
%{_bindir}/knife 
%{_bindir}/chef-shell 
%{_bindir}/shef 
%{_bindir}/chef-apply 
%{_bindir}/chef-service-manager 
%{gem_instdir}/bin 
%{gem_libdir} 
%exclude %{gem_cache} 
%{gem_spec} 

%files doc 
%doc %{gem_docdir} 
%doc %{gem_instdir}/README.md 
%doc %{gem_instdir}/CONTRIBUTING.md 
%doc %{gem_instdir}/LICENSE 

%changelog 
* Fri Jan 10 2014 Peeyush <[email protected]> - 11.8.2-1 
- Initial package 

:

error: Installed (but unpackaged) file(s) found: 
    /usr/share/gems/gems/chef-11.8.2/Rakefile 
    /usr/share/gems/gems/chef-11.8.2/bin/chef-apply 
    /usr/share/gems/gems/chef-11.8.2/bin/chef-client 
    /usr/share/gems/gems/chef-11.8.2/bin/chef-service-manager 
    /usr/share/gems/gems/chef-11.8.2/bin/chef-shell 
    /usr/share/gems/gems/chef-11.8.2/bin/chef-solo 
    /usr/share/gems/gems/chef-11.8.2/bin/knife 
    /usr/share/gems/gems/chef-11.8.2/bin/shef 
    /usr/share/gems/gems/chef-11.8.2/distro/README 
    /usr/share/gems/gems/chef-11.8.2/distro/arch/etc/conf.d/chef-client.conf 
    /usr/share/gems/gems/chef-11.8.2/distro/arch/etc/conf.d/chef-expander.conf 
    /usr/share/gems/gems/chef-11.8.2/distro/arch/etc/conf.d/chef-server-webui.conf 
    /usr/share/gems/gems/chef-11.8.2/distro/arch/etc/conf.d/chef-server.conf 
    /usr/share/gems/gems/chef-11.8.2/distro/arch/etc/conf.d/chef-solr.conf 
    /usr/share/gems/gems/chef-11.8.2/distro/arch/etc/rc.d/chef-client 
    /usr/share/gems/gems/chef-11.8.2/distro/arch/etc/rc.d/chef-expander 
    /usr/share/gems/gems/chef-11.8.2/distro/arch/etc/rc.d/chef-server 
    /usr/share/gems/gems/chef-11.8.2/distro/arch/etc/rc.d/chef-server-webui 
    /usr/share/gems/gems/chef-11.8.2/distro/arch/etc/rc.d/chef-solr 
    /usr/share/gems/gems/chef-11.8.2/distro/common/html/chef-client.8.html 
    /usr/share/gems/gems/chef-11.8.2/distro/common/html/chef-expander.8.html 
    /usr/share/gems/gems/chef-11.8.2/distro/common/html/chef-expanderctl.8.html 
    /usr/share/gems/gems/chef-11.8.2/distro/common/html/chef-server-webui.8.html 
    /usr/share/gems/gems/chef-11.8.2/distro/common/html/chef-server.8.html 

여기에 내 보석 사양 파일입니다. 그러나 나는 무엇을 이해할 수 없다! 모든 포인터를 부탁드립니다.

답변

0

괜찮습니다. % {gem_instdir}을 % 제외해야했습니다.