อะไรคือความแตกต่างระหว่าง "ประวัติย้อนหลัง dnf" และ "ยกเลิกประวัติ dnf"?


15

อ่านเอกสารทางการ :

dnf history rollback <transaction-spec> เลิกทำธุรกรรมทั้งหมดที่ทำหลังจากทำธุรกรรมที่ระบุ หากไม่สามารถยกเลิกการทำธุรกรรมใด ๆ ได้เนื่องจากสถานะปัจจุบันของ RPMDB ห้ามเลิกทำธุรกรรมใด ๆ

เน้นเป็นของฉัน ดังนั้นคำสั่งนี้หมายถึงundoคำสั่ง โอเคเรามาอ่านเอกสารที่เกี่ยวข้องกับการเลิกทำ:

dnf history undo <transaction-spec> ดำเนินการตรงข้ามกับการดำเนินการทั้งหมดที่ทำในธุรกรรมที่ระบุ หากไม่สามารถยกเลิกการดำเนินการใด ๆ เนื่องจากสถานะปัจจุบันของ RPMDB ห้ามเลิกทำการดำเนินการใด ๆ

ดูเหมือนว่าทั้งสองคำสั่งทำสิ่งเดียวกันโดยมีข้อยกเว้นที่ในอดีตสามารถยกเลิกการทำธุรกรรมได้หลายอย่าง

ความเข้าใจนี้ถูกต้องหรือไม่ (ฉันขอขอบคุณคำตอบจากประสบการณ์มือแรกไม่ใช่จากมุมมองว่าคุณตีความคู่มืออย่างไรฉันสนใจในข้อเท็จจริงไม่ใช่เดา)

บริบท: ฉันต้องเขียนสคริปต์ที่ทำงานdnf upgrade -yแล้วเรียกใช้การทดสอบบางอย่างแล้วย้อนกลับการเปลี่ยนแปลง dnfหากการทดสอบล้มเหลว ฉันกำลังมองหาวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้

คำตอบ:


18

undoยกเลิกการทำธุรกรรมเฉพาะนั้นในขณะที่rollbackเลิกทำทุกสิ่งระหว่างธุรกรรมและสถานะปัจจุบันของระบบ

ตัวอย่าง: คุณติดตั้งhtopแล้วติดตั้งในภายหลังncduและglancesตามมาmcในวันถัดไป

คุณต้องการเลิกทำการติดตั้ง htop ในภายหลังดังนั้นคุณจึงใช้ฟังก์ชั่นเลิกทำเพื่อพยายามเลิกทำการติดตั้ง htop แต่ยังคงรักษาโปรแกรมอื่นที่คุณติดตั้งไว้ในภายหลัง

ถ้าคุณย้อนกลับไปยังรายการที่มีการติดตั้งhtopคุณต้องการแทนที่จะยกเลิกการติดตั้งncdu, glancesและในขณะที่ยังคงรักษาmchtop


1
อ๋อฉันว่าฉันเองก็เข้าใจเหมือนกัน แต่อยากจะยืนยันขอบคุณที่ทำเช่นนั้น! ;)
Andrew Savinykh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.