2014-02-19 34 views
1

我需要做一個非常簡單的rpm來提取一個tar.gz並將其內容放在/ var/www中,而無需執行其他任何操作。錯誤在一個簡單的.RPM

我有一個.spec應該這樣做,但它會失敗,並帶有非詳細的錯誤。

rpmlint不會引發錯誤。

這裏去規範:

Name:   redmine 
Version:  2.4.3 
Release:  1%{?dist} 
Summary:  A flexible project management web application 

Group:   Development/Tools/Other 
License:  GPL-2.0 
URL:   http://www.redmine.org/ 
Source0:  %{name}-%{version}.tar.gz 
BuildRoot:  %{_tmppath}/%{name}-%{version}-build 

BuildRequires: gcc 
Requires:  httpd 

%description 

Redmine is a flexible project management web application. 
Written using Ruby on Rails framework, it is cross-platform and cross-database. 
%prep 
%setup 

%build 

%install 
rm -rf %{buildroot} 
mkdir -p /var/www/redmine/ 
install -m 0755 * /var/www/redmine/ 
mkdir -p /var/www/redmine/tmp/ 

%clean 
rm -rf %{buildroot} 


%files 
%defattr(-,root,root,-) 
/var/www/redmine/* 
/var/www/redmine/app/* 
/var/www/redmine/config/* 
/var/www/redmine/db/* 
/var/www/redmine/doc/* 
/var/www/redmine/extra/* 
/var/www/redmine/lib/* 
/var/www/redmine/plugins/* 
/var/www/redmine/public/* 
/var/www/redmine/script/* 
/var/www/redmine/test/* 
/var/www/redmine/tmp/* 
/var/www/redmine/vendor/* 
%defattr(-,apache,apache,-) 
/var/www/redmine/tmp/* 
/var/www/redmine/files/* 
/var/www/redmine/log/* 

%post 
echo " " 
echo "installatios was successful" 

這是錯誤消息的最後一部分:

+ rm -rf /root/rpmbuild/BUILDROOT/redmine-2.4.3-1.el6.i386 
+ mkdir -p /var/www/redmine/ 
+ install -m 0755 CONTRIBUTING.md Gemfile README.rdoc Rakefile app config config.ru db doc extra files lib log plugins public script test tmp vendor /var/www/redmine/ 
install: omitting directory `app' 
install: omitting directory `config' 
install: omitting directory `db' 
install: omitting directory `doc' 
install: omitting directory `extra' 
install: omitting directory `files' 
install: omitting directory `lib' 
install: omitting directory `log' 
install: omitting directory `plugins' 
install: omitting directory `public' 
install: omitting directory `script' 
install: omitting directory `test' 
install: omitting directory `tmp' 
install: omitting directory `vendor' 
error: Bad exit status from /var/tmp/rpm-tmp.FwRGmu (%install) 


RPM build errors: 
    Bad exit status from /var/tmp/rpm-tmp.FwRGmu (%install) 

回答

0

install不上的目錄工作。用它來創建目錄,然後使用cp複製內容。

1

這個.spec文件有很多問題。下面是一些大的:在%install

  1. 絕對路徑 - 這使得它需要root建(無無),並可以在build機器上已經安裝任何東西跺腳。如果您試圖從機器複製配置,請打開所需的文件。
  2. 沒有源文件。見上文 - 你將無法獲得.src RPM。
  3. 您不擁有文件列表中的目錄(%dir)。
  4. RPMs不應觸及/var/www/ - 請參閱Fedora Packaging Guidelines
  5. 名稱衝突 - 請勿將其命名爲redmine如果它是您的特定配置。相反,Requires一個標準的redmine包和名字你的東西像redmine-companyname-config。或者使用該名稱,並且如果必須,請使用ObsoletesProvides原始redmine