✔ CentOS 7: Как удалить пакеты с зависимостями с помощью YUM.

Содержание:

1. Постановка задачи.
2. Решение задачи.

2.1. Использование опции Autoremove YUM.
2.2. Использование плагина yum-plugin-remove-with-leaves.

3. Оригиналы источников информации.


1. Постановка задачи.

Обычно удаление пакета с использованием системы управления пакетами YUM приведет к удалению этого пакета вместе со своими зависимостями.

Однако некоторые зависимости не будут удалены в системе, это то, что мы можем назвать «неиспользуемыми зависимостями» или (так называемыми «leaf пакетами» в соответствии с справочной страницей YUM).

В этой инструкции будет рассмотрено два способа удаления пакета вместе со своими зависимостями с помощью диспетчера пакетов YUM в CentOS 7.

2. Решение задачи.

2.1. Использование опции Autoremove YUM.

Этот метод требует, чтобы вы добавили директиву clean_requirements_on_remove в главный файл конфигурации YUM/etc/yum.conf.

Вы можете использовать свой любимый редактор командной строки, чтобы открыть его для редактирования, как показано ниже:

# mcedit /etc/yum.conf

Затем добавьте следующую строку в файл /etc/yum.conf, как показано на следующем рисунке.

Значение один означает, что директива включена, а ноль означает иначе.

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
 
clean_requirements_on_remove=1

Сохраните изменения и выйдите из файла.

Теперь, каждый раз, когда вы удаляете пакеты, YUM просматривает зависимости каждого пакета и удаляет их, если они больше не нужны никаким другим пакетам.

# yum autoremove

2.2. Использование плагина yum-plugin-remove-with-leaves.

Это расширение удаляет любые неиспользуемые зависимости, которые были добавлены в установочный пакет, но не будет удаляться автоматически.

Он также поможет вам очистить систему от неиспользуемых библиотек и пакетов.

# yum -y install yum-plugin-remove-with-leaves

Если вы установили расширение, каждый раз, когда вы хотите удалить пакет, добавьте, например, флаг --remove-leaves.

# yum remove policycoreutils-gui --remove-leaves

Если не требуется удалять список пакетов, содержащих исполняемые бинарные файлы используется параметр --leaves-exclude-bin.

Для использования данного плагина по умолчанию, необходимо внести изменения в файл /etc/yum/pluginconf.d/remove-with-leaves.conf.

# mcedit /etc/yum/pluginconf.d/remove-with-leaves.conf

Привести его содержание к следующему виду:

[main]
enabled = 1
#exclude_bin = 1
remove_always = 1

То есть снять комментирование со строки содержащей опцию remove_always.

Теперь при выполнении команды деинсталляции пакета:

# yum remove munin munin-node --remove-leaves

Будет проведена проверка зависимостей, выведен список зависимых пакетов помеченных для удаления и получив подтверждения удалит их.

Без длинных списков проверяемых и удаляемых пакетов, вывод будет иметь примерно следующее содержание:

Загружены модули: fastestmirror, remove-with-leaves
Разрешение зависимостей
--> Проверка сценария
---> Пакет munin.noarch 0:2.0.40-4.el7 помечен для удаления
--> Обработка зависимостей: munin = 2.0.40 пакета: munin-cgi-2.0.40-4.el7.noarch
--> Обработка зависимостей: munin = 2.0.40 пакета: munin-nginx-2.0.40-4.el7.noarch
---> Пакет munin-node.noarch 0:2.0.40-4.el7 помечен для удаления
--> Проверка сценария
---> Пакет munin-cgi.noarch 0:2.0.40-4.el7 помечен для удаления
---> Пакет munin-nginx.noarch 0:2.0.40-4.el7 помечен для удаления
--> Проверка зависимостей окончена
removing [ . . . ] It is not required by anything else.
--> Проверка сценария
---> Пакет [ . . . ] помечен для удаления
--> Проверка зависимостей окончена
Зависимости определены
===================================
Package Архитектура Версия Репозиторий Размер
===================================
Удаление:
[ . . . ]
Итого за операцию
===================================
Удалить 95 пакетов (+2 зависимых)
Объем изменений: 35 M
Продолжить? [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Удаление : [ . . . ]
Удалено:
[ . . . ]
Удалены зависимости:
[ . . . ]
Выполнено!

Для получения дополнительной информации ознакомьтесь с справочной страницей YUM:

# man yum

3. Оригиналы источников информации.

  1. itisgood.ru «Как удалить пакеты с зависимостями с помощью YUM».
  2. i-notes.org «CentOS удалить пакет с зависимостями yum-plugin-remove-with-leaves».

Читайте также: