Удалить установленные пакеты из определенного репозитория в CentOS
Это продолжение нашей предыдущей статьи под названием "как устанавливать пакеты из определенного репозитория". Как следует из названия, в этом руководстве описывается, как удалить установленные пакеты из определенного репозитория из командной строки в операционных системах Linux. В режиме графического интерфейса мы могли бы сделать это парой щелчков мыши. Поскольку я в основном предпочитаю режим CLI, я дал инструкции только для режима CLI. Читай дальше.
Удалить установленные пакеты из определенного репозитория
В RHEL, CentOS, Scientific Linux:
В системах на базе YUM, таких как Red Hat и ее клонах, таких как CentOS и Scientific Linux, мы можем удалить установленные пакеты из определенного репозитория, используя команду от имени пользователя root:
yum remove $(yum list installed | grep epel | awk '{ print $1 }')
Пример вывода:
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package dnf.noarch 0:0.6.4-2.el7 will be erased
---> Package dnf-conf.noarch 0:0.6.4-2.el7 will be erased
---> Package dnf-plugins-core.noarch 0:0.1.5-3.el7 will be erased
---> Package epel-release.noarch 0:7-9 will be erased
---> Package libcomps.x86_64 0:0.1.6-13.el7 will be erased
---> Package python-dnf.noarch 0:0.6.4-2.el7 will be erased
---> Package python-libcomps.x86_64 0:0.1.6-13.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================
Package Arch Version Repository Size
==========================================================================================
Removing:
dnf noarch 0.6.4-2.el7 @epel 652 k
dnf-conf noarch 0.6.4-2.el7 @epel 29 k
dnf-plugins-core noarch 0.1.5-3.el7 @epel 167 k
epel-release noarch 7-9 @epel 24 k
libcomps x86_64 0.1.6-13.el7 @epel 202 k
python-dnf noarch 0.6.4-2.el7 @epel 1.8 M
python-libcomps x86_64 0.1.6-13.el7 @epel 140 k
Transaction Summary
==========================================================================================
Remove 7 Packages
Installed size: 3.0 M
Is this ok [y/N]:
Приведенная выше команда удалит все установленные пакеты из репозитория EPEL вместе со всеми зависимостями. А также он удалит сам репозиторий EPEL.
Если вы хотите удалить только пакеты, а не зависимости, введите следующую команду от имени пользователя root:
rpm -e --nodeps `yum list installed | grep epel | awk '{ print $1 }'`
Помните, что приведенная выше команда не запрашивает подтверждения при удалении пакетов.
В Fedora:
В Fedora вы можете удалить все пакеты из определенного репозитория, используя следующую команду от имени пользователя root:
dnf repository-packages <repo-id> remove
Пример :
dnf repository-packages zyga-snapcore remove
Пример вывода:
Last metadata expiration check: 0:05:43 ago on Fri Jun 23 15:37:20 2017.
Dependencies resolved.
==========================================================================================
Package Arch Version Repository Size
==========================================================================================
Removing:
lz4 i686 r131-1.fc23 @fedora 322 k
snap-confine i686 1.0.40-1.fc23 @updates 80 k
snapd i686 2.14-1.fc23 @zyga-snapcore 17 M
squashfs-tools i686 4.3-11.fc23 @fedora 405 k
Transaction Summary
==========================================================================================
Remove 4 Packages
Installed size: 18 M
Is this ok [y/N]:
Здесь zyga-snapcore — это идентификатор репозитория Copr для Snapcore, принадлежащего zyga.
Приведенная выше команда также удалит зависимости, установленные из других репозиториев. Если вы хотите удалить только пакеты, а не зависимости, просто запустите:
sudo rpm -e --nodeps `dnf list installed | grep zyga-snapcore | awk '{ print $1 }'`
Чтобы узнать идентификатор репозитория, запустите:
dnf repolist
Пример вывода из системы Fedora:
Last metadata expiration check: 0:07:39 ago on Fri Jun 23 15:37:20 2017.
repo id repo name status
*fedora Fedora 23 - i386 38,811
*updates Fedora 23 - i386 - Updates 18,174
zyga-snapcore Copr repo for snapcore owned by zyga 11
Прочтите следующее руководство, чтобы узнать идентификатор репозитория в различных дистрибутивах Linux.
- Как найти список установленных репозиториев из командной строки в Linux
И это все. Надеюсь, это было полезно.