Zypper: Как вывести список установленных пакетов, которых нет в репо

8220
David B.

В системе, использующей Zypper для управления пакетами (в моем случае openSuse), как можно получить список всех установленных пакетов, которые не связаны с текущим включенным репозиторием?

Реальная проблема: при обновлении дистрибутивов (например, с openSuse 12.1 до 12.2) я отключаю все нестандартные репозитории, которые я включил. Часто я добавлял их только для получения новой версии определенного инструмента, но эта новая версия по умолчанию включена в обновленный дистрибутив. Хотя иногда из репозитория устанавливались дополнительные пакеты, но я не знаю, как их обнаружить. Система работает, но эти пакеты никогда не будут обновляться, так как я удалил предоставляющий репозиторий после обновления.

4

2 ответа на вопрос

3
s-m-e

Это немного о том, чтобы возиться с запросами молнии.

1) Найдите установленные пакеты из non-opensuse-distribution-repositories:

zypper search -s | grep "i |" | grep -vi "| patch" | grep -vi "| opensuse" > list1.txt 

2) Найти пакеты, которые доступны в репозиториях opensuse (независимо от того, установлены они или нет):

zypper search -s | grep "v |" | grep -vi "| patch" | grep -i "| opensuse" > list2.txt 

3) Определите пакеты из списка1, которые не представлены в списке2:

cat list1.txt | cut -d " " -f3 | cut -d " " -f1 | while read line do if [ "$(cat list2.txt | grep -i $line)" = "" ]; then echo "$line" fi done 

Это как бы решает проблему (протестировано на openSUSE 11.3).

1
Chris Maes

Вариант pa, вероятно, более уместен:

zypper pa -i 

перечисляет все установленные пакеты и их доступные версии и репозитории. Вы можете выбрать список только пакетов, принадлежащих определенному хранилищу с -rфлагом:

zypper pa -i -r openSUSE-12.1 

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

Я начал использовать `zypper pa -i | grep @ System`; Я использовал `zypper search -i -s -t package | grep "| (системные пакеты) \ s * $" ` ShadSterling 6 лет назад 0

Похожие вопросы