Điều gì xảy ra với giao dịch RPM khi nó bị gián đoạn ở giữa?


13

Hãy tưởng tượng rằng tôi đang cài đặt với các gói RPM A, B và C. Chúng được cài đặt theo cùng một thứ tự. Và đột nhiên giữa lúc cài đặt B thì bị cắt điện.

1) liên quan đến trạng thái sau khi bật: Điều gì xảy ra với giao dịch này? Nó sẽ được nối lại? Hoặc có thể RPM sẽ xóa tất cả các gói và tệp khỏi giao dịch đó?

2) liên quan đến hành động của người dùng: RPM có yêu cầu hành động của người dùng thực hiện những việc trên hay nó tự động kiểm tra khi máy tính khởi động?

Chuyển đổi RPM được mô tả chủ yếu dưới dạng lỗi phụ thuộc hoặc lỗi khi máy tính vẫn đang chạy ...

Câu trả lời:


8

Theo nhiều cách, đây là một câu hỏi quá rộng, nhưng đây là một số sự thật:

  • các gói được tải xuống thông qua yumhoặc dnfđược lưu trữ cho đến khi một yum clean packageshoặc dnf clean packagesthao tác loại bỏ chúng.
  • các gói đã tải xuống rpmsẽ nằm ở đó cho đến khi được gỡ bỏ thủ công (trừ khi được tải xuống trong một /tmphệ thống tập tin phù du , trong trường hợp đó chúng sẽ bị mất sau khi khởi động lại)

Tuy nhiên, câu trả lời phụ thuộc vào một số điều:

  1. bạn đang ở giữa một yumhoặc dnfgiao dịch? hoặc đó là một rpmlệnh trực tiếp ? đối với trường hợp trước, yum-complete-transactionsẽ cố gắng hoàn thành tất cả các hành động đang chờ xử lý. Đối với trường hợp sau, một lần nữa, nó phụ thuộc vào giai đoạn chính xác của quá trình cài đặt đang diễn ra trong thời gian mất điện. Bạn luôn có thể cố gắng chạy rpm --force -Uvh $packageđể cài đặt lại gói bất kể trạng thái hiện tại của nó. Trường hợp xấu nhất trong trường hợp này sẽ là một rpmgói bị hỏng .

  2. các gói giả thuyết của bạn là một hoặc nhiều: grub, kernel, initramfs, dracut, lvm hoặc bất kỳ gói nào sẽ cung cấp cho bạn quyền truy cập vào hệ thống tập tin gốc của bạn? trong trường hợp này, kết quả có thể xảy ra nhất là một hệ thống không thể khởi động được cần phải sửa chữa bằng các phương tiện khác, ví dụ PXE khởi động vào hình ảnh hệ thống . Số lượng các trường hợp khác nhau có thể xảy ra tùy thuộc vào các gói liên quan và sự phụ thuộc giữa chúng làm cho không thể biết trước chính xác điều gì sẽ xảy ra.


Chào! Tôi có hiểu chính xác rằng rpmmột mình không thể cung cấp hoạt động giao dịch trong trường hợp được mô tả bởi OP, trong khi yumcó thể? Tôi đã đọc những câu chuyện kinh dị về yum , vẫn vậy sao? Là yum-complete-transactionđáng tin cậy hiện nay?
Fabio A.
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.