Evolution 工厂的循环使系统缓慢到突然而长时间的停止。当我访问系统监视器时,我可以停止导致问题的各个进程。这些过程如下;
evolution-source-registry
Run Code Online (Sandbox Code Playgroud)
值得注意的是,evolution-addressbook-factory
一旦evolution-addressbook-factory 停止,这些进程最终会被类似命名的进程替换,但循环停止。当我连接到 Thunderbird 时,它会大大减慢。最初我在运行 Ubuntu 12.10 时使用了进化邮件,但将其删除并一直在使用 Thunderbird。
我的笔记本电脑规格是:
Ubuntu 13.04 32 位
2.0 GHz(双核,双核均为 2.0 GHz)
1GB RAM 在执行完全删除的推荐程序后,我在从包管理器中完全删除进化后收到缓存读取错误。在包管理器中重新下载包启用了电子邮件识别并产生了屏幕截图中看到的错误。
PAS*_*LoD 36
删除太麻烦(因为很多其他包依赖它,即使他们不使用它的功能),但禁用相对简单。
理想情况下,这应该使用 dpkg-divert 完成(但转移到同一文件有问题),以免在升级系统时混淆 apt/dpkg。
cd /usr/share/dbus-1/services
# This part create a copy of your original files
sudo cp org.gnome.evolution.dataserver.AddressBook.service org.gnome.evolution.dataserver.AddressBook.service.backup
sudo cp org.gnome.evolution.dataserver.Calendar.service org.gnome.evolution.dataserver.Calendar.service.backup
sudo cp org.gnome.evolution.dataserver.Sources.service org.gnome.evolution.dataserver.Sources.service.backup
sudo cp org.gnome.evolution.dataserver.UserPrompter.service org.gnome.evolution.dataserver.UserPrompter.service.backup
# This part does the trick
sudo ln -snf /dev/null org.gnome.evolution.dataserver.AddressBook.service
sudo ln -snf /dev/null org.gnome.evolution.dataserver.Calendar.service
sudo ln -snf /dev/null org.gnome.evolution.dataserver.Sources.service
sudo ln -snf /dev/null org.gnome.evolution.dataserver.UserPrompter.service
Run Code Online (Sandbox Code Playgroud)
如果我们只是删除文件或使用任何空文件,下次更新/升级会将它们放回原处。因此,我们使用了指向空文件的符号链接(/dev/null 是一个特殊的空文件,即使您向其中写入内容,它也保持为空)。
在这里你可以找到一篇关于什么的文章/dev/null
。
Mit*_*tch 13
要删除 Evolution,只需按键盘上的Ctrl+ Alt+T打开终端。当它打开时,运行以下命令:
sudo apt-get --purge remove evolution evolution-exchange evolution-plugins evolution-common evolution-webcal
Run Code Online (Sandbox Code Playgroud)
上述命令不会删除evolution-data-server、evolution-data-server-common
我建议您使用 Synaptic Package Manager 来完全删除 Evolution。只需搜索它,并将其标记为完全删除。
也只是为了确定,删除后做:
sudo rm /usr/share/indicators/messages/applications/evolution
Run Code Online (Sandbox Code Playgroud)
现在请记住,删除进化,也将删除 gnome 面板。安装只需执行以下操作:
sudo apt-get install gnome-panel
Run Code Online (Sandbox Code Playgroud)
使用 Ubuntu 18.04(可能还有 16.04),你不能在不摆脱 GNOME 的情况下摆脱 Evolution,所以最好的办法是禁用它。
基于PAStheLoD 的回答及其评论,我编写了一个脚本来禁用进化服务并将更改通知 dpkg/apt,这样它们就不会在升级时消失。希望这会帮助那些像我一样编写系统设置脚本的人,以防万一您需要重新安装。
我在 Ubuntu 18.04.1 LTS 上对此进行了测试。
#!/bin/bash
##
## Disables the Evolution mail program's services by moving the services files
## to another directory.
##
## This must be run as root.
##
SERVICES_HOME="/usr/share/dbus-1/services"
DISABLED_DIR="$SERVICES_HOME/disabled"
exitOnError()
{
local errorCode=$1
local errorMessage="$2"
echo "$errorMessage"
exit $errorCode
}
main()
{
# Make sure that we are running as root and that the services directory didn't change!
if ! [ $(id -u) = 0 ]; then
exitOnError -1 "Script must be run as root or sudo. Exiting..."
fi
if [ ! -d "$SERVICES_HOME" ]; then
exitOnError -2 "Services directory $SERVICES_HOME does not exist. Exiting..."
fi
mkdir -p "$DISABLED_DIR"
find "$SERVICES_HOME" -maxdepth 1 -type f -name "org.gnome.evolution.dataserver.*" ! -name "*.bak" -printf "%f\0" | while IFS= read -r -d $'\0' servicename; do
# Tell dpkg/apt to update the file in DISABLED_DIR instead of the one in SERVICES_HOME
dpkg-divert --quiet --divert "$DISABLED_DIR/$servicename" --rename --add "$SERVICES_HOME/$servicename" || exitOnError -3 "Unable to divert service $servicename."
ln -snf /dev/null "$SERVICES_HOME/$servicename"
echo "Disabled service $servicename"
done
echo "All evolution services have been disabled. Please restart for changes to take effect."
}
main
Run Code Online (Sandbox Code Playgroud)
要撤消此操作,请运行以下命令:
sudo rm /usr/share/dbus-1/services/org.gnome.evolution.dataserver.*
sudo dpkg-divert --rename --remove /usr/share/dbus-1/services/org.gnome.evolution.dataserver.AddressBook.service
sudo dpkg-divert --rename --remove /usr/share/dbus-1/services/org.gnome.evolution.dataserver.Calendar.service
sudo dpkg-divert --rename --remove /usr/share/dbus-1/services/org.gnome.evolution.dataserver.Sources.service
sudo dpkg-divert --rename --remove /usr/share/dbus-1/services/org.gnome.evolution.dataserver.UserPrompter.service
sudo rmdir /usr/share/dbus-1/services/disabled
Run Code Online (Sandbox Code Playgroud)
以上都没有帮助我,因为即使在清除命令之后,电子地址簿工厂仍在继续运行并占用 99% 的 CPU。可执行文件位于 /usr/lib/evolution:
-rwxr-xr-x 1 root root 10544 Jul 30 2013 camel-index-control-1.2
-rwxr-sr-x 1 root mail 14664 Jul 30 2013 camel-lock-helper-1.2
-rwxr-xr-x 1 root root 27760 Jul 30 2013 e-addressbook-factory
-rwxr-xr-x 1 root root 31984 Jul 30 2013 e-calendar-factory
Run Code Online (Sandbox Code Playgroud)
作为最后的手段,我用这个把文件夹移开了:
sudo mv /usr/lib/evolution /usr/lib/evolution-fu
Run Code Online (Sandbox Code Playgroud)
现在它已停止运行。