当前位置: 首页>>技术问答>>正文


从启动中删除evolution-calendar-factory

, , ,

问题描述

有没有办法从启动中删除它?我不需要它,我根本不使用进化论。

最佳解决方案

Ubuntu不允许您删除evolution-calendar-factory,因为这是许多程序共享的库。

如果您尝试执行:sudo apt-get purge evolution-data-serversudo apt-get remove evolution-data-server,您的系统将被破坏!

您可以使用-s标志(模拟)在终端中测试这些命令(小心!)

sudo apt-get remove evolution-data-server -s

您将看到ubuntu-gnome-desktop将被删除,并且在下次重新启动后,您将无法再登录系统。 🙁

因此,请勿删除evolution-data-server

次佳解决方案

如果你想删除evolution-data-server,它将至少删除这些(在16.04测试)

The following packages will be REMOVED:
  evolution-data-server gdm3 gnome-contacts gnome-shell libfolks-eds25
0 upgraded, 0 newly installed, 5 to remove and 378 not upgraded.
After this operation, 15.8 MB disk space will be freed.

所以,更好的治疗方法有点令人讨厌,但它确实有效!

令人讨厌的黑客!

重命名Evolution二进制文件夹,以便找不到它!对我有用的是这些

sudo mv /usr/lib/evolution-data-server /usr/lib/evolution-data-server-disabled
sudo mv /usr/lib/evolution /usr/lib/evolution-disabled

而已!现在,我至少可以使用该系统。

注意:如果你以这种方式禁用进化,你将无法使用日历同步或其他花哨(对我来说无用)的东西。


不那么脏的黑客(更新)

看起来越来越多的人最近对进化不满意。但在我当前的设置中,我不重命名该文件夹。相反,我只是删除可执行位,它的工作原理。

为了禁用日历过程,我使用了

sudo chmod -x /usr/lib/evolution/evolution-calendar-factory

这种方法的好处是其他进化服务仍然可以工作(它们启动和运行)

如果你想关闭它们,请对evolution-source-registryevolution-addressbook-factory重复相同的过程!

第三种解决方案

我没有安装Evolution,但仍然运行。

通过软件中心删除包evolution-data-server。或者将其输入终端:sudo apt-get purge evolution-data-server。然后退出并重新登录,它应该消失了。

注:如果使用Unity桌面,这在14.04和16.04适用于我;然而,它并没有在18.04,因为许多关键的gnome包依赖于它

第四种方案

您可以使用systemd屏蔽单位(在Ubuntu 18.04,Unity上测试):

systemctl --user mask evolution-addressbook-factory.service evolution-calendar-factory.service evolution-source-registry.service

注销/登录后,服务将不再启动。

第五种方案

如果你正在使用Gnome或Gnome-Shell,似乎你无法删除evolution-data-server,因为它也将删除整个DE

root@europa:/home/user# apt remove evolution-data-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
evolution-data-server gdm3 gnome-contacts gnome-shell gnome-shell-extension-weather gnome-shell-extensions libfolks-eds25
0 upgraded, 0 newly installed, 7 to remove and 6 not upgraded.
After this operation, 17,5 MB disk space will be freed.
Do you want to continue? [Y/n] n

如果您仍想摆脱那些烦人的和resource-greedy进程,您可以删除(或者,更好地,重命名)其可执行文件的目录:

root@europa:/home/user# mv /usr/lib/evolution /usr/lib/evolution_DISABLE

然后杀死所有正在运行的进程:

root@europa:/home/user# for procname in $(ps aux | grep evolution | awk -F'/' '{print $NF}' | grep evolution | grep -v grep); do killall $procname; done

这样,Gnome将无法重新启动它们。

为我工作没有任何明显的附带损害。

第六种方案

那么,如果您认为上述答案对您的系统来说太有毒了(扯掉gnome-desktop先决条件,删除/重命名打包文件?不,谢谢!),我可能会为您提供解决方案。

创建~/.config/upstart/kill-evolution-services.conf并使用以下代码填充它。请务必使用您的用户名替换USER。

start on desktop-start
stop on desktop-end

script
  ME=USER
  GIVEUP=60
  while ! pgrep -u "$ME" -f '^/usr/lib/evolution/evolution'; do
    GIVEUP=$((GIVEUP - 1))
    if test $GIVEUP = 0; then
      break
    fi
    sleep 1
  done
  pkill -u "$ME" -f '^/usr/lib/evolution/evolution'
end script

这将在登录时运行,等待进化服务开始(最多60秒,可通过GIVEUP调整),然后杀死它们。从我所看到的(16.04),他们将一直死,直到你与一些需要它们的应用程序交互,比如gnome-calendar(应用程序,而不是指标)。要解决此问题,您可以将以下内容添加到crontab(从终端运行“crontab -e”)。同样,请务必使用您的用户名替换USER。

*/1 * * * * pkill -u USER -f '^/usr/lib/evolution/evolution'

这将尝试每分钟杀死一次进化服务。

所以我们摆脱了进化服务,而不是疯狂甚至调用sudo。据称这些服务的内存使用问题已在Gnome 3.20中得到修复,但Ubuntu还没有将它们反向移植到3.18。请注意https://bugs.launchpad.net/ubuntu/+source/indicator-datetime/+bug/1589605,即使它与indicator-datetime无关,据我所知。无论如何,指示灯在lightdm登录时运行良好,没有进化服务。

如果其中任何一个最终对您的配置产生副作用,您只需删除~/.config/upstart/kill-evolution-services.conf并删除crontab行(再次从终端删除crontab -e)。如果你是偏执狂,那么请退出并重新登录。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7097.html,未经允许,请勿转载。