- Tôi có thể trích xuất tệp từ tệp RPM, nhưng làm cách nào để "tạo lại" tệp, ví dụ: cpio2rpm?
- Tôi đã trích xuất tệp RPM bằng lệnh sau. rpm2cpio theFileName.rpm | cpio –idmv
- Tôi phải sửa đổi một số tệp ứng dụng web như * .php, * .html hoặc .js. Những tệp này không yêu cầu bất kỳ nguồn biên dịch lại nào. Vì vậy, tôi muốn thay thế hoặc thay đổi các tập tin này với sửa đổi mà không cần xây dựng lại rpm. Kể từ đó, tôi cần phải làm điều này cho nhiều nền tảng như Redhat Linux và SUSE, và nhiều kiến trúc như 32 và 64 bit OS.
- Tôi hy vọng sẽ thực hiện những thay đổi này chỉ trên hệ thống và không cần xây dựng lại rpm và sẽ không có phụ thuộc vào kiến trúc hệ thống đích (như i386, 64).
- Tôi không giống lệnh rpmbuild –rebuild the.src.rpm vì tôi không có nguồn. Tôi cần phải xây dựng lại tệp nhị phân .RPM (không phải là nguồn .rpm)
Tôi muốn thực hiện điều này mà không cần nguồn và nền tảng hoặc kiến trúc độc lập và không sử dụng tệp spec nếu có thể.Làm thế nào để "đóng gói lại" một tệp RPM ví dụ cpio2rpm mà không cần cài đặt RPM?
Bất kỳ bạn thân nào, bạn có thể đề xuất bất kỳ giải pháp hay công cụ miễn phí nào không.
Cảm ơn tất cả những ai dành thời gian để đọc và trả lời chủ đề của tôi.
Trả lời
Thực chất bạn có thể đóng gói mọi thứ bạn muốn vào tệp RPM. Chỉ cần xử lý những gì bạn có là "nguồn" và viết một tập tin SPEC mà đặt dữ liệu nơi các tập tin nhị phân biên dịch thường sẽ đi.
Về RPM, tôi xem xét "nguồn" "những gì tôi có" và "nhị phân" "những gì tôi cần để chạy". Không phải là thuật ngữ rất chính xác, nhưng nó giúp làm việc với RPM.
file spec của bạn trông giống như bất kỳ file spec khác, những gì liên quan đến các thông số vv Nhưng phần code is khác nhau:
[...]
%prep
# Here you either have nothing to do or you already unpack the cpio and possibly modify it.
# %build can be omitted
%install
[ "${buildroot}" != "/" ] && [ -d ${buildroot} ] && rm -rf ${buildroot};
# Here you can either unpack the cpio or copy the data unpacked in %prep.
# Be careful to put it into %{buildroot} or $RPM_BUILD_ROOT.
Bạn có thể đóng gói lại một RPM cài đặt (bao gồm cả tập tin sửa đổi) sử dụng rpmrebuild. Rõ ràng là các tệp nhị phân (nếu có) sẽ phải là nền tảng/kiến trúc độc lập để làm việc trên tất cả các hương vị hệ điều hành mà bạn mong đợi, nhưng có vẻ như chúng chỉ là các tệp web không nên là một vấn đề.
Bạn có thể sử dụng rpmrebuild để sửa đổi tệp rpm thực (không cần cài đặt).
Hầu hết các ví dụ cho việc này sử dụng lệnh chỉnh sửa nội dòng phức tạp để sửa đổi các tệp đã biết theo những cách cụ thể nhưng bạn có thể sử dụng trình chỉnh sửa thông thường. Tôi đã sử dụng điều này để sửa một kịch bản lệnh shell trong một tệp rpm mà tôi không có nguồn. Gọi lệnh dưới dạng
rpmrebuild -ep theFileName.rpm
Điều này đặt bạn vào trình chỉnh sửa với tệp thông số cho RPM. Tên của tệp sẽ có dạng như ~/.tmp/rpmrebuild.12839/work/spec.2
. Nếu bạn nhìn vào, trong ví dụ này, ~/.tmp/rpmrebuild.12839/work
, bạn sẽ tìm thấy tất cả các tệp được sử dụng để tạo RPM (trong trường hợp của tôi, tệp nằm trong root/usr/sbin
trong thư mục đó). Vì vậy, đi đến cửa sổ khác, cd vào thư mục đó và chỉnh sửa bất kỳ tệp nào bạn cần thay đổi.
Khi bạn hoàn tất chỉnh sửa tệp, quay lại cửa sổ chỉnh sửa bằng tệp spec, thực hiện bất kỳ thay đổi nào bạn cần cho tệp đó (Tôi không có bất kỳ thay đổi nào vì tôi không thêm hoặc xóa tệp) tệp và nói "y" với câu hỏi "Bạn có muốn tiếp tục" không. Sau đó, nó sẽ tạo một tệp RPM mới và cho bạn biết vị trí đã đặt nó (trong trường hợp của tôi, trong ~/rpmbuild/RPMS/x86_64 /)
- 1. Nâng cấp RPM gỡ cài đặt RPM
- 2. RPM - Cài đặt thông số thời gian
- 3. trừ các loại tập tin khi đóng gói một rpm
- 4. Làm thế nào để kiểm tra đầu bếp cho gói RPM và sau đó cài đặt?
- 5. Một số nhóm trong gói RPM
- 6. Maven RPM Plugin không tìm thấy lệnh rpm trong intellij
- 7. Làm cách nào để tìm hiểu w/YUM hoặc RPM tệp nào được cài đặt?
- 8. Làm cách nào để tìm gói rpm nào cung cấp tệp tôi đang tìm?
- 9. RPM Python Tôi xây dựng sẽ không cài đặt
- 10. Đóng gói một tệp JAR duy nhất dưới dạng RPM đúng cách
- 11. rpm cài đặt biểu tượng cho máy tính để bàn
- 12. Cài đặt mô-đun perl: cpan shell vs rpm/deb
- 13. Cài đặt gcc-C++ trên CentOS mà không cần yum
- 14. Tự động cài đặt phụ thuộc xây dựng trước khi tạo gói RPM
- 15. Có cách nào để chạy cài đặt RPM song song không?
- 16. Làm cách nào để sử dụng rpm để cập nhật/thay thế các tệp hiện có?
- 17. Sử dụng Hudson để xây dựng gói RPM
- 18. Cài đặt java - tôi có nên sử dụng tệp .rpm hoặc .tar.gz không?
- 19. Làm thế nào để loại trừ thư mục trong bản đồ rpm trong tệp pom?
- 20. Làm thế nào để liệt kê các tệp được cài đặt bởi một Trình cài đặt Windows đã cho?
- 21. Kiểm tra các gói đã cài đặt và nếu không tìm thấy cài đặt
- 22. Làm cách nào để tạo RPM phụ thuộc vào gói HOẶC gói b?
- 23. cài đặt rpm không thành công do depencency/bin/sh không tìm thấy
- 24. rpmbuild Đã cài đặt (nhưng chưa được đóng gói) các tệp nguồn
- 25. Làm thế nào để cài đặt Oracle Java 7 trong một ví dụ Amazon Elastic Beanstalk
- 26. Rpm nâng cấp xử lý các tệp cấu hình
- 27. Lỗi cú pháp: newline unexpected node.js rpm
- 28. làm thế nào để xác định một macro spec rpm với cơ thể trống rỗng?
- 29. Làm cách nào để tải xuống gói từ apt-get mà không cần cài đặt?
- 30. Cài đặt Gói R mà không cần Internet
Tuyệt vời! Có cách nào để tự động hóa nó trong một số kịch bản? –