JeffFromOhio Asked: 2024-12-13 00:45:13 +0800 CST2024-12-13 00:45:13 +0800 CST 2024-12-13 00:45:13 +0800 CST guix 安装的 emacs 软件包重复 - 在 emacs 探索软件包列表中列出了两次 772 我在 Debian 上安装了 guix,然后使用 guix 安装了 emacs 和几个 emacs 包(emacs-discover 和 emacs-mastodon),这也导致 guix 安装了这些包的一些依赖项。 guix 安装的每个软件包都会在 emacs 内置软件包管理器的列表中出现两次。需要说明的是,它们出现两次并不是因为它们在另一个存储库(如 elpa 或 melpa)中可用。它们在由 guix 安装之前根本没有出现,并且在列表的状态栏中被列为“外部”(附有屏幕截图)。 有办法解决这个问题吗?大量重复的软件包会让人很烦。 debian 1 个回答 Voted Best Answer JeffFromOhio 2024-12-13T02:45:32+08:002024-12-13T02:45:32+08:00 因此,事实证明,在安装 emacs 或 emacs 包期间,guix 会自动使用以下行更新 $GUIX_PROFILE/etc/profile: 导出 EMACSLOADPATH="${GUIX_PROFILE:-/gnu/store/aw9nzpanmzpnf0j3fdh6vlv05d95si6c-profile}/share/emacs/site-lisp${EMACSLOADPATH:+:}$EMACSLOADPATH" 然后 guix 自动获取该配置文件脚本来更新用户环境,以便可以找到新安装的软件包。 但是,guix 两次获取了配置文件(可能一次是在安装 emacs 时,一次是在安装 emacs 包时;或者可能是我安装的每个 emacs 包都获取了一次),导致我的环境变量中 site-lisp 目录重复。emacs 中的 Emacs 包工具显然会很乐意扫描同一个目录两次,并在两次找到同一个目录中的包时添加条目。 解决方案非常简单:注销你的 shell 以清除环境,然后重新登录以获取新的 shell,并且 env 变量将只有一次目录。
因此,事实证明,在安装 emacs 或 emacs 包期间,guix 会自动使用以下行更新 $GUIX_PROFILE/etc/profile:
导出 EMACSLOADPATH="${GUIX_PROFILE:-/gnu/store/aw9nzpanmzpnf0j3fdh6vlv05d95si6c-profile}/share/emacs/site-lisp${EMACSLOADPATH:+:}$EMACSLOADPATH"
然后 guix 自动获取该配置文件脚本来更新用户环境,以便可以找到新安装的软件包。
但是,guix 两次获取了配置文件(可能一次是在安装 emacs 时,一次是在安装 emacs 包时;或者可能是我安装的每个 emacs 包都获取了一次),导致我的环境变量中 site-lisp 目录重复。emacs 中的 Emacs 包工具显然会很乐意扫描同一个目录两次,并在两次找到同一个目录中的包时添加条目。
解决方案非常简单:注销你的 shell 以清除环境,然后重新登录以获取新的 shell,并且 env 变量将只有一次目录。