将Emacs插件库同步到本地来安装
如果你喜欢把玩各种Emacs插件,会不会觉得在线安装插件特别的慢,而且时时刻刻都得保持网络在线(虽然这也不是什么大问题),如果Emacs版本比较低的话还得解决TLS/SSL的连接问题。
既然这样,为什么不把Emacs的插件库同步到本地上来呢?
只需要一条命令就可以了
rsync -avz rsync://elpa.emacs-china.org/elpa /media/emacs_plugins
然后再修改一下Emacs配置中的 package-archives
变量就可以了
(setq package-archives '(("melpa-cn" . "/media/emacs_plugins/melpa/") ("org-cn" . "/media/emacs_plugins/org/") ("gnu-cn" . "/media/emacs_plugins/gnu/") ("marmalade-cn" . "/media/emacs_plugins//marmalade/")))
如果你用的是spacemancs,则是修改 configuration-layer--elpa-archives
变量
(setq configuration-layer--elpa-archives '(("melpa-cn" . "/media/emacs_plugins/melpa/") ("org-cn" . "/media/emacs_plugins/org/") ("gnu-cn" . "/media/emacs_plugins/gnu/") ("marmalade-cn" . "/media/emacs_plugins//marmalade/")))
这里要注意,仓库地址必须使用绝对路径。
如果觉得手工同步插件库太麻烦,也可以写个timer来让系统帮你自动同步:
在 /etc/systemd/system/
目录下创建一个 rsync_emacs_china.service
文件
[Unit] Description=Sync emacs-china elpa repos with rsync Documentation=http://elpa.emacs-china.org/ After=network.target [Service] Type=simple TimeoutStartSec=infinity User=root Group=root WorkingDirectory=/root ExecStartPre=/usr/bin/mkdir -p /media/emacs_plugins ExecStart=/usr/bin/rsync -avz rsync://elpa.emacs-china.org/elpa /media/emacs_plugins
然后在 /etc/systemd/system/
目录下创建一个 rsync_emacs_china.timer
文件
[Unit] Description=Sync emacs-china elpa repos with rsync every 30 mins Documentation=http://elpa.emacs-china.org/ [Timer] OnBootSec=15min OnUnitInactiveSec=30min Unit=rsync_emacs_china.service [Install] WantedBy=multi-user.target
这样系统启动15分钟后,系统会自动开始同步插件库,此后每30分钟同步一次。