niquelnausea
(usa Arch Linux)
Enviado em 22/01/2019 - 22:27h
o pacman possui varias opções e características, uma que pode te ajudar é a marcação "pacote explicitamente instalado" e a "dependência de pacote explicitamente instalado", a depender de como fez a instalação, isso pode te ajudar.
existem as opções de se remover conjuntos de pacotes (meta), como por exemplo o plasma-meta, ou a opção ¨pacman -Rscn pacote" que também ira remover os pacotes que não são dependências de outros pacotes.
você ira perceber que mesmo após a remoção dos conjuntos e alguns pacotes avulsos, ainda assim ficarão vários pacotes meio órfãos, já que são dependências de outros, vou usar o qt5 com exemplo, é dependência básica do kde, mas também é dependência do vlc, então mesmo com a remoção do kde ele continuara em teu sistema se tiver o vlc e tiver instalado o mesmo de forma explicita.
se olhar nas configurações do pacote, pode ver as dependências dos mesmos, e assim saber se algo é essencial ou se é resto de coisas que já removeu.
como opinião pessoal, te sugiro remover tudo menos a base do sistema e recomeçar a instalação (incluindo grub e xorg), estará no "comando deleta tudo". se quiser se aventurar em resolver o problema como você se propos, remova apenas os meta pacotes em um primeiro momento, e conforme for usando o sistema acompanhar as atualizações, assim ira encontrando os "perdidos" com o tempo. além disso, usar o script2 que vou deixar abaixo para remover os desnecessários (leia a lista e veja se não existem falso positivo).
pacman -Rs $(comm -23 <(pacman -Qeq|sort) <((for i in $(pacman -Qqg base); do pactree -ul $i; done)|sort -u|cut -d ' ' -f 1))
script2
#!/bin/sh
# undeps - This script lists and removes UNneeded DEPendencieS on Arch Linux
# Options: -l <list> | -r <remove> | -ra <remove all - recursive>
# Estêvão Valadão - estevao@archlinux-br.org
LOOPFLAG=0
PACMAN=$(which pacman 2> /dev/null)
SUDO=$(which sudo 2> /dev/null)
case "$1" in
-l)
echo -e "
\r** UNNEEDED DEPENDENCIES **
\r-> checking dependencies...
"
$PACMAN -Qdtq
if [ "$?" = 1 ]; then
echo -e "-> Your system doesn't have unneeded dependencies. \n"
fi
;;
-r)
while [ "$LOOPFLAG" = 0 ]
do
echo -e "
\r** UNNEEDED DEPENDENCIES **
\r-> checking dependencies...
"
$PACMAN -Qdtq
if [ "$?" = 0 ]; then
echo ""
echo -n "Remove these packages with pacman? [Y/n] "
read OPTION
if [ "$OPTION" = "y" ] || [ "$OPTION" = "" ]; then
echo -n "-> "
if [ -f $SUDO ]; then
$SUDO $PACMAN -Rn $($PACMAN -Qdtq)
if [ "$?" != 0 ]; then
echo -e "-> Dependencies skipped... next dependencies... \n"
else
echo -e "-> Unneeded dependencie(s) sucessfully removed. \n"
fi
else
$PACMAN -Rn $($PACMAN -Qdtq)
echo -e "-> Unneeded dependencie(s) sucessfully removed. \n"
fi
elif [ "$OPTION" = "n" ]; then
exit 0
fi
else
LOOPFLAG=1
echo -e "-> Your system doesn't have unneeded dependencies. \n"
fi
done
;;
-ra)
$PACMAN -Qdtq > /dev/null
if [ "$?" = 1 ]; then
echo -e "
\r** UNNEEDED DEPENDENCIES **
\r-> checking dependencies...
"
echo -e "-> Your system doesn't have unneeded dependencies. \n"
else
echo -e "\n** UNNEEDED DEPENDENCIES - RECURSIVE **"
echo -n "-> "
if [ -f $SUDO ]; then
$SUDO $PACMAN -Rsn $($PACMAN -Qdtq)
else
$PACMAN -Rsn $($PACMAN -Qdtq)
fi
fi
;;
*)
echo "Usage: $0 {-l <list> | -r <remove> | -ra <remove all - recursive>}"
esac
exit 0