彻底清除 Evolution 后禁用服务的正确方法

虽然我在AskUbuntu上阅读了很多帖子,但我没有找到一个适当的方法来禁用这些 Evolution 服务,尤其是当 Evolution 已经从系统中清除时,在 Ubuntu MATE 21.04 上。
这些服务在 `systemctl list-unit-files --type=service` 下没有列出,所以我无法使用 `sudo systemctl mask`。
ps -ef | grep evolution

admn 1973 1459 0 17:15 ? 00:00:00 /usr/libexec/evolution-source-registry
admn 2023 1459 0 17:15 ? 00:00:00 /usr/libexec/evolution-calendar-factory
admn 2058 1459 0 17:15 ? 00:00:00 /usr/libexec/evolution-addressbook-factory

这两个与进化相关的软件包仍然存在,因为清除它们会删除许多其他软件包。
evolution-data-server
evolution-data-server-common

执行ls -lsh /usr/libexec/evolution*的结果为:
$ ls -lsh /usr/libexec/evolution*

 16K -rwxr-xr-x 1 root root  15K Jun 22 20:57 /usr/libexec/evolution-addressbook-factory
 48K -rwxr-xr-x 1 root root  47K Jun 22 20:57 /usr/libexec/evolution-addressbook-factory-subprocess
116K -rwxr-xr-x 1 root root 115K Jun 22 20:57 /usr/libexec/evolution-calendar-factory
136K -rwxr-xr-x 1 root root 135K Jun 22 20:57 /usr/libexec/evolution-calendar-factory-subprocess
 60K -rwxr-xr-x 1 root root  59K Jun 22 20:57 /usr/libexec/evolution-scan-gconf-tree-xml
124K -rwxr-xr-x 1 root root 123K Jun 22 20:57 /usr/libexec/evolution-source-registry
 20K -rwxr-xr-x 1 root root  19K Jun 22 20:57 /usr/libexec/evolution-user-prompter

/usr/libexec/evolution-data-server:
total 116K

 32K -rwxr-xr-x 1 root root  31K Jun 22 20:57 addressbook-export
8.0K -rwxr-xr-x 1 root root 7.0K Jun 22 20:57 csv2vcard
 52K -rwxr-xr-x 1 root root  51K Jun 22 20:57 evolution-alarm-notify
 24K -rwxr-xr-x 1 root root  23K Jun 22 20:57 list-sources


操作系统:Ubuntu MATE 21.04
evolution-data-server版本:3.40.0-1ubuntu1.1
evolution-data-server-common版本:3.40.0-1ubuntu1.1
非常感谢您的提前帮助。

1这个回答解决了你的问题吗?如何停止 Evolution-Alarm-Notify - N0rbert
@n0rbert 正如我在问题中提到的,当我尝试运行命令:systemctl status evolution-addressbook-factory.service时,我收到了这个消息:找不到单元 evolution-calendar-factory.service。谢谢。 - Jags
你必须在 systemctl 命令中加上 --user 参数。所有这些单元都是由用户会话拥有和启动的。 - N0rbert
@n0rbert 啊,这就是为什么我找不到这些服务的原因。所以我应该只需systemctl --user mask这4个服务:evolution-addressbook-factory.serviceevolution-calendar-factory.serviceevolution-source-registry.serviceevolution-user-prompter.service,还是我需要像你发布的链接中提到的那样将.desktop复制到~/.config/autostart/?非常感谢。 - Jags
@n0rbert,你是否愿意发表一个回答呢?因为你提到的另一个帖子主要是关于evolution-alarm-notify的问题...而这个问题我并没有。我认为在这里给出一个答案会对未来的访问者有所帮助,因为缺少--user参数导致无法找到这些服务。再次感谢。 - Jags
2个回答

那么让我们从头开始。在崭新的Ubuntu MATE 21.04上我有:

$ ps -ef | grep evolution | grep -v grep
h           2025    1612  1 22:32 ?        00:00:00 /usr/libexec/evolution-data-server/evolution-alarm-notify
h           2112    1595  1 22:32 ?        00:00:00 /usr/libexec/evolution-source-registry
h           2230    1595  1 22:32 ?        00:00:00 /usr/libexec/evolution-calendar-factory
h           2250    1595  1 22:32 ?        00:00:00 /usr/libexec/evolution-addressbook-factory

$ systemctl list-units --type service --user | grep evolution
  evolution-addressbook-factory.service loaded active running Evolution address book service
  evolution-calendar-factory.service    loaded active running Evolution calendar service
  evolution-source-registry.service     loaded active running Evolution source registry

要禁用Evolution Data Server的某些部分,应该通过禁用systemd用户服务来实现:
systemctl --user mask evolution-addressbook-factory.service
systemctl --user mask evolution-calendar-factory.service
systemctl --user mask evolution-source-registry.service
systemctl --user mask evolution-user-prompter.service

重启。
如果你想采取激进措施,那么使用以下命令。
sudo apt autopurge evolution-data-server

删除提供上述systemd单元的软件包。
请注意,删除剩余的三个软件包evolution-data-server-commonlibecal-2.0-1:amd64libedataserver-1.2-26:amd64将会移除ayatana-indicator-datetime。因此,最终系统上的MATE面板将没有日历功能。请不要删除上述列出的这3个软件包。

通过systemctl --user mask命令,解决了4个服务的问题。目前,我不会清除evolution-data-server或其他你列出的3个软件包,因为我希望在MATE中保持ayatana-indicator-datetime的正常工作。一如既往,非常感谢你的帮助 :) - Jags

进化数据服务器(EDS)很久以前是进化的一个衍生物。然而,EDS并不是进化的一部分;它们是独立的。只有名称保留下来。
EDS是Ubuntu的默认安装的一部分,无论您选择安装或使用进化,它都应该保留在您的系统中。
EDS负责统一的日历和通讯录,为您的桌面会话提供支持。大多数桌面用户应该将其保留,并让它完成其工作。

很抱歉地说,你的回答只关注了进化名称,并没有关注我在问题中列出的禁用三项服务。谢谢。 - Jags
很抱歉,但你说过:“大多数桌面用户应该保持原样,让它发挥作用。”...如果是这样的话...我就会使用微软Windows了。 - Jags
1大多数提出这种问题的人都感到困惑。他们认为这些服务是Evolution协同办公套件的一部分。但事实并非如此。然后,当应用程序找不到他们预期中的日历、联系人和其他数据时,这些人就会变得很烦躁。如果你不属于这个常见的群体,你应该编辑你的问题,明确表明你完全理解你所要求的后果。 - user535733
如果我的问题对你来说不够“明确清晰”……很抱歉,我无需再对你多说什么。 - Jags
好的,祝你有个愉快的一天。 - user535733