问题描述
有没有办法从启动中删除它?我不需要它,我根本不使用进化论。
最佳解决方案
Ubuntu不允许您删除evolution-calendar-factory
,因为这是许多程序共享的库。
如果您尝试执行:sudo apt-get purge evolution-data-server
或sudo 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-registry
和evolution-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
)。如果你是偏执狂,那么请退出并重新登录。