Як за допомогою zipper я можу видалити всі пакунки, встановлені з певного сховища?


10

Скажіть, я додав сховище за допомогою zypper ar. Тоді я зайшов і встановив декілька пакунків із цього сховища, але тепер я хочу видалити їх.

Чи є команда, яка дозволяє мені видалити всі пакунки, які я встановив саме з цього конкретного сховища?

Відповіді:


7

Я думаю, що такої команди немає. Ви можете перелічити пакети з конкретного сховища:

zypper search --installed-only --repo devel:tools

або всі осиротілі пакети, якщо ви вже видалили це сховище:

zypper packages --orphaned

Тоді ви можете спробувати cutупакувати імена з виводу та передати їх, zypper removeякщо варто докласти зусиль.


У моїй системі openSuSE 12.3 немає --orphanedможливості, але це може працювати zypper packages -i -R:: вона перераховує встановлений пакет у зворотному порядку сховища.
Єроен Вірт Плюймерс

2
--orphanedбула додана в zypper`а , 1.9.2 ( github.com/openSUSE/zypper/issues/34 )
MARCIN

1

Ви можете використовувати комбінацію 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 +)
Mesco

Сам @Mesco zypper повинен друкувати встановлені пакети лише під час використання --installed.
sebix

правильно, використовуючи -iабо --installed-only. Але також я шукаю i i i + на початку, щоб пропустити перші кілька рядків ( Loading repository data...). Можливо, є кращі методи, щоб пропустити перші 5 рядків, але якщо ви вже використовуєте регулярний вираз ...;)
Mesco

можливо, я використовую іншу версію zipper (1.14.4), але її людина каже, що замовлення повинно бути se [options] [query]таким, щоб ваше рішення не працювало.
Меско,

Ах, тепер я розумію вашу стурбованість. Я оновив відповідь. Про синтаксис пошуку: я використовую лише параметри та без запиту, тому порядок вважаю правильним.
sebix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.