Скажіть, я додав сховище за допомогою zypper ar
. Тоді я зайшов і встановив декілька пакунків із цього сховища, але тепер я хочу видалити їх.
Чи є команда, яка дозволяє мені видалити всі пакунки, які я встановив саме з цього конкретного сховища?
Скажіть, я додав сховище за допомогою zypper ar
. Тоді я зайшов і встановив декілька пакунків із цього сховища, але тепер я хочу видалити їх.
Чи є команда, яка дозволяє мені видалити всі пакунки, які я встановив саме з цього конкретного сховища?
Відповіді:
Я думаю, що такої команди немає. Ви можете перелічити пакети з конкретного сховища:
zypper search --installed-only --repo devel:tools
або всі осиротілі пакети, якщо ви вже видалили це сховище:
zypper packages --orphaned
Тоді ви можете спробувати cut
упакувати імена з виводу та передати їх, zypper remove
якщо варто докласти зусиль.
--orphaned
була додана в zypper`а , 1.9.2 ( github.com/openSUSE/zypper/issues/34 )
Ви можете використовувати комбінацію zypper search
, awk
і xargs
видалити всі пакети з репозиторію. Наприклад:
zypper se --repo openSUSE-Tumbleweed-Debug --installed | awk '/^i(\+|\s)/ {print $3}' | xargs sudo zypper rm
awk '/^i(\+|\s)/ {print $3}'
щоб відповідати всім встановленим пакетам (i або i +)
--installed
.
-i
або --installed-only
. Але також я шукаю i i i + на початку, щоб пропустити перші кілька рядків ( Loading repository data...
). Можливо, є кращі методи, щоб пропустити перші 5 рядків, але якщо ви вже використовуєте регулярний вираз ...;)
se [options] [query]
таким, щоб ваше рішення не працювало.
--orphaned
можливості, але це може працюватиzypper packages -i -R
:: вона перераховує встановлений пакет у зворотному порядку сховища.