自 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 应该是正常的了。假如你还是用不了的话,请考虑反馈。
Chris
2017 年1 月 13 日 16:39
2
一句闲话:很多时候在便捷和安全之间找一个平衡难且痛苦。
不是,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 个赞
现在才发现有这个镜像源。终于可以使用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 的下载统计,也有可能影响其他用户的正常使用。
不太清楚备份的目的,如果要做一个本地 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下载就可以(纯粹为了易用性),或者参见楼上说的陈斌的方法。