Если пакет apt отмечен как «установленный автоматически», можно ли узнать, какой пакет инициировал установку? [дубликат]

Когда apt перечисляет автоматически установленный пакет, который я не могу распознать, мне иногда хотелось бы знать, какой установленный вручную пакет изначально инициировал установку. Возможно ли это?

0
задан 13 June 2020 в 04:20

1 ответ

Это пример сценария, который использует 2 команды для сканирования информации обо всех пакетах, чтобы определить пакеты, устанавливаемые вручную, для установки ваших пакетов.

apt list -installed

=> provide a list of package and you can see if the package was installed automaticaly

apt-cache rdepends --installed PACKAGE

=> предоставить список установленных в настоящее время, который зависит от PACKAGE

#!/bin/bash
if [ -z "$1" ]
then
    echo help:
    echo  $0    PACKAGE
    echo
    echo find packages that was manual installed that install PACKAGE as a dependency
    echo
    exit 1
fi
ROOT_PKG="$1";
echo "package $ROOT_PKG" ;
FG=$(mktemp);
apt list --installed 2>/dev/null | grep automatic > $FG;
ALREADY_DISPLAY=":"
ALREADY_SCAN=":"
while [ -n "$ROOT_PKG" ];
do
      for P in $ROOT_PKG;
      do
              ROOT_PKG="";
              for RDP in $( apt-cache rdepends --installed $P | sed '0,/^Reverse Depends:/  d;' );
              do
                      RDP=$(echo "$RDP" | sed 's/^|//' ) ;
                      if ( grep -q "^${RDP}/"  $FG );
                      then
                              if ( ! ( echo "$ALREADY_SCAN" | grep -q ":$RDP" ) )
                              then
                                  ROOT_PKG="$ROOT_PKG $RDP";
                                  ALREADY_SCAN="$ALREADY_SCAN:$RDP"
                              fi
                      else
                              if ( ! ( echo "$ALREADY_DISPLAY" | grep -q ":$RDP" ) )
                              then
                                 echo " was needed by $RDP";
                                 ALREADY_DISPLAY="$ALREADY_DISPLAY:$RDP"
                              fi
                      fi;
              done;
      done;
done;
0
ответ дан 19 June 2020 в 21:25

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

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