ฉันจะ“ ถือ” แพ็คเกจในเดเบียนอย่างน่าเชื่อถือได้อย่างไร


15

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

  • apt-pinning (ดูapt_preferences(5))
  • aptitude hold
  • dpkg --set-selections
  • ตั้งค่าด้วยdselectหรือไม่

ฉันได้อ่านแล้วว่าการระงับหนึ่งรายการจะไม่ส่งผลกระทบต่ออีก (ตัวอย่างเช่นการใช้aptitude holdจะไม่ป้องกันapt-getหรือdselectอัปเกรดแพ็คเกจ) สิ่งที่ต้องทำเพื่อให้แน่ใจได้ 100% ว่าเครื่องมือของเดเบียนจะไม่อัพเกรดแพ็คเกจเว้นแต่ฉันจะยกเลิกการระงับ


1
เพียงแสดงความคิดเห็นเมื่อ 9 ปีที่แล้วมีคนสร้างข้อผิดพลาดในระบบบั๊กของ Debian เกี่ยวกับวิธีที่สามารถถือแพคเกจจริง ๆ และดูเหมือนว่ามี (หรือเคย) ปัญหาบางอย่างที่ใช้ความถนัดมือถือ (ลิงค์: bugs.debian.org/cgi-bin/ bugreport.cgi? bug = 146207 )
Luciano Facchinelli

1
ใครบางคนจะเป็นฉัน :-) ยังเป็นข้อผิดพลาดที่เปิดแม้ว่าคนที่เพิ่งฟื้นความถนัดความสามารถกล่าวว่าพวกเขาจะดู
Faheem Mitha

1
Daniel Hartwig เขียนถึงฉัน: "รับทราบปัญหานี้ด้วยการถือครองตั้งแต่ฉันเริ่มทำงานกับความถนัดในขณะนี้ฉันไม่ได้ให้มันดูอย่างละเอียดเป็นโฟกัสของฉันได้รับการทำงานหลายโค้งอายุและความสำคัญไม่ข่มขู่ ฉันบิตนอกจากนี้ยังมีเรื่องที่ความถนัดค่อนข้าง "ตีความ" dpkg ระบุเมื่อเริ่มต้นเพื่อตรวจสอบสิ่งที่ถ้ามีการเปลี่ยนแปลงและวิธีการที่พวกเขาควรรวมเข้ากับรูปแบบของรัฐภายในมั่นใจได้ว่าสิ่งนี้จะไม่ถูกทิ้งไว้ตามลำพัง - - ฉันมักจะคำนึงถึงมันเสมอเมื่อดูที่ส่วนที่เกี่ยวข้องของรหัส "
Faheem Mitha

1
bugs.debian.org/146207ได้รับการแก้ไขในเวอร์ชันของความถนัดที่อัปโหลดไปไม่เสถียร
Faheem Mitha

คำตอบ:


8

aptitudeและdpkgมีฟังก์ชั่นการพักแยกต่างหากซึ่งจะไม่เคารพซึ่งกันและกัน ดังนั้นคุณต้องตั้งค่าทั้งสองถ้าคุณใช้เครื่องมือทั้งสอง

ฉลาด / dpkg: echo $PACKETNAME hold | dpkg --set-selections

ความถนัด: aptitude hold $PACKETNAME


3
ปรากฏว่ามีอยู่ในขณะนี้apt-mark holdซึ่งตามhelp.ubuntu.com/community/...dpkg --set-selectionsไม่เป็นสิ่งเดียวกับ
andyg0808

3

วิธีที่ดีกว่าในกรณีนี้ (แพคเกจแพตช์) อาจเป็นการติดตั้งเวอร์ชันที่ได้รับการติดตั้ง/usr/localมา เดเบียนจะไม่แตะต้องมัน


0

เท่าที่ฉันรู้aptitude hold <package>คนอื่น ๆ จะได้รับเกียรติเว้นแต่คุณจะสั่งให้อัพเกรดอย่างชัดเจน (เช่นกด + ในขณะที่เคอร์เซอร์อยู่ในช่อง "แพ็คเกจที่อัปเกรดได้" ในความถนัด)


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