Xây dựng RPM bằng thư mục nguồn, không phải tarball


13

Trong tổ chức của tôi, chúng tôi triển khai tất cả phần mềm của mình cho các máy sản xuất bằng RPM. Quá trình xây dựng của chúng tôi (được tự động hóa) bao gồm kiểm tra nguồn từ kiểm soát phiên bản, mở rộng thư mục nguồn đó, sau đó chạy rpmbuild bằng tarball nguồn đó. rpmbuild chỉ sử dụng tarball đó để gỡ các nguồn để làm việc với chúng. Vì vậy, có vẻ như toàn bộ hoạt động kinh doanh taring và unared chỉ là một bước bổ sung không cần thiết trong quá trình xây dựng. Có cách nào để chỉ định thư mục nguồn trong tệp spec, tránh các bước bổ sung đó không?

Câu trả lời:


5

Đúng, bạn có thể làm điều đó. Không liệt kê bất kỳ Sources. Trong %prepphần không sử dụng %setupmacro (mở khóa nguồn); thay vào đó, chỉ cần kiểm tra nguồn.

Lưu ý rằng bạn sẽ không thể tạo SRPM nếu bạn làm điều này.


Điều này làm điều đó. Tôi chỉ cần sửa đổi quy trình xây dựng để kiểm tra mọi thứ vào thư mục BUILD vòng / phút. Cảm ơn!
Eddie

10

Câu hỏi này hơi cũ, nhưng trong trường hợp người khác tìm thấy nó trong tìm kiếm, có một cách chính xác hơn để làm điều này cũng cho phép tạo ra một SRPM.

Trong phần chuẩn bị, thay vì sử dụng macro thiết lập , thay vào đó bạn chỉ nên tự gõ những gì bạn muốn làm, cụ thể là sao chép thư mục nguồn từ SOURCES sang BUILD, thay vì giải nén tệp lưu trữ. Tôi thấy rằng sau đó bạn cũng phải thêm một cd vào thư mục nguồn của bạn trong phần xây dựng và cài đặt.

Đoạn trích ví dụ

%prep
# Don't use the setup macro anymore, replace it with typed-out commands
#%setup -q -n myapp-%{version}
cd %{_topdir}/BUILD
rm -rf myapp-%{version}
cp -rf %{_topdir}/SOURCES/myapp-%{version} .
cd myapp-%{version}
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .

%patch1 -p1 -b .cert-config
%patch2

%build
cd myapp-%{version}

%install
cd myapp-%{version}

Nên %{_topdir}/SOURCESđược %{_sourcedir}? Và %{_topdir}/BUILDcó thể được %{buildroot}? (Là một sang một bên, cho các tình huống tương tự nhưng khác nhau-nơi bạn đang cố gắng để thêm các tập tin phụ để ghi đè lên những chiết xuất từ %setup, các tài liệu Fedora khuyên bạn sử dụng %{SOURCE2}vv - fedoraproject.org/wiki/Packaging:RPM_Source_Dir )
IBBoard
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.