---
category: help
layout: help
mirrorid: elpa
---

ELPA 镜像使用帮助
==================

ELPA 是 Emacs 内建包管理器 `package.el` 的软件源，本镜像支持了常见的 ELPA。

| ELPA              | 镜像地址                                    |
|-------------------|---------------------------------------------|
| [GNU ELPA](http://elpa.gnu.org/)          | http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/          |
| [MELPA](https://melpa.org/)             | http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/        |
| [MELPA Stable](http://stable.melpa.org/#/)      | http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa-stable/ |
| [Marmalade](https://marmalade-repo.org/)         | http://mirrors.tuna.tsinghua.edu.cn/elpa/marmalade/    |
| [Org](http://orgmode.org/elpa.html)               | http://mirrors.tuna.tsinghua.edu.cn/elpa/org/          |


根据你的需求，设置 package-archives ，比如用 GNU ELPA 和 MELPA：

```lisp
(setq package-archives '(("gnu"   . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
                         ("melpa" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))
(package-initialize) ;; You might already have this line
```


Spacemacs 用户
--------------

添加下面的代码到`.spacemacs`的`dotspacemacs/user-init()`

```lisp
(setq configuration-layer--elpa-archives
    '(("melpa-cn" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")
      ("org-cn"   . "http://mirrors.tuna.tsinghua.edu.cn/elpa/org/")
      ("gnu-cn"   . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")))
```


Cask 用户
---------

[Cask](https://github.com/cask/cask) 是一个 Emacs Lisp 的项目管理工具。这里还是以 GNU ELPA 和 MELPA 为例，在添加下面的代码到 Cask

```lisp
(source "gnu"   "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
(source "melpa" "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")
```

关于 ELPA 的选择
----------------

(来自[@xuchunyang](https://github.com/xuchunyang))

假如不清楚需要用哪些 ELPA 的话

- `gnu` 一般是必备的，其它的 elpa 中的包会依赖 `gnu` 中的包
- `melpa` 滚动升级，收录了的包的数量最大
- `melpa-stable` 依据源码的 Tag （Git）升级，数量比 `melpa` 少，因为很多包作者根本不打 Tag
- `org` 仅仅为了 `org-plus-contrib` 这一个包，org 重度用户使用
- `marmalade` 似乎已经不维护了，个人不推荐

上游
====

本镜像的上游为 <http://elpa.emacs-china.org/>，本文档也参考了emacs-china提供的帮助。

URL Bug
=======

各个仓库的URL末尾一定要加`/`，否则会无法拉取，提示`Failed to download melpa archive`。

事实上，末尾没有`/`的话，emacs会去尝试取以下链接:

 - <http://mirrors.tuna.tsinghua.edu.cn/elpa/melpaarchive-contents>

而正常的链接应该是

 - <http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/archive-contents>

这个是emacs自己的bug。在 <https://github.com/melpa/melpa/issues/2139> 中有描述。
