เป็นไปได้ไหมที่จะใช้ทั้ง MELPA และ MELPA-เสถียรในเวลาเดียวกัน?


29

ฉันใช้ Melpa-stable เป็นที่เก็บแพ็กเกจเพิ่มเติม แต่หนึ่งในแพ็คเกจที่ฉันต้องการใช้ (หยาด) ไม่สามารถใช้ได้กับ Melpa-stable มีวิธีใดในการกำหนดค่า package.el ให้ใช้ melpa-stable แต่ใช้ melpa สำหรับชุดย่อยของแพคเกจเฉพาะหรือไม่


1
อัปเกรดเป็น emacs 24.4 ;-)
Malabarba

@Malabarba ที่แน่นอนในบัตร ...
Timo Geusch

ฉันไม่สามารถหาiciclesMelpa ได้เช่นกัน
user650654

คำตอบ:


34

ใช้ตัวเลือกpackage-archive-prioritiesที่ทำขึ้นเพื่อจุดประสงค์นี้ หากต้องการใช้ MELPA Stable มากกว่า MELPA ให้เพิ่มรายการต่อไปนี้ในไฟล์ init ของคุณ:

(setq package-archives
      '(("GNU ELPA"     . "https://elpa.gnu.org/packages/")
        ("MELPA Stable" . "https://stable.melpa.org/packages/")
        ("MELPA"        . "https://melpa.org/packages/"))
      package-archive-priorities
      '(("MELPA Stable" . 10)
        ("GNU ELPA"     . 5)
        ("MELPA"        . 0)))

จำนวนที่สูงกว่าลำดับความสำคัญของแพคเกจไฟล์เก็บถาวรที่สูงขึ้น สำหรับแพ็คเกจใด ๆ ที่มีอยู่ในคลังเก็บหลายชุด Emacs 'ผู้จัดการแพคเกจเลือกแพคเกจจากการเก็บถาวรที่มีลำดับความสำคัญสูงสุดและละเว้นแพคเกจในคลังเก็บอื่น ๆ แม้ว่าหมายเลขรุ่นจะสูงกว่า package-archivesถ้าแพคเกจที่มีอยู่ในสองจดหมายเหตุของความสำคัญเดียวกันรุ่นที่สูงกว่าชนะจำนวนและท้ายที่สุดผมคิดว่าในการสั่งซื้อ

ฉันขอแนะนำให้กำหนดลำดับความสำคัญให้กับไฟล์เก็บถาวรทั้งหมดรวมถึงไฟล์เก็บถาวร GNU ELPA เริ่มต้นอย่างชัดเจนเพื่อหลีกเลี่ยงความคลุมเครือ ถึงแม้ว่าคลังเก็บที่ไม่ได้อยู่ในpackage-archive-prioritiesลำดับความสำคัญเริ่มต้นของ 0 มันง่ายเกินไปที่จะลืม

package-archive-priorities เป็นที่รู้จักใน Emacs 25.1 สำหรับรุ่นก่อนหน้าดูคำตอบเก่าด้านล่าง:


ใน Emacs 24 เป็นไปไม่ได้ที่จะใช้ MELPA Stable และใช้ MELPA สำหรับแพ็คเกจเฉพาะโดยทั่วไป ไม่มีแพ็คเกจการปรับแต่งใด ๆ ค่าเริ่มต้นจะเป็นไฟล์เก็บถาวรซึ่งเป็นเวอร์ชั่นสูงสุดซึ่งก็คือ MELPA ไม่มีอินเทอร์เฟซสำหรับเปลี่ยนสิ่งนั้น

อย่างไรก็ตามในขณะที่ Emacs 24.4 ตัวเลือกใหม่package-pinned-packagesช่วยให้คุณสามารถตรึงแต่ละแพ็คเกจเป็นไฟล์เก็บถาวรได้ แต่สิ่งนี้จะช่วยให้คุณสามารถใช้ความต้องการของคุณผกผัน: เริ่มต้นที่ MELPA และใช้ MELPA Stable สำหรับแพ็คเกจเฉพาะ

ดังนั้นในปัจจุบันตัวเลือกเดียวของคุณคือเติมpackage-pinned-packagesแพ็คเกจทั้งหมดที่คุณต้องการใช้ไม่ว่าจะด้วยตนเองหรือด้วยรหัส Emacs Lisp บางส่วน โปรดทราบว่าpackage-pinned-packagesจะต้องตั้งค่าก่อนที่จะโทรpackage-refresh-contentsเพราะการประเมินการปักขณะที่สร้างดัชนีแพคเกจและไม่เมื่อติดตั้งแพคเกจ

วิธีแก้ปัญหาระยะยาวคือการM-x report-emacs-bugขอให้ผู้พัฒนา Emacs ใช้คุณสมบัติ“ default archive” บางประเภทหรือขอให้ผู้ดูแลของ icicles ติดแท็กเผยแพร่อย่างถูกต้องเพื่อให้ MELPA Stable สามารถสร้างแพ็คเกจที่เสถียรได้ ทั้งสองอาจไม่ใช่เรื่องง่าย แต่เนื่องจากในอดีตต้องการการเปลี่ยนแปลงที่ใหญ่กว่าใน package.el และสิ่งที่ต่อมาถูกย้ายจาก icacWiki ไปยังที่เก็บ VCS ที่เหมาะสมพร้อมแท็กซึ่งฉันเชื่อว่าผู้ดูแลไม่เต็มใจทำเพราะ ถ้าพวกเขาพวกเขาจะทำมันนานแล้ว


0

ที่นี่คุณมีการสนทนาเกี่ยวกับการใช้ที่เก็บทั้งสองแบบขนานดังนั้นสิ่งนี้ควรจะเป็นไปได้ด้วย 24.4; คุณเคยลองยกตัวอย่างเช่น defun เพื่ออัพเดทรายชื่อ repos จากนั้นต้องใช้ paradoxและสุดท้ายกลับไปที่ repo list เดิมหรือไม่?

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