Ищем устаревшие и отсутствующие пакеты

Изображение пользователя aslok.

Понадобилось сегодня, решил сохранить, а за одно - может кому-то ещё пригодится. Естественно - на свой страх и риск =)




  • Ищем пакеты, которые новее, чем доступные
    $ aptitude search ~i -F %p | while read STRING; do VER="$(apt-cache policy $STRING)"; LOCAL="$(echo "$VER" | grep '\*\*\*' -A1 | grep /var/lib/dpkg/status | wc -l)"; if (( "$LOCAL" != 1 )); then continue; fi; CHECK="$(echo "$VER" | grep http -B1 | head -n 1 | grep -v '\*\*\*')"; if [ -n "$CHECK" ] && (( $(echo "$CHECK" | wc -l) == 1 )); then NEW_VER=$(echo "$CHECK" | sed 's/^ \+\(.*\) \+[0-9]\+$/\1/'); echo "$STRING=$NEW_VER" >> packages-versions.txt; fi; done;1. Ищем все установленные пакеты
    2. Если установленная версия пакета доступна в репе, пропускаем пакет
    3. Если установленная версия не доступна в репе, но есть другая, доступная - запоминаем доступную версию
    4. Генерируем файл packages-versions.txt в котором каждая строчка ПАКЕТ=ДОСТУПНАЯ_ВЕРСИЯ
  • Требуем установить версии пакетов из файла:
    $ sudo aptitude install `cat packages-versions.txt`Или с исключениями, не трогая пакеты skype, qucs и deadbeef:
    $ sudo aptitude install `egrep -v 'skype|qucs|deadbeef' packages-versions.txt`
  • Ищем пакеты которые недоступны в репе и удаляем
    $ sudo aptitude purge `aptitude search ~o -F %p`Или с исключениями, не трогая пакеты skype, qucs и deadbeef:
    $ sudo aptitude purge `aptitude search ~o -F %p | egrep -v 'skype|qucs|deadbeef'`
  • Ищем пакеты которые установлены автоматически и не используются - удаляем, повторяем до тех пор, пока такие пакеты есть в системе
    $ until [  `deborphan | wc -l` -eq 0 ]; do sudo aptitude purge `deborphan`; done

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры