用户可通过软件包菜单从 软件包归档(package archives) 下载软件包。这类归档由变量 package-archives 指定,其默认值包含托管于 GNU ELPA 与 NonGNU ELPA 的归档。本节介绍如何搭建与维护软件包归档。
软件包归档本质是存放软件包文件及相关文件的目录。若希望归档可通过 HTTP 访问,该目录需对 Web 服务器开放;see 与归档 Web 服务器对接。
创建归档后请注意:只有将其加入 package-archives,才能在软件包菜单界面中访问。
维护公开软件包归档需要承担一定责任。Emacs 用户从你的归档安装软件包时,这些包会以安装用户的权限让 Emacs 执行任意代码。(这对所有 Emacs 代码均成立,并非只针对软件包。)因此你应确保归档得到妥善维护,并保障托管系统安全。
提升软件包安全性的一种方式是使用加密密钥对其进行 签名(sign)。若你已生成 GPG 公私钥对,可使用 gpg 对软件包进行如下签名:
gpg -ba -o file.sig file
对单文件软件包,file 为软件包 Lisp 文件;对多文件软件包,则为软件包 tar 文件。 你也可以用相同方式为归档的内容文件签名。 将 .sig 文件与对应软件包放在同一位置。 你还应公开公钥供他人下载;例如上传至密钥服务器,如 https://pgp.mit.edu/。 用户从你的归档安装软件包时,可使用公钥验证签名。
有关这些内容的完整说明超出本手册范围。如需了解更多加密密钥与签名相关信息,see GnuPG in The GNU Privacy Guard Manual。Emacs 内置 GNU Privacy Guard 接口,see EasyPG in Emacs EasyPG Assistant Manual。