旧 Emacs 守护进程可能保留旧代理
当新的 emacsclient 终端似乎忽略已更新的设置时,检查长期运行的 Emacs 服务器和 URL 库的代理状态。
新终端并不会创建新的 Emacs 服务器。emacsclient 可能让昨天的守护进程执行今天的软件包下载,并沿用该守护进程的旧代理状态。
在处理失败请求的 Emacs 会话中,同时检查环境和 url-proxy-services:
| 哪一部分是旧的? | 接下来该看哪里 |
|---|---|
| Emacs 环境中仍保留旧的端点 | 服务器的启动来源:用户服务、桌面会话或登录时启动的守护进程 |
环境正确,但 url-proxy-services 中仍保留旧的端点 | URL 库的初始化以及显式的 Lisp 设置 |
URL 库可以从环境中初始化受支持的代理条目。之后修改该环境,不一定会重建已经初始化或在 Lisp 中显式设置的条目。在特定服务器上下文中传入的客户端专用信息,并不是对服务器代理配置的通用重置。
修正预期的实时配置及其启动来源,使下一个服务器保持一致。重启也会带来全新的初始化,但请先保存该服务器中持有的工作;关闭再重新打开 frame 可能让进程继续运行。
这一诊断针对 URL 库。如果软件包调用 Git、curl 或其他外部下载器,应遵循该客户端的配置,而不要指望 url-proxy-services 会取代它。