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?
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
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.) –
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