Tôi thiết lập một kho lưu trữ gói cục bộ (Emacs 24.5) bằng package.el
cách trước tiên tạo hai thư mục pkgs
và local
. (Tên không quan trọng.) Các tệp bao gồm các gói của bạn đi vào pkgs
và local
cuối cùng sẽ giữ kho lưu trữ của bạn. Nếu bạn muốn cung cấp một kho lưu trữ cho người khác, bạn có thể phơi bày local
bằng máy chủ web, nhưng quá trình này giống như xây dựng một kho lưu trữ cục bộ.
Tôi đặt như sau trong init.el
tập tin của tôi :
(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)
Tôi đặt kho lưu trữ của tôi trong .emacs.d
thư mục của tôi (do đó user-emacs-directory
trong expand-file-name
mẫu) nhưng bạn có thể đặt nó bất cứ nơi nào bạn muốn.
Khi điều này được đánh giá, thực thi M-x package-upload-file
và nhập tên tệp của gói bạn sẽ được cài đặt. Điều này sẽ tạo ra một gói mới trong local
. Bạn sẽ thấy ba tập tin mới trong đó, archive-contents
, yourpackagename-version.el
, và yourpackagename-readme.txt
. Bây giờ bạn sẽ có thể làm M-x package-list-packages
và xem gói của bạn được liệt kê. Nếu may mắn, họ sẽ đứng đầu "đánh dấu" mới. Bạn có thể cài đặt gói như bình thường và bạn sẽ thấy nó hiển thị trong .emacs.d/elpa
thư mục của mình giống như bất kỳ gói nào khác.
Điều này sẽ hoạt động tốt cho Emacs 24. Tôi không chắc chắn về các phiên bản trước. Người dùng của bạn có thể truy cập gói của bạn theo cách thông thường bằng cách bao gồm
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
'("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)
trong init.el
tập tin của họ .
Để biết thông tin về cách viết gói, hãy xem Chuẩn bị mã Lisp để phân phối trong hướng dẫn sử dụng GNU Emacs Lisp.