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

Я пытаюсь немного почистить установку, поэтому решил немного почистить свои пакеты. Однако у меня возникли проблемы с этим: я хочу, чтобы apt-get перечислил все установленные мной пакеты. Если я перечисляю каждый пакет, я также вижу зависимости своих пакетов, хотя они меня не интересуют. Например, я хочу видеть, что я установил lightyears, но я не хочу видеть пакеты, установленные рядом, как python-numpy or python-pygame. Есть ли способ сделать это?

4
задан 9 April 2013 в 23:37

3 ответа

Это быстрый взлом, но это очень близко подходит ко мне:

manifest='http://releases.ubuntu.com/raring/ubuntu-13.04-beta2-desktop-amd64.manifest'

comm -2 -3 \
  <(apt-mark showmanual | sort) \
  <(curl --silent "$manifest" | grep --perl-regexp --only-matching '^[\w-.+]+' | sort)

Вам придется искать манифест пакета для вашей версии Ubuntu с сервера релизов .

Этот метод по-прежнему возвращает несколько пакетов, которые были выбраны с помощью приглашения установки Language Support и флажка установки стороннего программного обеспечения , но в зависимости от ваших потребностей он может быть достаточно хорошим .

0
ответ дан 9 April 2013 в 23:37

Я пытаюсь это:

  1. иди и получи файл «манифеста» для своей версии, как упомянуто Ундрюком выше
  2. apt-mark showmanual, чтобы получить список всех пакетов -mark считает, что установленное вручную
  3. устраняет дублирование между этими списками, сохраняя оставшуюся часть вывода apt-mark showmanual

Я не знаю, действительно ли это работает, но это выглядит довольно вероятно для меня. Есть мысли ???

0
ответ дан 9 April 2013 в 23:37

Я думаю, что нет команды, которая позволяла бы вам получать эту информацию напрямую, но вы можете получить эту информацию, просматривая журналы APT. APT хранит историю команд в /var/log/apt/history.log, с записями в следующем формате:

Start-Date: ** time when command was issued **
Commandline: ** command used **
Install | Upgrade | Remove: ** packages installed/upgraded/removed to satisfy the command **
End-Date: ** time when command have finished **

Команды, введенные вами, должны отображаться так, как вы печатали (поэтому sudo apt-get install numpy будет выглядеть как Commandline: apt-get install numpy). В моей системе единственные другие команды, появляющиеся в этом журнале, взяты из aptdaemon, которые должны быть выполнены Менеджером обновлений.

Обратите внимание, что этот журнал время от времени вращается, поэтому у вас могут отсутствовать все команды, введенные вами с самого начала, или вам может потребоваться извлечь его сжатую часть. Также, если у вас несколько пользователей, я думаю, вы не сможете узнать, кто из них что установил.

0
ответ дан 9 April 2013 в 23:37

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

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