คุณจะสามารถยกเลิก (ยกเลิกการระงับ) แพ็คเกจได้อย่างไร?


49

ฉันใช้ synaptic เพื่อล็อคเวอร์ชันpidgin-data- ฉันจะเปลี่ยนสถานะจากholdหลังเป็นปกติได้อย่างไรเพื่อที่จะได้รับการอัพเกรดอย่างถูกต้อง

PinningHowtoบอกว่าทำapt-get install packagenameควรเอาholdแต่การทำงานdpkg -l | grep ^hยังคงแสดงให้เห็นว่ามันเป็นที่จัดขึ้น:

hi  pidgin-data                                                 1:2.10.6-0ubuntu1+pidgin1.12.04                            multi-protocol instant messaging client - data files

ฉันจะยกเลิกholdสถานะอย่างถูกต้องได้อย่างไร?

คำตอบ:


59

sudo apt-mark unhold package_nameคุณสามารถใช้ แพคเกจ unheld Canceled hold on package_name.และมันจะกลับยืนยัน:


1
คุณปัญหาอาจเป็นเพราะคุณเขียนเพียงsudo sudo echo "package_name install"|dpkg --set-selectionsนี่เป็นการกระทำที่ผิดechoแต่ไม่ใช่ท่อต่อไปนี้ดังนั้นจึงเกิดข้อผิดพลาดในการเข้าถึง ลองใช้สิ่งนี้แทน: sudo -E -- sh -c 'echo "package_name install"|dpkg --set-selections'. นี้ sudoes echo "package_name install"|dpkg --set-selectionsย่อยเปลือกบรรทัดคำสั่งที่มีคือ
Urhixidur

1
คำตอบของฉันค่อนข้างที่เกี่ยวข้องกับการตัดต่อรุ่นของคำตอบที่นี่ด้านล่างซึ่งก่อนหน้านี้รวมถึงว่าคำสั่งที่ผมอ้างถึง อย่างไรก็ตามคำถามใช้apt-getเป็นตัวอย่างโดยเฉพาะและนั่นคือเหตุผลที่ฉันตอบการใช้apt-markซึ่งรวมอยู่ในแพ็คเกจapt อย่างไรก็ตามมีประโยชน์อย่างมากที่จะรู้ว่าทำไมคำสั่ง dpkg ไม่ทำงาน
DrA7

@ DrA7 package_name ไม่ได้ถือไว้ สิ่งที่ฉันควรทำตอนนี้?
Dr.jacky


2

ซ่อนแพ็คเกจเดียวชื่อ $ package_name:

echo $package_name install | dpkg --set-selections

Unhold แพ็คเกจทั้งหมดที่จัดขึ้นในปัจจุบัน:

dpkg --get-selections | grep hold | awk '{ print $1, "install" }' | dpkg --set-selections


1

คุณสามารถยกเลิกแพ็คเกจ APT ทั้งหมดด้วย:

apt-mark showhold | awk '{ print $1, "install" }' | dpkg --set-selections
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.