Emacs 28.2 升级后, doom sync 出问题了, 有没有办法退回到之前的版本?

也许是节日期间网络有什么奇怪的问题, 似乎是有些包的安装文件下载失败的原因, 现在的 emacs 28.2 出现了问题, 启动不了. 应该怎么办? 能不能退回到原来的版本继续用呢?

先最小化启动排错啊。

第一图上已经提示了. 是 doom emacs 初始化错误, 让运行 doom sync

第二图上就是显示运行 doom sync -u 的结果.

下图(第三图) 是用 emacs -Q 启动的结果.

所以是 doom 的问题而不是 emacs 的问题?你可能需要更改下描述。

1 个赞

就图二的问题,doom sync 更新的时候,网络有问题的时候会这样的,你的 el-get 没有成功更新。就去删掉 .emacs.d/.local/straight/repos/el-get/ 文件夹,然后再运行 doom sync;或者跑到这个文件夹下 git pull。

多谢提示, 已经修改问题描述.

在这个目录下 git pull 似乎没啥结果.

把这个目录移除之后, 再运行 doom sync -u, 仍然报错,

  1. 准备个好点的梯子,基本上能一次装完
  2. 如果安装过程中由于网络问题导致安装失败,接着运行上一次的安装命令即可, doom install OR doom sync?
  3. 如果步骤2解决不了,看看是不是clone的仓库有问题,有时候clone的不完整或者只有一个空文件夹,把repo和build下的对应的包删掉,重复步骤2,一般都可以装成功

这次是melpa,不是el-get了,应该是网的问题,会出好几次同样的问题。

正解。不过好梯子不好找。靠配置git使用ssh方式一劳永逸解决了。这种问题核心就是doom死板的install/upgrade方式,中间github连不好就带来各种各样的问题。

1 个赞

2022-10-07_14:38:51

这是我的.gitconfig 文件, 这么写, 应该没问题吧? 不过, 似乎还是下载安装包时连不上. 不过, 在浏览器打开网页又是可以的.

浏览器对延时要求不高,一般的梯子可以,但doom的下载方式貌似对延时要求超高。所以还是用ssh方式吧:


Host github 
Hostname github.com 
User git 
IdentityFile ~/.ssh/id_rsa.pub # your SSH public key file
  • 修改git来源url使用ssh模式

git config --global --add url."[email protected]:".insteadOf “https://github.com/

这种方式应该不行吧,doom早就把用户的gitconfig屏蔽了,要么用梯子,要么把.emacs.d/lisp/cli/package.el里面的ignore-gitconfig注释掉,用镜像。

doom网络不好是会这样,多装几次就好了,不行就删了.emacs.d重装。

之前设置过这个系统环境变量: DOOMGITCONFIG 设为 c:\Users\pinacle\.gitconfig

反正我现在doom install/upgrade/sync都没有问题了。目前还有其他使用的问题,不过跟git没有关系了

1 个赞

建议删了.emacs.d重装,另外doom最近一直在做大的重构,也有可能就是单纯的doom的最新版产生了新的bug导致安装出现问题(doom的代码复杂度有点太高了,而且为了启动优化各种手段无所不用至极,每次重构产生新的bug真的一点都不意外)。我现在锁定我的doom到这个commit: 9d52ba2

目前使用下来是没有问题的,只要梯子稳定,肯定能装上,至少从全新机器上(mac/linux,docker都可以,windows没用过,不知道)直接安装doom都是没有问题的。

终于解决了. 综合您和楼上那位的指导, 顺利安装成功.

  1. 删除 ~/.emacs.d/
  2. 把git改成ssh方式下载
  3. 下载安装文件后, 把 ~/.emacs/lisp/cli/package.el里的相关内容注释掉.(如图) 然后再运行 doom install, 就顺利成功了.

多谢多谢…

我按照您的步骤尝试了,修改ssh,注释gitignore,还是卡在install straight.el,然后就报错,屡试不爽。

我这里也不能同步了. 不知道怎么搞.

本地的git config默认被忽略了 所以代理貌似有问题 要通过另外一个环境变量DOOMGITCONFIG来指定

按照说明操作,

export DOOMGITCONFIG=~/.gitconfig

把上面这一行添加到 .zshrc, 然后再 source ~/.zshrc

接着运行

~/.emacs.d/bin/doom sync -u

仍然是不灵. 错误提示和改之前一样.