Có thể nhưng rất khó để làm điều này để nó được thực hiện chính xác. Nếu bạn tuyệt vọng, bạn có thể tạo .spec
tệp RPM mới và tạo tệp RPM nguồn "giả" (SRPM) mà sau đó bạn có thể sử dụng để tạo tệp RPM kết quả bằng cách sử dụng rpmbuild --rebuild
.
Tôi sẽ tiếp tục tìm kiếm RPM thực tế thay thế. Bạn không nói rõ câu hỏi của bạn nhưng đó là kinh nghiệm của tôi rằng bạn có thể tìm thấy bất cứ điều gì trên internet nếu bạn biết cách tìm kiếm nó. Tôi đã tìm thấy các phiên bản RPM cổ xưa cho các bản phát hành Red Hat đã không được sử dụng trong hơn 10 năm, vì vậy tôi cảm thấy khó tin rằng không có phần còn lại của RPM này ở bất cứ đâu.
Ngoài ra, bạn có thể thường xuyên quay lại nguồn của ứng dụng có trong RPM và sử dụng nó để tái cấu trúc RPM. Thông thường, các ứng dụng nguồn sẽ bao gồm một .spec
tệp cần thiết được sử dụng để xây dựng lại RPM.
Cuối cùng, bạn có thể lấy nguồn và .spec
tệp từ một dịch vụ xây dựng, chẳng hạn như các bản phân phối dựa trên Koji cho Red Hat. SuSE cũng duy trì các dịch vụ xây dựng tương tự để bạn có thể tìm kiếm thông qua các dịch vụ xây dựng cũ này.
Lấy nhị phân như là
Bạn có thể sử dụng phương pháp này để nâng các tệp thực thi thực tế từ một hệ thống và đưa chúng lên để triển khai trên một hệ thống khác.
máy A
$ rpm -ql <packageNameHere> | xargs tar -zcvf /tmp/program.tgz
máy B
$ tar -zxvf /path/to/your/program.tgz
Phiên bản RPM của SLES
Theo một trong những bài viết trong chủ đề này: Re: Cách tạo các gói cài đặt RPM fron rpm
trên SLES được dự định để có công tắc --repackage
. Điều này không tồn tại trên phiên bản Red Hat (trong Fedora hoặc CentOS). Nhưng theo bài đăng bạn có thể sử dụng nó như vậy:
$ rpm -e --repackage <somepackage>
Sau khi hoàn thành, bạn sẽ thấy RPM của mình có thể truy cập tại đây:
/var/spool/repackage
Sử dụng rpmerizor
Rpmerizor là một công cụ / tập lệnh của bên thứ 3 mà bạn có thể cài đặt sẽ đóng gói lại các tệp nguồn thành một RPM tương ứng. Việc sử dụng tập lệnh này có thể truy cập ở đây, có tiêu đề: trang người đàn ông của rpmerizor .
đoạn trích
Rpmerizor là một tập lệnh cho phép bạn tạo gói RPM từ các tệp đã cài đặt. Bạn chỉ cần xác định các tệp trên dòng lệnh và trả lời một số câu hỏi tương tác để điền vào siêu dữ liệu vòng / phút (tên gói, phiên bản ...). Bạn cũng có thể sử dụng nó trong chế độ hàng loạt với các tùy chọn dòng lệnh cho siêu dữ liệu.
Sử dụng rpmrebuild
Đừng nhầm lẫn với công cụ xây dựng rpmbuild
, rpmrebuild
là một tập lệnh bên thứ 3 khác mà bạn có thể sử dụng để thực hiện đóng gói lại RPM đã được cài đặt.
đoạn trích
rpmrebuild là một công cụ để xây dựng tệp RPM từ gói đã được cài đặt trong sử dụng cơ bản, sử dụng rpmrebuild không yêu cầu bất kỳ kiến thức xây dựng vòng / phút nào. (Trên debian, sản phẩm tương đương là dpkg-repack).
Thí dụ
Nói rằng chúng tôi muốn đóng gói lại openssh-server.
$ rpm -aq | grep openssh-server
openssh-server-6.2p2-8.fc19.x86_64
Bây giờ gói nó:
$ rpmrebuild openssh-server-6.2p2-8.fc19.x86_64
/usr/lib/rpmrebuild/rpmrebuild.sh: WARNING: some files have been modified:
..?...... c /etc/ssh/sshd_config
..?...... c /etc/sysconfig/sshd
Do you want to continue ? (y/N) y
Do you want to change release number ? (y/N) n
result: /root/rpmbuild/RPMS/x86_64/openssh-server-6.2p2-8.fc19.x86_64.rpm
Người giới thiệu