2012-12-28 11 views
5

से एक खराब निकास स्थिति मैं एक पैकेज बनाने की कोशिश कर रहा हूं जो केवल सिस्टम पर फ़ाइलों को अद्यतन करता है, लेकिन rpmbuild होने पर मुझे त्रुटियां मिलती रहती हैं चलाते हैं। त्रुटि इंगित करती है कि एक फ़ाइल गुम है।CentOS पर rpmbuild मुद्दों - /home/me/rpmbuild/tmp/rpm-tmp.58942

मैंने उसी परिणाम के साथ CentOS 5 और 6 पर यह कोशिश की है।

मैंने फ़ाइल सिस्टम सेटअप करने के लिए rpmdev-setuptree का उपयोग किया, जो ~/.rpmmacros फ़ाइल भी सेट करता है। मैंने spec फ़ाइल को आरंभ करने के लिए rpmdev-newspec का उपयोग किया।

मैं एक गैर-रूट उपयोगकर्ता के रूप में चल रहा हूं।

मेरे पास ~/rpmbuild/SPECS/test.spec में spec फ़ाइल है और मेरा स्रोत है: ~/rpmbuild/SOURCES/test-1.tar.gz। इस फ़ाइल को निकालने से test-1 नामक एक निर्देशिका बनाई गई है जिसमें 2 फाइलें हैं। मैंने पुष्टि की है कि जब मैं पैकेज बनाने की कोशिश करता हूं तो इसे ~/rpmbuild/BUILD/test-1 पर निकाला जाता है।

मैं चलाएँ: rpmbuild -ba ~/rpmbuild/SPECS/test.spec

तब मैं इस त्रुटि मिलती है:

  • ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info /home/me/rpmbuild/tmp/rpm-tmp.58942: line 37: ./configure: No such file or directory error: Bad exit status from /home/me/rpmbuild/tmp/rpm-tmp.58942 (%build)

RPM build errors: Bad exit status from /home/me/rpmbuild/tmp/rpm-tmp.58942 (%build)

यहाँ मेरी कल्पना फ़ाइल है:

Name:   test 
Version:  1 
Release:  1%{?dist} 
Summary:  Test 

Group:   Test 
License:  GPL 
URL:   http://example.com 
Source0:  test-1.tar.gz 
BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 

#BuildRequires: 
#Requires:  

%description 
This is a test to push files. 

%prep 
%setup -q 

%build 
#%configure 
#make %{?_smp_mflags} 

%install 
rm -rf $RPM_BUILD_ROOT 
#make install DESTDIR=$RPM_BUILD_ROOT 
install -m 0755 -d $RPM_BUILD_ROOT/opt/test 

%clean 
rm -rf $RPM_BUILD_ROOT 

%files 
%dir /opt/test 
%defattr(-,root,root,-) 
%doc 

मैं गलत क्या कर रहा हो सकता है पर कोई भी विचार?

उत्तर

4

डिफ़ॉल्ट जीएनयू "./configure" स्क्रिप्ट वहाँ नहीं है, तो आप कल्पना फ़ाइल में डिफ़ॉल्ट %setup मैक्रो का उपयोग नहीं कर सकते हैं और एक कस्टम %prep खंड की आवश्यकता होगी ऐसा लगता है ... (One source)(mirror)

+0

मैं नहीं कर सके ' यह पता लगाने के लिए मैक्रो को ओवरराइड करने के लिए कैसे करें।// config' को निष्पादित करने से रोकने के लिए, लेकिन मैंने स्रोत की जड़ में एक खाली कॉन्फ़िगरेशन फ़ाइल डाली और इसे मुझे निर्माण को पूरा करने की अनुमति दी। मुझे सही रास्ते पर रखने के लिए धन्यवाद। – Coder1

+4

क्षमा करें - मुझे करीब देखना चाहिए था! RPM का एक प्रसिद्ध पिटा "फीचर" यह है कि आप ऊपर की तरह मैक्रो को टिप्पणी नहीं कर सकते हैं। आपको '# %% कॉन्फ़िगरेशन 'रखना होगा या यह केवल मैक्रो के * पहली पंक्ति * को टिप्पणी करेगा! (पहला '%' दूसरे से निकलता है।) –

+1

पुष्टि की गई है कि मैं टिप्पणी में अतिरिक्त '%' के साथ कॉन्फ़िगरेशन फ़ाइल के बिना आरपीएम का निर्माण कर सकता हूं, या पूरी तरह से उस पंक्ति को हटा कर। मैं सोच रहा था कि मेरी टिप्पणी प्रभावी ढंग से काम कर रही थी। धन्यवाद! – Coder1