Làm cách nào để cài đặt chính xác các gói giống nhau trên một máy tính khác trong openSUSE?


8

Một máy tính khác có thể là máy ảo. Tôi không thể tạo bản sao đĩa vì sự khác biệt về phần cứng và cài đặt.

Tôi có máy tính A, đã cài đặt và chạy, tôi cũng có máy tính B. Tôi sẽ cài đặt cùng một hệ điều hành trên B, vì vậy tôi sẽ có cùng hệ thống cơ sở.

Sau đó, bằng tay tôi sẽ thêm các kho tương tự như trên A.

Nhưng giai đoạn cuối cùng nằm ngoài tôi - làm thế nào để cài đặt các gói giống như trên A? Lưu ý rằng phiên bản phải khớp, không chỉ tên gói.

Tất nhiên tôi đang tìm cách tự động, không phải cài đặt thủ công từng cái một.

Trong thực tế, tôi sẽ nhận được cấu hình phần cứng hoàn toàn khác nhau, cài đặt sạch (không có mật khẩu cũ, v.v.), nhưng lựa chọn phần mềm giống hệt nhau.

Câu hỏi

Làm thế nào để làm nó?

Lý lịch

Các gói (mỗi phiên bản) có sẵn nhưng không phải là gói mới nhất. Mục đích của việc này là tạo một "bản sao" của hệ thống đang chạy, nâng cấp các gói trên máy tính B (bản sao), kiểm tra xem nó có hoạt động không, nếu có, sau đó nâng cấp A. Với mỗi phiên bản HĐH mới, tôi gặp phải nhiều lỗi hồi quy và Tôi phải kiểm tra nó một cách có phương pháp hơn là thử nghiệm trực tiếp và hoảng loạn.

mởSUSE 11.4


các gói của máy tính A được cập nhật mới nhất từ ​​repos phải không? (tôi đang hỏi điều đó bởi vì nó có thể làm cho câu trả lời ngắn hơn và cuộc sống của bạn dễ dàng hơn).
Hanan N.

@Hanan N., không, điều đó sẽ dễ dàng hơn tôi biết, đó là lý do tại sao tôi đưa ra quan điểm về các phiên bản chính xác.
greenoldman

Câu trả lời:


3

Âm thanh như bạn phải xây dựng kho lưu trữ của riêng bạn.

Đặt RPM của bạn trong phiên bản mong muốn của bạn vào kho lưu trữ đó. Sau đó kích hoạt các kho lưu trữ này trên cả hai máy (dưới dạng nguồn cài đặt) và cài đặt các gói.


Cảm ơn bạn, tôi không đánh dấu đây là giải pháp (vì), bởi vì có thể ai đó sẽ đưa ra một cách tiếp cận khác - như, tạo danh sách (rpm -qa) và cài đặt các gói đó trong phiên bản đã cho trên một máy khác. Tuy nhiên cách tiếp cận của bạn quy mô tốt hơn (tải xuống duy nhất cho mỗi gói).
greenoldman

2

Xem như OpenSuse sử dụng RPM, bạn có thể sử dụng rpmtiện ích.

rpm -qasẽ liệt kê tất cả các gói hiện được cài đặt trên hệ thống của bạn (một danh sách rất dài). Danh sách bao gồm tên gói, số phiên bản và kiến ​​trúc. Bạn có thể viết danh sách vào một tệp và cung cấp cho zypper tệp trên hệ thống mới.

Có thể có một số gói đã được cài đặt theo mặc định, nhưng zypper sẽ bỏ qua chúng và cài đặt những gói bạn cần.


Chà, bạn vừa sao chép bình luận của tôi để chúng tôi đồng ý trong bức tranh lớn, nhưng ma quỷ nằm trong chi tiết - làm thế nào để bạn buộc zypper không cài đặt gói P, mà là P-1.23, tức là với phiên bản đã cho? Bởi vì điều này rất quan trọng ở đây (theo mặc định, đầu ra của vòng / phút KHÔNG tương thích với định dạng đầu vào của zypper).
greenoldman

Đối với hồ sơ, tôi đã đăng bài này trước khi bạn đăng bình luận của bạn hoặc bạn đăng nó trong khi tôi đang viết câu trả lời của mình. Đối với zypper, có, bạn có thể sử dụng đầu ra rpm -qalàm đầu vào cho zypper. Nó hiểu định dạng của gói hoàn toàn tốt. Tôi đã không kiểm tra xem liệu nó có tuân theo số phiên bản hay không, nhưng nó phụ thuộc nhiều vào việc các kho lưu trữ có giữ các phiên bản trước đó hay không. Nếu repos không, thì bạn không thể làm gì nhiều với nó.
n0pe

Bạn mâu thuẫn với chính mình, "Tôi chưa thử nghiệm xem nó có tuân theo số phiên bản không" nhưng "Nó hiểu định dạng của gói hoàn toàn tốt". Vì vậy, tôi làm rõ - nó không hỗ trợ đầu ra vòng / phút. Để chỉ định phiên bản, bạn phải thêm bộ định lượng và đây là một phần khó khăn, vì việc đặt tên gói chỉ là quy ước, nó không bị ép buộc bởi bất kỳ trình xác nhận nào. Xem: en.opensuse.org/SDB:Zypper_usage_11.3#Selecting_packages
greenoldman

1

Đầu tiên liệt kê tất cả các gói đã cài đặt và các phiên bản của chúng trong máy bạn đang cố gắng tạo một "bản sao" của: rpm -qa > /tmp/rpm.list.txt .

Sau đó sao chép /tmp/rpm.list.txthệ thống mà bạn đang cố biến thành "bản sao" của hệ thống khác và chạy zypper và cung cấp cho nó danh sách gói bạn vừa tạo: zypper install $(cat /tmp/rpm.list.txt)(hoặc bất cứ nơi nào bạn đặt tệp chứa danh sách các gói từ hệ thống nguồn ).

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.