Удаление неиспользуемых пакетов в openSUSE

Что мне не нравится в системе управления пакетами openSUSE, так это то, что при удалении какого-либо пакета, все библиотеки, от которых он зависит остаются в системе. В Ubuntu, например, aptitude предлагает удалить те пакеты, необходимости в которых больше нет.

На форуме openSUSE нашел интересный скрипт для поиска тех пакетов, от которых не зависят другие пакеты.

forums.opensuse.org/applications/405306-how-find-unused-packages.html

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

#!/bin/bash
 
export LC_ALL=C
 
for PACKAGE in $(rpm -qa); do
  NEEDED=false
  for PROVIDE in $(rpm -q --provides "$PACKAGE" | awk '{print $1}'); do
    if [ $(rpm -q --whatrequires "$PROVIDE" | fgrep -v 'no package requires' | wc -l) -gt 0 ]; then
      NEEDED=true
    fi
  done
  if [ "$NEEDED" = false ]; then
    echo "$PACKAGE"
  fi
done

Комментарии (3)

RSS свернуть / развернуть
+
0
Интересная команда здесь задействована — fgrep ( = grep -F). Не знал про нее, полезная, оказывается.
avatar

yababay

  • 11 марта 2012, 21:56
+
0
Про Убунту ты конечно слишком лестно отозвался =) Точнее сказать про APT.
Как-то раз я сделал apt-get autoremove. После перезагрузки система была неработоспособна как десктоп.
avatar

durman

  • 13 марта 2012, 21:17
+
0
В убунте у меня вроде норм очищало, такого не было чтоб совсем сыпалась)
avatar

Sergei_T

  • 14 марта 2012, 21:47

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.