Скажем, я использую дистрибутив на основе Debian и хочу знать, какие пакеты я запускал apt-get install <package-name> для установки, но я не хотел включать какие-либо пакеты, которые были автоматически установлены в качестве зависимостей, когда я устанавливал другой пакет, используя apt-get install <package-name>... можно ли это узнать?

Я предполагаю, что нет способа, потому что apt и dpkg, вероятно, не различают их, но я бы предпочел, чтобы меня опровергли, если это возможно.

0
leeand00 9 Янв 2020 в 23:10

2 ответа

Лучший ответ

Пакеты, устанавливаемые как зависимости, помечаются как устанавливаемые автоматически. Вы можете видеть эти маркеры и управлять ими с помощью apt-mark.

apt-mark showmanual

Отобразит пакеты, которые не помечены как установленные автоматически, т. е. пакеты, установленные явно.

3
Stephen Kitt 9 Янв 2020 в 23:19
Также стоит отметить, что aptitude et al. показать эти метки рядом с именами пакетов.
 – 
JdeBP
10 Янв 2020 в 00:08

Эти команды могут помочь вам облегчить вашу работу, я бы попробовал следующую команду:

cat /var/log/apt/history.log | grep 'apt-get install '

Следующие две команды:

apt-mark showmanual

dpkg --get-selections

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

Важное примечание: если вы используете утилиту logrotate, вам нужно будет использовать следующую команду

zgrep 'apt-get install' /var/log/apt/history* --color
0
Fsoc 10 Янв 2020 в 00:02
Редко какая-либо необходимость в cat, когда есть только один файл. grep 'apt-get install' /var/log/apt/history.log
 – 
roaima
9 Янв 2020 в 23:53