วิธีการตั้งค่า gpg2 เป็นการใช้งานเริ่มต้นของ gpg ในเดเบียน?


20

การติดตั้งเดเบียนของฉันมาพร้อมกับ gpg 1.4.12 ในขณะที่ฉันต้องการใช้งาน 2.0.19 อดีตมาในแพคเกจและหลังgnupg gnupg2พวกเขาสามารถอยู่ร่วมกันอย่างสงบสุขเท่าที่ผมรู้ แต่ผมจะชอบไปใช้งานที่เป็นผู้ให้บริการเริ่มต้นของgpg2 gpgฉันรู้ว่ามีเดเบียนupdate-alternativesซึ่งจะใช้สำหรับการตั้งค่าเริ่มต้น แต่ฉันไม่สามารถหาเอ่ยถึงใด ๆgpgหรือgnupgอยู่ในนั้น

ฉันจะตั้งค่านี้ได้อย่างไร

คำตอบ:


13

ตอบ

update-alternativesใช้งานได้หากแพ็คเกจใช้ระบบทางเลือกอย่างชัดเจนเท่านั้น gnupg และ gnupg2 ทำไม่ได้

พื้นหลัง

โดยทั่วไปเหตุผลคือส่วนต่อประสานผู้ใช้แตกต่างกันมากเกินไปดังนั้นสคริปต์ที่ใช้เครื่องมือหนึ่งจะไม่ทำงานอีกต่อไปหากเครื่องมืออื่นทำงานโดยทันที markdownเป็นตัวอย่างที่นี่คือ markdownการใช้งานแต่ละครั้งใน Debian มีตัวเลือกบรรทัดคำสั่งที่แตกต่างกันมากดังนั้นระบบทางเลือกจึงไม่ได้ใช้งาน

gpg'และgpg2' s commandline ตัวเลือกดูเหมือนจะไม่แตกต่างกันมาก แต่บางทีการส่งออกเกี่ยวกับการกระทำบางอย่างหรือรหัสออกแตกต่างกันอย่างมีนัยสำคัญในบางสถานที่

สิ่งหนึ่งที่มีความแตกต่างและสิ่งสำคัญสำหรับการติดตั้งและสื่อการติดตั้งที่น้อยที่สุดคือสิ่งที่ต้องพึ่งพา ในขณะที่gnupgแพคเกจมีความสำคัญ "มาตรฐาน" (เช่นการติดตั้งในการติดตั้งมาตรฐาน) และการพึ่งพาของแพคaptเกจแพคเกจgnupg2ดึงในห้องสมุดค่อนข้างมากซึ่งปัจจุบันมีความสำคัญเท่านั้น "เลือก"

มีสองรายงานข้อผิดพลาดที่เปิดใน Debian หนึ่งกับแต่ละแพคเกจ (มี# 561540 กับ GnuPGและ# 483724 กับ gnupg2 ) ขอใช้ระบบทางเลือกสำหรับและgnupggnupg2

ปัจจุบันหนึ่งในรายงานข้อผิดพลาดเหล่านี้ถูกติดแท็ก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วิธีการที่ (ชื่อแทนของเชลล์สำหรับผู้ใช้ที่ไม่ใช่รูทนั้นใช้ได้กับเรื่องนั้น)


7

จะมีคำตอบใหม่สำหรับคำถามนั้นในเร็ว ๆ นี้: ใช้ Debian 9 Stretch (จะได้รับการปล่อยตัวในเวลา 2 ปีหรือมากกว่านั้น ;-) หรือใหม่กว่า

พื้นหลัง: ที่DebConf15 Debian GnuPG แพคเกจ Maintainers ประกาศว่าในอนาคต GnuPG 2.x จะเป็น/usr/bin/gpgใน Debian และคำสั่ง 1.x GnuPG /usr/bin/gpg1จะเปลี่ยนชื่อเป็น

คุณยังคงไม่สามารถเปลี่ยน/usr/bin/gpgไปใช้ GnuPG เวอร์ชั่นอื่นเป็นไลค์ของคุณได้ (ดูคำตอบอื่น ๆ ของฉันสำหรับเหตุผลที่อยู่เบื้องหลัง) แต่อย่างน้อย GnuPG 2.x จะเป็นการใช้งานเริ่มต้นในอนาคตอันใกล้ใน Debian Unstable และ Debian Testing และในไม่ช้า Debian Experimental


Side note, 2017-06-14: เครื่องมือ debian ในเวอร์ชั่นเสถียรล่าสุดยังคงใช้ hardcoded gpg1 ภายใน Debian forks (ubuntu, mint) ดูเหมือนจะซ่อมได้
เตอร์กล่าวคืนสถานะโมนิก้า

Side note, 2017-06-17: เครื่องมือ debian ในเวอร์ชั่นเสถียรล่าสุดใช้ gpg2 (ใช่ฉันเห็นได้ในอนาคต ;-) แค่ล้อเล่น แต่ @peterh เขียนความคิดเห็นนั้นเหมือนเมื่อสามวันก่อนการเปิดตัว Debian Stable ครั้งต่อไปซึ่งจะมีการเปลี่ยนแปลง
Axel Beckert

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