No, you might don't need GNU ELPA or any ELPA.
The practical reason not to use GNU ELPA or any third party repository is to protect my Emacs from ELPA shut down. Shutdown did happen from time to time (see https://www.reddit.com/r/emacs/search/?q=elpa%20down&restrict_sr=1)
Most of my packages are downloaded from https//melpa.org , I could avoid GNU ELPA by creating a small local package mirror of selected GNU ELPA packages.
Check my setup at https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-elpa.el
, GNU ELPA is not used.
If I have to use some GNU ELPA only packages, I'd rather create my own local ELPA instead (it's as simple as create a text file archive-contents
), Check my ~/.emacs.d/localelpa
.
For example, seq-2.20.tar
only exist at GNU ELPA and I need this it. So I add this package into my local elpa at https://github.com/redguardtoo/emacs.d/tree/master/localelpa
Currently I only use four packages from GNU ELPA,
gnu-elpa-keyring-update-2019.3.tar
let-alist-1.0.5.el
seq-2.20.tar
undo-tree-20170706.246.tar
These packages are placed in my localelpa
so I don't need access GNU ELPA.
You can also check my package https://github.com/redguardtoo/elpa-mirror which creates a local repository from installed packages. So even remote repository (GNU ELPA, MELPA) is optional now.
You can also use source instead downloaded package. Please check https://github.com/redguardtoo/emacs.d/tree/master/site-lisp. rainbow-mode
, You need understand what's load-path
(http://emacswiki.org/emacs/LoadPath) if you use source.
You can also advice package--add-to-archive-contents
to tweak packages before they are displayed in package manager. This is kind of undocumented hack. It works from Emacs 23.4 to Emacs 27. See init-elpa.el
for example.