ตอบ
update-alternatives
ใช้งานได้หากแพ็คเกจใช้ระบบทางเลือกอย่างชัดเจนเท่านั้น gnupg และ gnupg2 ทำไม่ได้
พื้นหลัง
โดยทั่วไปเหตุผลคือส่วนต่อประสานผู้ใช้แตกต่างกันมากเกินไปดังนั้นสคริปต์ที่ใช้เครื่องมือหนึ่งจะไม่ทำงานอีกต่อไปหากเครื่องมืออื่นทำงานโดยทันที markdown
เป็นตัวอย่างที่นี่คือ markdown
การใช้งานแต่ละครั้งใน Debian มีตัวเลือกบรรทัดคำสั่งที่แตกต่างกันมากดังนั้นระบบทางเลือกจึงไม่ได้ใช้งาน
gpg
'และgpg2
' s commandline ตัวเลือกดูเหมือนจะไม่แตกต่างกันมาก แต่บางทีการส่งออกเกี่ยวกับการกระทำบางอย่างหรือรหัสออกแตกต่างกันอย่างมีนัยสำคัญในบางสถานที่
สิ่งหนึ่งที่มีความแตกต่างและสิ่งสำคัญสำหรับการติดตั้งและสื่อการติดตั้งที่น้อยที่สุดคือสิ่งที่ต้องพึ่งพา ในขณะที่gnupg
แพคเกจมีความสำคัญ "มาตรฐาน" (เช่นการติดตั้งในการติดตั้งมาตรฐาน) และการพึ่งพาของแพคapt
เกจแพคเกจgnupg2
ดึงในห้องสมุดค่อนข้างมากซึ่งปัจจุบันมีความสำคัญเท่านั้น "เลือก"
มีสองรายงานข้อผิดพลาดที่เปิดใน Debian หนึ่งกับแต่ละแพคเกจ (มี# 561540 กับ GnuPGและ# 483724 กับ gnupg2 ) ขอใช้ระบบทางเลือกสำหรับและgnupg
gnupg2
ปัจจุบันหนึ่งในรายงานข้อผิดพลาดเหล่านี้ถูกติดแท็กwontfix
แต่มีการกล่าวถึงแท็กว่า "สำหรับตอนนี้" และมีคำแนะนำบางอย่างที่ต้องได้รับการดูแลในกรณีที่ระบบทางเลือกจะถูกนำมาใช้ (หรือgnupg2
จะกลายเป็นค่าเริ่มต้น) ในอนาคต .
วิธีการในกรณีที่คุณต้องการจริงๆ
ถ้าคุณต้องการที่gpg2
จะถูกเรียกถ้าคุณเรียกว่าgpg
ฉันขอแนะนำให้เพิ่มชื่อแทนในเชลล์ของคุณเช่นalias gpg=gpg2
สำหรับเชลล์ที่เข้ากันได้ของ bourne-shell ไม่ควรทำอันตรายมากนัก แต่จะใช้ได้ก็ต่อเมื่อถูกเรียกจาก commandline
ถ้าคุณอยากที่จะมี/usr/bin/gpg
จะเป็น gnupg2 คุณสามารถทำเช่นนั้นด้วยdpkg-divert
เช่นการเปลี่ยนชื่อgpg
ไปgpg1
แล้วเพื่อgpg2
gpg
ไฟล์ที่ถูกเปลี่ยนชื่อด้วยdpkg-divert
จะเป็นชื่อใหม่ของพวกเขาแม้จะมีการอัพเดทตามแพ็คเกจ
แต่จะเตือน: APT ต้องและการใช้งานและไม่อาจคาดหวังให้เป็นจริงgpg
gpg2
ดังนั้นคุณอาจแบ่งบางส่วนของระบบของคุณถ้าคุณใช้dpkg-divert
วิธีการที่ (ชื่อแทนของเชลล์สำหรับผู้ใช้ที่ไม่ใช่รูทนั้นใช้ได้กับเรื่องนั้น)