源码编译安装Emacs:如何排除emacsclient及解决双桌面入口问题?
关于源码安装Emacs时排除emacsclient/守护进程及桌面入口的解决办法
一、源码安装时能否排除emacsclient和守护进程?
Emacs的./configure确实没有提供直接关闭emacsclient或守护进程编译/安装的选项——这俩属于Emacs核心IPC功能的一部分,代码层面和主程序绑定得比较深,官方没做单独禁用的开关。不过可以用以下两种方式绕开:
- 手动选择性安装:先运行
make完成编译,不要直接执行make install。自己找到编译好的主程序(路径一般是src/emacs),手动复制到/usr/local/bin或你指定的安装目录;跳过src/emacsclient以及守护进程相关的辅助文件,同时也可以不复制emacsclient对应的man页、桌面入口等文件。 - 修改Makefile跳过安装步骤:运行
./configure生成Makefile后,打开它搜索和emacsclient、daemon相关的安装规则(比如找install-client、install-daemon这类目标),把对应的安装命令注释掉,再执行make install。这样主程序会正常安装,而emacsclient和守护进程相关文件不会被部署。
二、除了删除文件,如何处理多余的桌面入口?
针对Debian 12和Ubuntu 20.04的Gnome环境,有这些替代方案:
- 编译时跳过客户端桌面文件安装:同样修改Makefile,找到安装桌面文件的规则(比如
install-desktop),注释掉安装emacsclient.desktop的那一行,然后再make install,这样只会生成主程序的桌面入口。 - 用Gnome自带功能隐藏入口:右键点击Gnome菜单里的“Emacs (Client)”,选择“隐藏”;或者安装
alacarte(图形化菜单编辑器),打开后找到这个入口,取消“显示”的勾选即可,不需要删除任何文件。 - 指定安装目标:检查Makefile里是否有单独的
install-emacs目标,如果有的话,直接执行make install-emacs,只会安装主程序相关的文件,不会包含客户端的桌面入口和辅助工具。
内容的提问来源于stack exchange,提问作者Tariel
相关产品推荐
相关产品推荐

