elpa-mirror (v2.1.0)
Create local Emacs package repository so package upgrade never breaks.
Only installed packages will be included in the repository.
Please note console command tar and cp is required.
Why
- Full package upgrade never breaks Emacs setup
- 15 seconds to install 115 packages
- The repository could be hosted on USB/Dropbox/GitHub, so you can install packages behind corp firewall
- Tested with Emacs 23.4, Emacs 24.3, Emacs 24.4, Emacs 24.5 on OSX/Cygwin/Windows/Linux
Install
- Download elpa-mirror.el to somewhere (say “~/.emacs.d/site-lisp/elpa-mirror”)
- Add below code into your ~/.emacs,
(add-to-list 'load-path "~/.emacs.d/site-lisp/elpa-mirror")
(require 'elpa-mirror)If you use native Windows Emacs, you need install Cygwin or MSYS2.
Usage
M-x elpamr-create-mirror-for-installed to create local repository.
To use the repository. Say it’s “~/myelpa”, insert below code into your ~/.emacs,
# myelpa is the ONLY repository now
(setq package-archives '(("myelpa" . "~/myelpa")))Tips
Change output directory,
(setq elpamr-default-output-directory "~/myelpa")Create repository in Shell
You don’t need even install elpa-mirror if running it in shell,
mkdir -p ~/myelpa && emacs --batch -l ~/.emacs.d/init.el -l ~/any-directory-you-prefer/elpa-mirror.el --eval='(setq elpamr-default-output-directory "~/myelpa")' --eval='(elpamr-create-mirror-for-installed)'Repository on Dropbox
Insert below code into .emacs:
;; all-to-list will not override default elpa.
;; So now you have two repositories.
;; One is GNU elpa. Another is myelpa
(add-to-list 'package-archives
'("myelpa" . "https://dl.dropboxusercontent.com/u/858862/myelpa/"))Repository on GitHub
My repository is https://github.com/redguardtoo/myelpa.
Insert below code into .emacs:
(add-to-list 'package-archives
'("myelpa" . "https://raw.githubusercontent.com/redguardtoo/myelpa/master/"))Report bug
- Insert
(setq elpamr-debug t)into ~/.emacs - Reproduce bug and report at https://github.com/redguardtoo/elpa-mirror