จะเกิดอะไรขึ้นกับธุรกรรม RPM เมื่อถูกขัดจังหวะตรงกลาง


13

ลองนึกภาพว่าฉันกำลังติดตั้งด้วยแพ็คเกจ RPM A, B และ C พวกเขาติดตั้งในลำดับเดียวกัน และทันใดนั้นในระหว่างการติดตั้ง B ก็มีไฟตัด

1) เกี่ยวกับสถานะหลังจากเปิด: เกิดอะไรขึ้นกับธุรกรรมนี้ มันจะกลับมาทำงานต่อหรือไม่ หรืออาจจะ RPM จะลบแพ็คเกจและไฟล์ทั้งหมดออกจากธุรกรรมนั้น?

2) เกี่ยวกับการกระทำของผู้ใช้: RPM ต้องการให้ผู้ใช้ดำเนินการดังกล่าวหรือตรวจสอบโดยอัตโนมัติเมื่อคอมพิวเตอร์เริ่มทำงานหรือไม่

การแปลง RPM มีการอธิบายเป็นหลักในแง่ของข้อผิดพลาดในการพึ่งพาหรือข้อผิดพลาดเมื่อคอมพิวเตอร์ยังคงทำงาน ...

คำตอบ:


8

นี่คือคำถามที่กว้างเกินไปในหลาย ๆ ด้าน แต่นี่คือข้อเท็จจริงบางประการ:

  • แพ็คเกจที่ดาวน์โหลดผ่านyumหรือdnfถูกแคชจนกว่าจะมีการลบyum clean packagesหรือdnf clean packagesการดำเนินการ
  • แพคเกจที่ดาวน์โหลดผ่านrpmจะอยู่ที่นั่นจนกว่าจะลบออกด้วยตนเอง (เว้นแต่ดาวน์โหลดใน/tmpระบบไฟล์ชั่วคราวซึ่งในกรณีนี้จะหายไปหลังจากรีบูต)

แต่คำตอบนั้นขึ้นอยู่กับหลาย ๆ สิ่ง:

  1. เป็นคุณในช่วงกลางของการyumหรือdnfการทำธุรกรรม? หรือว่ามันเป็นrpmคำสั่งโดยตรง? สำหรับกรณีเดิมyum-complete-transactionจะพยายามทำให้การกระทำที่ค้างอยู่ทั้งหมดเสร็จสิ้น สำหรับกรณีหลังอีกครั้งมันขึ้นอยู่กับขั้นตอนที่แน่นอนของการติดตั้งที่เกิดขึ้นในช่วงที่ไฟฟ้าดับ คุณสามารถลองใช้rpm --force -Uvh $packageเพื่อติดตั้งแพคเกจใหม่โดยไม่คำนึงถึงสถานะปัจจุบัน สถานการณ์กรณีที่เลวร้ายที่สุดในกรณีนี้จะเป็นrpmแพคเกจที่ใช้งานไม่ได้

  2. แพ็คเกจสมมุติของคุณมีอย่างน้อยหนึ่งอย่าง: grub, kernel, initramfs, dracut, lvm หรือแพ็คเกจใด ๆ ที่จะให้คุณเข้าถึงระบบไฟล์รูทของคุณ? ในกรณีนี้น่าจะเป็นที่สุดผลเป็นระบบ unbootable ที่จำเป็นต้องได้รับการซ่อมแซมโดยวิธีอื่นเช่น PXE บูตเป็นsystemrescueภาพ จำนวนกรณีต่าง ๆ ที่อาจเกิดขึ้นได้ขึ้นอยู่กับแพ็คเกจที่เกี่ยวข้องและการพึ่งพาระหว่างกันทำให้ไม่ทราบล่วงหน้าว่าจะเกิดอะไรขึ้น


Hi! ฉันเข้าใจว่าถูกต้องหรือrpmไม่ที่ไม่สามารถให้การทำธุรกรรมในกรณีที่ OP อธิบายได้ในขณะที่yumทำได้ ฉันเคยอ่านเรื่องสยองขวัญเกี่ยวกับยำนั่นเป็นกรณีที่เกิดขึ้นหรือไม่? เป็นyum-complete-transactionที่น่าเชื่อถือในปัจจุบัน?
Fabio A.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.