Как мне полностью удалить Evolution?
Циклы на фабриках Evolution замедляют работу системы до внезапных и длительных остановок. Когда я получаю доступ к системному монитору, я могу остановить отдельные процессы, которые вызывают проблему. Эти процессы заключаются в следующем;
evolution-source-registry
в частности, фабрика эволюционных адресных книг
Как только фабрика эволюционной адресной книги остановлена, процессы в конечном итоге заменяются процессами с аналогичными именами, но цикл останавливается. Когда я подключаюсь к Thunderbird, он существенно замедляется. Первоначально я использовал Evolution Mail при запуске Ubuntu 12.10, но удалил ее и использовал Thunderbird.
Мои характеристики ноутбука:
Ubuntu 13.04 32-bit
2,0 ГГц (двухъядерный, оба ядра с тактовой частотой 2,0 ГГц)
1 ГБ ОЗУ После выполнения рекомендованных процедур для полного удаления я получил ошибку чтения кеша после полного удаления эволюции из диспетчера пакетов. Повторная загрузка пакетов в диспетчере пакетов включила распознавание электронной почты и вызвала ошибку, показанную на скриншоте.
9 ответов
Чтобы удалить Evolution, просто нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:
sudo apt-get --purge remove evolution evolution-exchange evolution-plugins evolution-common evolution-webcal
Приведенная выше команда не удаляет сервер данных эволюции, сервер данных эволюции общий
Я бы порекомендовал вам использовать Synaptic Package Manager для полного удаления Evolution. Просто найдите его и отметьте для полного удаления.
Также просто чтобы быть уверенным, после удаления сделать:
sudo rm /usr/share/indicators/messages/applications/evolution
Теперь имейте в виду, что удаление эволюции, также удалит панель гномов. для установки просто сделайте:
sudo apt-get install gnome-panel
Удаление - это грязное дело, но отключение относительно просто.
Конечно, это должно быть сделано с использованием 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 makes 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
С Ubuntu 18.04 (и, вероятно, 16.04) вы не можете избавиться от Evolution, не избавившись от GNOME, поэтому лучше всего отключить его.
Основываясь на ответе 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
Ничто из вышеперечисленного не помогло мне, поскольку фабрика электронных адресных книг продолжала работать и загружать 99% ЦП даже после команды очистки. Исполняемый файл находится в /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
В крайнем случае я удалил папку с этим:
sudo mv /usr/lib/evolution /usr/lib/evolution-fu
И теперь он остановился.
На 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
apt install gnome-session && apt purge evolution && apt autoremove
- часть будет отмечать только gnome-session как установленную вручную, поэтому она не удаляется третьей частью (gnome-core зависит от gnome-session)
- часть удалит эволюцию (ядро gnome зависит от эволюции, поэтому ядро gnome также будет удалено)
- part очистит все пакеты, которые система считает ненужными (без шага 1 это также привело бы к удалению gnome-session)
Если вы хотите отключить этот дурацкий бесполезный процесс эволюции, сделайте следующее:
for i in /usr/libexec/evoluti*; do sudo mv $i "$i.useless"; done
Эта команда добавит ".useless" к двоичным файлам, из-за которых они не существуют, я могу гарантировать вам, что бесполезные глупые мысли никогда не начнутся снова.
Объединение нескольких ответов здесь вместе в общий сценарий оболочки:
https://github.com/mcandre/dotfiles/blob/master/эволюция-сервисы
У apt-get есть опция --purge для полного удаления пакета.
В терминале:
sudo apt-get remove --purge evolution
sudo apt-get autoclean
Опция autoclean произведет очистку в пакете, хранящемся в вашей системе. Поэтому, если у вас несколько версий пакета, apt-get сохранит только последнюю версию.