Use a opção package-archive-priorities
que foi feita para esse mesmo objetivo. Para preferir MELPA Stable sobre MELPA, adicione o seguinte ao seu arquivo init:
(setq package-archives
'(("GNU ELPA" . "https://elpa.gnu.org/packages/")
("MELPA Stable" . "https://stable.melpa.org/packages/")
("MELPA" . "https://melpa.org/packages/"))
package-archive-priorities
'(("MELPA Stable" . 10)
("GNU ELPA" . 5)
("MELPA" . 0)))
Quanto maior o número, maior a prioridade de um arquivo compactado. Para qualquer pacote existente em vários arquivos, o gerenciador de pacotes do Emacs escolhe o pacote do arquivo com a maior prioridade e ignora os pacotes em outros arquivos, mesmo que o número da versão seja maior. Se o pacote existe em dois arquivos da mesma prioridade, as vitórias maior número de versão, e, finalmente, eu acho que a ordem em package-archives
.
Eu recomendo atribuir explicitamente uma prioridade a todos os arquivos, incluindo o arquivo GNU ELPA padrão, para evitar ambiguidades. Embora os arquivos que não estão package-archive-priorities
com a prioridade padrão 0, é muito fácil esquecer isso.
package-archive-priorities
foi introduzido no Emacs 25.1, para versões anteriores, veja a resposta antiga abaixo:
No Emacs 24, não é possível padronizar o MELPA Stable e usar o MELPA apenas para pacotes específicos de uma maneira geral. Sem nenhum pacote de personalização, o padrão é o arquivo que fornece a versão mais alta , que é MELPA. Não há interface para mudar isso.
No entanto, a partir do Emacs 24.4, a nova opção package-pinned-packages
permite fixar pacotes individuais em arquivos, mas isso só permite implementar o inverso de seus requisitos: Padrão para MELPA e usar MELPA Stable para pacotes específicos.
Portanto, atualmente sua única opção é preencher package-pinned-packages
todos os pacotes que você gostaria de usar, manualmente ou com algum código Emacs Lisp. Observe que package-pinned-packages
deve ser definido antes da chamada, package-refresh-contents
porque a fixação é avaliada ao criar o índice do pacote , e não ao instalar pacotes.
Uma solução a longo prazo seria M-x report-emacs-bug
pedir aos desenvolvedores do Emacs que implementassem algum tipo de recurso de “arquivo padrão” ou pedir ao mantenedor de pingentes que fizesse lançamentos com tags apropriadas para que o MELPA Stable possa criar pacotes estáveis para ele. Porém, nem isso pode ser fácil, já que o primeiro exige alterações maiores no package.el e o segundo, que os pingentes são movidos do EmacsWiki para um repositório VCS adequado com tags, que eu presumo que seu mantenedor não está disposto a fazer, por se fossem, teriam feito isso há muito tempo.