Как удалить не зависимые пакеты?

Как найти все пакеты, которые были установлены вручную, которые не зависят от каких-либо других установленных пакетов?

2
задан 9 November 2011 в 17:31

1 ответ

Короткий ответ: использовать aptitude как в следующем:

aptitude -F%p search '?installed?not(?automatic)

Но к сожалению эта команда возвращает много пакетов, которые соответствуют запросу, но не являются тем, что Вы ожидаете по двум причинам:

  1. существуют пакеты, установленные во время начальной установки системы, которые заканчиваются как не автоматически установленный

  2. пакеты, установленные как зависимости метапакета также, могут закончиться как не автоматически установленный

Решением, в которое я приехал некоторое время назад, является соответствие между предыдущей командой и dpkg журналы, это, по крайней мере, пытается удалить влияние точки 1. в списке предыдущих проблем:

#!/bin/bash

export LC_COLLATE=C

eval $(lesspipe)

vars=($(less $(ls -rt /var/log/dpkg.log*) | grep 'status installed grub-pc' | head -1))
date="${vars[0]}"
time="${vars[1]}"

join \
  <(aptitude -F%p search '?installed?not(?automatic)' |
    sort) \
  <(less $(ls -rt /var/log/dpkg.log*) |
    awk -v date=$date -v time=$time '(($1 == date && $2 > time) || $1 > date) && $3 == "install" { print $4, $1, $2 }' |
    sort -u) |
  awk '{ print $2, $3, $1 }' |
  sort

Это принимает это grub-pc последний пакет, установленный во время начальной установки, и никоим образом не прекрасен, но может дать Вам грубую информацию для запуска с.

3
ответ дан 9 November 2011 в 17:31

Другие вопросы по тегам:

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