Closed zilongshanren closed 3 years ago
elpa 用 rsync 从上游下载数据,然后提供 web 服务给用户、提供 rsync 服务给下游镜像。做的工作:
elpa 这个 repo 里的代码太复杂了,有一定的历史原因(以前上游都不支持 rsync),现在没必要了,从头弄反而容易,用不着写代码。
要是你不介意,我可以来弄,https://github.com/xuchunyang.keys 这是我的 ssh public key。
好的,需要直接把 elpa 迁移到 emacs-china.org 上吗?这样 emacs-china.org 的东西都在一台vps上了。elpa.zilongshanren.com 就废弃算了。
@xuchunyang 你试 ssh root@emacs-china.org, 可以把elpa迁到上面来,域名解析后面我改一下
目前 emacs-china vps可用空间10G,以后备份还会增长一些,你看看够用不,如果不够,我后面再加一块20G的云盘给镜像使用。
由于我的老vps过快期了,阿里云老用户续费贵 ,我准备迁移到腾讯云,新用户很便宜,90一年。
是只有 elpa 的服务器快到期了,emacs-china.org 的还没,对吧?
需要直接把 elpa 迁移到 emacs-china.org 上吗?这样 emacs-china.org 的东西都在一台vps上了。
不用,而且 elpa 和 论坛 这两个能分开最好了,避免相互干扰。你看能不能给 elpa 分配单独的 vps?配置最低配就够了。
elpa.zilongshanren.com 就废弃算了。
可以继续支持,作为 elpa.emacs-china.org 的别名,指向同一个服务器上就行了。github 上搜 elpa.zilongshanren.com 有一百多个结果,应该还有些人用。
目前 emacs-china vps可用空间10G,以后备份还会增长一些,你看看够用不,如果不够,我后面再加一块20G的云盘给镜像使用。
elpa 需要几个 GB,所以 10 G 是够的。
同一个域名指向多个ip可以分担流量压力吧
这样我需要把腾讯云给你开下权限,中午弄一下
同一个域名指向多个ip可以分担流量压力吧
可以,CDN 就是吧
这样我需要把腾讯云给你开下权限,中午弄一下
好
@xuchunyang 好了,你可以登录 root@1.15.88.122 了,我上面也搭了一个discourse,这个你别动哈。可以先把nigix和elpa同步弄好,我后面备案迁过来了再修改域名重定向。原来的vps要9月才到期,这期间我会把一些东西全部迁移过来,包括我的个人博客。
之前有个 git.emacs-china.org 不知道还要不要,你觉得有必要就迁过来吧。
我上面也搭了一个discourse,这个你别动哈
嗯,没问题。好奇为啥要搭 discourse,http://donate.emacs-china.org/ 显示论坛的 vps 要到 2024-12-01 才到期
可以先把nigix和elpa同步弄好
好,我找时间弄,估计下个星期之内能弄好。
之前有个 git.emacs-china.org 不知道还要不要,你觉得有必要就迁过来吧。
不要了,DNS 记录可以删了。
我另外搞的一个论坛,给游戏开发者用的
这才发现 GNU ELPA 好像从去年底就出问题了,rsync 服务用不了,上一次同步还是在了去年底。我也是从去年底就没写过代码了,也没用 Emacs 了。
root@VM-0-7-ubuntu:~# rsync --list-only elpa.gnu.org::
elpa GNU ELPA
nongnu NonGNU ELPA
nongnu-devel NonGNU-devel ELPA
root@VM-0-7-ubuntu:~# rsync --list-only elpa.gnu.org::elpa
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1666) [Receiver=3.1.2]
root@VM-0-7-ubuntu:~#
而且 Melpa 的 rsync 服务也有问题,我这边一直报告连不上:
root@VM-0-7-ubuntu:~# rsync --list-only melpa.org::packages
@ERROR: max connections (1) reached -- try again later
rsync error: error starting client-server protocol (code 5) at main.c(1666) [Receiver=3.1.2]
root@VM-0-7-ubuntu:~#
看样子还是从 HTTP 直接下载比较靠谱,所有的 ELPA 都支持 HTTP。这个仓库这个功能,用 Emacs Lisp 和命令行工具实现的,但是效果不好,最好重写一个。https://github.com/d12frosted/mirror-elpa 似乎可以直接用。
有没有想负责维护 Emacs China ELPA 的朋友?@Twlz0ne @cireu @lujun9972 @LdBeth @seagle0128 @MatthewZMD 有什么问题直接问哈
我有兴趣。但是人在国外,我这边建mirror对国内的没啥意义
人在哪儿没影响,elpa 部署在现成的 vps 上,你 ssh 登陆就行,我已经把你的 public key https://github.com/MatthewZMD.keys 导入了,你可以用 ssh root@1.15.88.122
登录。
你可以先研究看看。这个 repo 里的代码不用管,自己从头搞,用自己喜欢的方法,有什么问题都可问我。
如果需要人力,可以算我一个,可以抽空帮忙维护。
确实需要帮助,我的兴趣、时间和能力都不太够,本来是很简单的事情,我弄以来一直很吃力,耗时间来回折腾,效果也不好。所以从头再弄。有条件的朋友可以把这事接手过去。
人在哪儿没影响,elpa 部署在现成的 vps 上,你 ssh 登陆就行,我已经把你的 public key https://github.com/MatthewZMD.keys 导入了,你可以用
ssh root@1.15.88.122
登录。你可以先研究看看。这个 repo 里的代码不用管,自己从头搞,用自己喜欢的方法,有什么问题都可问我。
成功登陆了。只是我也没有搞这个的经验,需要花点时间研究研究。也可以加上 @seagle0128 一起研究
好的。我也把 @seagle0128 的 ssh key 导入了,同样可以 ssh root@1.15.88.122 登录。
现在需要我做什么?晚上我可以看看
先把 elpa 镜像搭起来
现在elpa情况怎么样了? @xuchunyang @seagle0128
没进展。
我想乘这个机会交把 elpa 交给其它人做,由于我很久不用 Emacs 了,热情少了。
我在想办法,一是直接把旧的迁移过来;二是重新弄下,我本周内再报告进展。
现在 http://elpa.emacs-china.org/melpa/ 访问提示 403,和上面的调整相关吗?
不是,我没记错的话,应该就是故意弄成 403 的(原来是列出所有的包的,但是发现包数量太多,页面太大,下载太慢)
现在想想可以起码写个说明要好些。
我打算直接用 https://github.com/d12frosted/elpa-mirror 的,里面有现成的文件,但是国内网络访问 GitHub 有问题
root@VM-0-7-ubuntu:/tmp# git clone --depth 1 --verbose https://github.com/d12frosted/elpa-mirror.git
Cloning into 'elpa-mirror'...
fatal: unable to access 'https://github.com/d12frosted/elpa-mirror.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
所以想把这个 repo 弄个 gitee 镜像,https://github.com/xuchunyang/gitee-mirror ,折腾了2小时,也没搞定。
我现在主要是用GNU Guix的Emacs包加上自己git submodule,也基本不用ELPA了
@xuchunyang 周末我试试 https://github.com/d12frosted/elpa-mirror
@zilongshanren https://github.com/Yikun/hub-mirror-action 这个我原本打算试试得,自动把 github repo 同步到 gitee
https://github.com/LdBeth.keys
也请加一下我的 pub key,有空应该可以整下。
@LdBeth 已加
ldbeth@mab:~$ rsync rsync://elpa.gnu.org/elpa/
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1675) [Receiver=3.1.3]
ldbeth@mab:~$ rsync rsync://melpa.org/packages/
@ERROR: max connections (1) reached -- try again later
rsync error: error starting client-server protocol (code 5) at main.c(1675) [Receiver=3.1.3]
我用在加州的服务器也连不上,看来上游 rsync 都挂了
我用在加州的服务器也连不上,看来上游 rsync 都挂了
是的,gnu 的去年底就挂了。
今晚我有在重写,不清楚能不能弄好,即便弄好了,日后维护还需要人,最好是 Emacs 用户,而我已经半年没用 Emacs 了。
我倒是一直在用,不过更新包的頻率只有一二个月一次。己经先把这 repo clone 到 VPS 上了。
@zilongshanren 内容同步了,文件放在 /root/elpa-mirror-2021-main ,HTTP 服务放 http://1.15.88.122/ ,可以把 elpa.emacs-china 的 DNS 改到这个 IP,然后我在设置 HTTPS 和 rsync 服务。
(setq package-archives
'(("gnu" . "http://1.15.88.122/gnu/")
("melpa" . "http://1.15.88.122/melpa/")))
@LdBeth 等 @zilongshanren DNS 改好了,有空的话,可以帮忙设置下 HTTP 服务器,加下 HTTPS 证书。我有个 Tmux session 跑着 Caddy 服务器,你用 tmux attach
上去关了。
试着配置了下 https,还没搞定。Caddy server 已经关了。
我设置了下 http,让 caddy 在后台跑了,这样有的用户可以用 ip 就急一下。
@LdBeth 那个 DNS 还没改过来,没法配置 HTTPS。
➜ ~ host elpa.emacs-china.org
elpa.emacs-china.org has address 112.124.58.18
还有 rsync 服务也要开下,给下游做镜像,我还没有开。
我把 rsync 挂 systemd 上了。我 config 这样写的,应该没问题
max connections = 4
uid = nobody
gid = nobody
log file = /var/log/rsync.log
timeout = 500
[elpa]
include = gnu melpa melpa-stable org user42
path = /root/elpa-mirror-2021-main
可以的话我也帮下忙 https://github.com/BlindingDark.keys
现在同步的方案是拉 d12frosted/elpa-mirror 这个仓库,还是走 HTTP 直接拉上游?
@BlindingDark 加好了。
現在是手动下載 elpa-mirror 仓库,VPS 连不上 github,还要想辦法。
👌我试试搞搞 gitee 同步
d12frosted/elpa-mirror 大概有 5.6G。
Gitee/Coding 官网说法是仓库大小限制 500M,实际好像是 1G。如果向 gitee/coding 申请自动镜像同步的话到是可以,问题是 1. 这个仓库不是官方仓库 2. 全交给他们同步,我们能控制的内容非常少,比如同步的频率。
所以没有直接用 HTTP 同步的原因是什么?也是因为网络速度问题么?
@xuchunyang @LdBeth
看了下,拉不下来的原因是 git 设置了 http.proxy,这个 proxy 应该是出问题了,因为我拉 gitee 的 repo 也报一样的错。
我尝试使用 gitlab 上的 elpa-mirror,速度可以到 10MiB/s(github 依然龟速)
@LdBeth rsync 怎么用的,列出来文件内容?
➜ ~ rsync --list-only rsync://1.15.88.122
elpa
➜ ~ rsync --list-only rsync://1.15.88.122/elpa
@ERROR: invalid gid nobody
rsync error: error starting client-server protocol (code 5) at main.c(1675) [Receiver=3.1.3]
➜ ~ rsync --list-only rsync://mirrors.tuna.tsinghua.edu.cn/elpa/
drwxr-xr-x 12 2020/11/23 15:52:15 .
drwxrwxr-x 23 2016/11/25 11:43:48 SC
drwxr-xr-x 2,318 2021/04/06 11:37:13 emacswiki
drwxr-xr-x 4,588 2020/12/25 06:05:02 gnu
drwxrwxr-x 1,164 2019/12/04 08:07:35 marmalade
drwxr-xr-x 15,269 2021/04/09 16:44:59 melpa-stable
drwxr-xr-x 24,518 2021/04/09 13:51:00 melpa
drwxrwxr-x 13 2021/04/06 20:06:50 nongnu
drwxrwxr-x 5 2021/04/06 20:06:50 org
drwxrwxr-x 23 2018/04/04 16:06:35 sunrise-commander
drwxrwxr-x 185 2021/04/07 00:07:15 user42
所以没有直接用 HTTP 同步的原因是什么?也是因为网络速度问题么?
因为同步脚本还在写。具体细节
rsync 怎么用的,列出来文件内容?
我多设了 gid
,看来要取消。实际上这里不应该用 root 而是专门搞个用户去同步。网页的结构也要整理一下。
目前己经可以了
>> 0:~ $ rsync --list-only rsync://1.15.88.122/elpa << 17:12 <]
drwxr-xr-x 4096 2021/04/14 13:01:14 .
-rw-r--r-- 12288 2021/04/14 12:39:21 .Caddyfile.swp
-rw-r--r-- 45 2021/04/14 00:22:09 .gitignore
-rw-r--r-- 105 2021/04/14 12:13:23 Caddyfile
-rw-r--r-- 19 2021/04/14 00:22:09 README.md
-rw-r--r-- 653 2021/04/14 07:51:34 archive-contents-to-json.el
-rw-r--r-- 2086 2021/04/14 12:59:03 config.json
-rw-r--r-- 468 2021/04/14 13:01:14 index.html
-rw-r--r-- 3138 2021/04/14 08:43:31 index.js
-rw-r--r-- 324 2021/04/14 12:43:10 index.md
-rw-r--r-- 1217 2021/04/14 00:22:09 package-lock.json
-rw-r--r-- 605 2021/04/14 00:22:09 package.json
drwxr-xr-x 16384 2021/04/14 08:40:25 gnu
drwxr-xr-x 118784 2021/04/14 08:40:29 melpa-stable
drwxr-xr-x 282624 2021/04/14 08:40:27 melpa
drwxr-xr-x 4096 2021/04/14 00:31:37 node_modules
drwxr-xr-x 4096 2021/04/14 08:40:30 org
drwxr-xr-x 4096 2021/04/14 08:41:51 user42
由于我的老vps过快期了,阿里云老用户续费贵 ,我准备迁移到腾讯云,新用户很便宜,90一年。
如果换一个VPS,我需要做哪些操作?
@xuchunyang
当然这个 elpa 也可以迁移到跟 emacs-china.org 同一台vps