[已修复] Emacs China ELPA 镜像的 HTTP 支持问题

spacemacs 无法安装package: uuidgen, vi-tilde-fringe 继续讨论:

我刚刚发现,Emacs China ELPA 镜像的 Nginx 一直开着 HSTS,导致 HTTP 一律定向到 HTTPS。

/tmp$ wget http://elpa.emacs-china.org/gnu/ack-readme.txt URL transformed to HTTPS due to an HSTS policy –2017-01-13 21:05:40-- https://elpa.emacs-china.org/gnu/ack-readme.txt Resolving elpa.emacs-china.org (elpa.emacs-china.org)… 112.124.58.18 Connecting to elpa.emacs-china.org (elpa.emacs-china.org)|112.124.58.18|:443… connected. HTTP request sent, awaiting response… 200 OK Length: 2127 (2.1K) [text/plain] Saving to: ‘ack-readme.txt’

ack-readme.txt 100%[======================================================================================================================>] 2.08K --.-KB/s in 0s

2017-01-13 21:05:40 (235 MB/s) - ‘ack-readme.txt’ saved [2127/2127]

听说有些情况(如 Windows 下)Emacs 的 HTTPS 支持不太好,所以可能会因为这个原因用不了 Emacs China ELPA 镜像。

现在我已经把 HSTS 关闭了,HTTP 应该是正常的了。假如你还是用不了的话,请考虑反馈。

一句闲话:很多时候在便捷和安全之间找一个平衡难且痛苦。

那意味着 https 无法使用了么?

不是,HTTPS 依旧正常工作,我刚刚也安装了一两个包确认过了。

应该是之前支持 HTTPS 的时候,因为开了 HSTS,HTTP 也被重定向到 HTTPS 了。所以如果之前你没有使用 HTTPS 的条件的话,就算你用的是 HTTP,也用不了。

哦,还记得 ngix 的 HSTS 对应设置是哪个么? 我没太注意,能否告知一下。

下面被注释掉的一句:

# Disable HSTS because HTTP support is required for Emacs without HTTPS support                                                                                               
# add_header Strict-Transport-Security max-age=15768000;                                                                                                                      
add_header Strict-Transport-Security "max-age=0;";
2 个赞

thanks, got it.

现在才发现有这个镜像源。终于可以使用package来安装软件了。这个太好啦。

我怎么才能把melpa上面的那些package都download下来啊?我想放在优盘里,用起来方便。

可用 Rsync 同步.MELPA、Emacs China ELPA 镜像和清华镜像都提供了 Rsync 服务

rsync://melpa.org/packages/
rsync://elpa.emacs-china.org/elpa/melpa/
rsync://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/

内容都是一样的(Emacs China 的上游是 MELPA,清华的上游是 Emacs China),MELPA 目前约占 339 M

$ du -h
 64M	./marmalade
432K	./sunrise-commander
 13M	./org
 67M	./gnu
1.9M	./user42
432K	./SC
178M	./melpa-stable
339M	./melpa
661M	.

我估计在国内清华的速度应该最快。

另外注意尽量避免用下载工具通过 HTTP 频繁地下载或更新,因为会破坏 MELPA 的下载统计,也有可能影响其他用户的正常使用。


弱弱的问一下:Windows怎么备份镜像啊?

不太清楚备份的目的,如果要做一个本地 ELPA 的话,把包下载下来基本就完了。以 Org 的 ELPA 为例:

首先下载(和更新):

~$ rsync -avz rsync://elpa.emacs-china.org/elpa/org/ /tmp/org
receiving incremental file list
created directory /tmp/org
./
archive-contents
org-20170210.tar
org-plus-contrib-20170210.tar

sent 84 bytes  received 3,497,444 bytes  259,076.15 bytes/sec
total size is 13,220,025  speedup is 3.78

(Windows 上应该也能使用 Rsync)

配置 Emacs 使用这个本地 ELPA:

(setq package-archives '(("org" . "/tmp/org/")))

之后,M-x list-packages 就能安装 Org ELPA 上的包了。

哦,好的。谢谢,我知道怎么操作了。 我有的电脑是不连网的,那样调试起来方便。

使用rsync定期同步本站镜像,你那个服务器做成支持http下载就可以(纯粹为了易用性),或者参见楼上说的陈斌的方法。