borg 有时 make 出错,有时不出错但运行 epkg-update 没反应

最近看到论坛里很多大佬都在说borg,很感兴趣,就想入坑看看。 跟着官方的教程走了一遍流程,各种错误。 1.Bootstrapping using a seed

2.Bootstrapping from scratch

这两个有时make出错,有时make没出错但是emacs里运行epkg-update又没反应。 还有最重要的问题是没有根本了解borg是怎么起作用的,有没有大佬指点一下。 平常也用git 但是git submodule完全没了解过

你用的是哪个平台?具体是什么错误?哪个版本的Emacs?

win11下的wsl2

版本是

看你的错误信息,没找到 use-package.

你可以跟着 Bootstrapping from scratch 手动安装到 magit。

然后在 init.el 中不要加入epkg的配置,只要下面的配置就可以,并启动 Emacs,执行 M-x epkg-update。

(eval-and-compile ; `borg'
  (add-to-list 'load-path (expand-file-name "lib/borg" user-emacs-directory))
  (require 'borg)
  (borg-initialize))

完成后,应该就可以通过 M-x borg-assimilate 来安装 use-package,并在init.el加入:

(eval-and-compile ; `use-package'
  (setq use-package-enable-imenu-support t)
  (setq use-package-expand-minimally t)
  (setq use-package-compute-statistics t)
  (require  'use-package))

;; 如果用了 Emacs 29
(use-package epkg
  :defer t
  :custom (epkg-database-connector 'sqlite-builtin))

后面就可以正常用了。

有的配置可以参考 GitHub - emacscollective/emacs.g: The Emacs Collective

我几乎也是按照 Bootstrapping from scratch 来的,但是这里

好像应该用 make bootstrap-borg

是的,用 make bootstrap-borg 那个文档没更新,看这个

这里也是一样的

哦,我看错。文档是对的。
这两个作用不一样的

  1. 第一个用于已经有配置的情况下,安装 borg 自身(比如将已有配置通过 github 迁移到在新电脑上)
  2. 第二个是安装配置中的其他包,如果是从零开始配置的话,borg 自身是通过 git submodule add 手动安装的。
make bootstrap-borg  # = bootstrap borg itself  
make bootstrap       # = bootstrap collective or new drones
1 个赞

好像没看到有安装magit的部分啊

我分别make closql epkg都有错误

还有我不太懂这段到底是在说啥,我要不要添加这个makefile

我看你们的对话感觉是我已经用git submodule add安装了 ,如果是这样的话,这个makefile的作用是什么呢?

这样也可以安装 magit

git submodule add --name magit [email protected]:magit/magit.git lib/magit

你不需要进入到单个包去执行 make,在 .emacs.d 下执行 make bootstrap 就好了。

你还是要仔细读一下文档,我完全按照文档的操作是可以正常完成的,不知道你漏了哪一步。

实在不行,建议你直接用 seed 的方式,更简单,但是会安装一些你不想要的包,需要自己再删除。

用seed的方法就会遇到我最开始遇到找不到use-package的错误,我步骤应该都是正确的,都没成功。 不过还是谢谢了。

用 seed 的方式很简单啊,就下面几步:

git clone [email protected]:emacscollective/emacs.g.git ~/.emacs.d
cd ~/.emacs.d
make bootstrap-borg
make bootstrap

你系统中安装 sqilte3 了吗? epkg 依赖 sqlite 的。要么就是你网络的问题,包没正常clone 下来。进入 .emacs.d/lib/ 下面看看各个包的内容是否正常,是否在 master或者main 分支。

我又试了一次, make bootstrap的时候依然是提示找不到use-package,但是我再执行了一遍 make bootstrap好像就没有提示什么错误了,进emacs里面看到也确实安装了package。然后我epka-update时提示

应该如何解决呢

在进入终端,在 .emacs.d 下执行git submodule foreach git pull 更新下所有的包,然后执行make clean , 接着执行 make build 重新编译所有的包。然后再启动 Emacs

谢了,现在已经安装上了,我可以深入摸索一下啦

1 个赞

在windows版本的emacs下,如何进行 make bootstrap 这里运行了 shell 脚本

Windows 下要进入 Git-bash 这个环境,记得将你的 Emacs 加入到 Path。然后就可以 make bootstrap

如果你的 Git 是 3.8 以上版本,会有问题,作者还在修。参考下面的 issue

另外提醒,Borg 在 Windows 下的体验并不好,因为 Git 太慢,子模块多了,magit 很难用。我主要是在 macOS 上用 Borg,更新配置到 Windows 上。

我记得你好像是用windows版本的吧,不用borg用emacs自带的吗?

我 Windows 用 Borg 啊,只是不怎么在这上面去操作包的安装。因为 Magit 太慢。我是 macOS 上Borg更新了配置,然后在 Windows 上用 Borg 同步下配置而已。因为子模块多了,在 Windows 上启动 magit 要等几秒种。

如果你只在 Windows 上用 Emacs,真的不推荐用 Borg,没优势。但你可以自己体验一下 :smile:

Borg 在 Linux 和 macOS 的体验还是很好的。

好的,暂时放弃borg了 :grin: