मैंने 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 मैनुअल में वितरण के लिए लिस्प कोड तैयार करना देखें ।