Skip to main content
2 of 2
deleted 488 characters in body

There is a feature in Emacs 25.1 that does what I want, by allowing you to set priorities for the archives you specify. So you can say

(setq package-archive-priorities '(("melpa-stable" . 20) ("marmalade" . 20) ("gnu" . 10) ("melpa" . 0))) 

This will then install packages from the highest-priority archive they are available in. So with the above, melpa will only be used if a package can't be found in any of the other archives.