2012-12-28 16 views
5

Tôi đang cố tạo một gói chỉ cập nhật tệp trên hệ thống, nhưng tôi vẫn gặp phải lỗi khi rpmbuild là chạy. Lỗi cho biết tệp bị thiếu.vấn đề rpmbuild trên CentOS - Tình trạng thoát xấu từ /home/me/rpmbuild/tmp/rpm-tmp.58942

Tôi đã thử điều này trên CentOS 5 và 6 với cùng kết quả.

Tôi đã sử dụng rpmdev-setuptree để thiết lập hệ thống tệp, cũng thiết lập tệp ~/.rpmmacros. Sau đó tôi đã sử dụng rpmdev-newspec để khởi tạo tệp spec.

Tôi đang chạy với tư cách người dùng không phải root.

Tôi có tệp spec trong ~/rpmbuild/SPECS/test.spec và nguồn của tôi là: ~/rpmbuild/SOURCES/test-1.tar.gz. Việc trích xuất tệp này sẽ tạo một thư mục có tên là test-1 với 2 tệp bên trong tệp. Tôi đã xác nhận rằng nó được trích xuất thành ~/rpmbuild/BUILD/test-1 khi tôi cố gắng xây dựng gói.

tôi chạy: rpmbuild -ba ~/rpmbuild/SPECS/test.spec

Sau đó, tôi nhận được lỗi này:

  • ./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)

Dưới đây là file spec của tôi:

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 

Bất kỳ ý tưởng về những gì tôi có thể làm sai?

Trả lời

4

Hình như mặc định GNU "./configure" kịch bản là không có, vì vậy bạn chưa thể sử dụng macro mặc định %setup trong file spec và sẽ cần một phần tùy chỉnh %prep ... (One source)(mirror)

+0

Tôi couldn' t tìm ra cách ghi đè macro để ngăn không cho nó thực hiện './configure', nhưng tôi đặt một tệp cấu hình trống trong thư mục gốc của nguồn và nó cho phép tôi hoàn tất việc xây dựng. Cảm ơn đã cho tôi đi đúng hướng. – Coder1

+4

Xin lỗi - tôi nên nhìn kỹ hơn! PITA "tính năng" nổi tiếng của RPM là bạn không thể nhận xét ra một macro như bạn đã làm ở trên. Bạn phải đặt '# %% configure' hoặc nó chỉ nhận xét ra * dòng đầu tiên * của macro! ('%' Đầu tiên thoát khỏi cái thứ hai.) –

+1

Xác nhận tôi có thể xây dựng vòng/phút mà không cần tệp cấu hình ngay bây giờ bằng '%' bổ sung trong nhận xét hoặc bằng cách loại bỏ hoàn toàn dòng đó. Tôi đã nghĩ rằng bình luận của tôi đã hoạt động hiệu quả. Cảm ơn! – Coder1

Các vấn đề liên quan