Evolution 工厂的循环使系统突然长时间停止。当我访问系统监视器时,我可以停止导致问题的单个进程。这些进程如下;
evolution-source-registry
值得注意的是,evolution-addressbook-factory
一旦 evolution-addressbook-factory 停止,进程最终将被类似名称的进程替换,但循环会停止。当我连接到 Thunderbird 时,它的速度会大大降低。最初我在运行 Ubuntu 12.10 时使用了 evolution mail,但后来删除了它,并一直在使用 Thunderbird。
我的笔记本电脑规格如下:
Ubuntu 13.04 32 位
2.0 GHz(双核,两个核均为 2.0 GHz)
1GB RAM 执行完推荐的完全删除程序后,我从包管理器中完全删除 evolution 后收到缓存读取错误。在包管理器中重新下载包会启用电子邮件识别,并产生屏幕截图中所示的错误。
答案1
删除太麻烦(因为很多其他包即使不使用它的功能也依赖它),但禁用相对简单。
理想情况下,应该使用 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
如果我们删除文件或使用任何空文件,下一次更新/升级将恢复它们。因此,我们使用指向空文件的符号链接(/dev/null 是一个特殊的空文件,即使你向其中写入内容,它仍保持为空)。
这里您会找到一篇关于什么/dev/null
是的文章。
答案2
要删除 Evolution,只需按键盘上的Ctrl+ Alt+T打开终端。打开后,运行以下命令:
sudo apt-get --purge remove evolution evolution-exchange evolution-plugins evolution-common evolution-webcal
上述命令不会删除 evolution-data-server、evolution-data-server-common
我建议你使用 Synaptic Package Manager 来彻底删除 Evolution。只需搜索它,然后将其标记为彻底删除即可。
另外,为了确保万无一失,删除后请执行以下操作:
sudo rm /usr/share/indicators/messages/applications/evolution
现在请记住,删除 evolution 也会删除 gnome 面板。要安装,只需执行以下操作:
sudo apt-get install gnome-panel
答案3
使用 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
要撤消此操作,请运行以下命令:
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
答案4
在 Ubuntu 19.04 上停止演进:
#!/bin/bash
chmod -x /usr/libexec/evolution-addressbook-factory
chmod -x /usr/libexec/evolution-calendar-factory
chmod -x /usr/libexec/evolution-data-server/evolution-alarm-notify
chmod -x /usr/libexec/evolution-source-registry