मैंने package.elपहले दो निर्देशिकाओं का उपयोग करके एक स्थानीय पैकेज संग्रह (एमएसीएस 24.5) स्थापित किया, pkgsऔर local। (नाम कोई मायने नहीं रखते।) आपके पैकेज वाली फाइलें अंदर चली जाती हैं pkgs, और localआपके संग्रह को रोककर रख देंगी। यदि आप दूसरों के लिए एक संग्रह उपलब्ध कराना चाहते हैं, तो आप localएक वेब सर्वर का उपयोग कर सकते हैं , लेकिन प्रक्रिया स्थानीय संग्रह के निर्माण के समान है।
मैंने अपनी init.elफ़ाइल में निम्नलिखित डाला :
(require 'package)
(setq package-enable-at-startup nil)
(require 'package-x)
(defvar local-archive
(expand-file-name "local/" user-emacs-directory)
"Location of the package archive.")
(setq package-archive-upload-base local-archive)
(add-to-list 'package-archives `("local" . ,local-archive) t)
(package-initialize)
मैं अपने में अपने संग्रह डाल .emacs.dनिर्देशिका (इसलिए user-emacs-directoryमें expand-file-nameफार्म) लेकिन आप इसे कहीं भी आप की तरह रख सकते हैं।
एक बार इसका मूल्यांकन हो जाने के बाद, M-x package-upload-fileअपने पैकेज के फ़ाइल नाम को निष्पादित करें और प्रविष्ट करें। यह एक नया पैकेज जनरेट करेगा local। तुम वहाँ में तीन नए फ़ाइलों को देखने, होगा archive-contents, yourpackagename-version.elऔर yourpackagename-readme.txt। अब आपको M-x package-list-packagesअपने पैकेज को सूचीबद्ध करने और देखने में सक्षम होना चाहिए । भाग्य के साथ, वे "नए" चिह्नित शीर्ष पर होंगे। आप हमेशा की तरह पैकेज को स्थापित कर सकते हैं, और आप इसे .emacs.d/elpaकिसी अन्य पैकेज की तरह अपनी निर्देशिका में दिखा सकते हैं ।
यह Emacs 24 के लिए बॉक्स से बाहर काम करना चाहिए। मुझे पहले के संस्करणों के बारे में निश्चित नहीं है। आपके उपयोगकर्ता आपके पैकेज को सामान्य तरीके से शामिल करके एक्सेस कर सकते हैं
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
'("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)
उनकी init.elफ़ाइल में।
पैकेज लिखने के तरीके के बारे में जानकारी के लिए , GNU Emacs Lisp मैनुअल में वितरण के लिए लिस्प कोड तैयार करना देखें ।