Jasně přepínač deep použiješ pokud víš co odstraňuješ a odstraníš to včetně závislostí. Můj návod se týká balíků které nemají závislosti, a vlastně je ani neznáš, tedy pokud si odinstalovával bez přepínače deep a v systému je nepotřebný balast. Pokud budeš poctivě používat deep bude to v pohodě.
Skript pro zájemce přikládám. Napoprvé je potřeba skript pustit bez kontroly závislostí, taže na otázku "Would you like to calculate dependencies ? [Yes/No]" poprvé odpovězte ne. Při příštím spuštění již odpovídejte ano. Je to proto, že po instalaci se v systému vyskytují podivné nelogické závislosti.
Ale bacha, poslední dobou zjištuji že se mi z world ztrácejí programy, které tam jistě byly. Jak jistě víte, ve world se drží seznam nainstalovaných programů, podle čehož Gentoo Emerge provádí upgrady. Mám podezření, že je vyhodí upgrady systému dělané přes Equo - ale zatím nemám ověřeno. Pak se samozřejmě před spuštěním skriptu musí do worldu doplnit ručně. Pokud to ověřím, nahlásím to jako bug.
Edit: Ověřeno, nahlášeno 25.2. jako bug 2204.
Edit: Bug 2204 byl opraven 27.2. (This fixes it for new installs (DAILY, 5.6))
#!/bin/bash
echo "Packages that can be removed safely:"
ATOM3=""
uninstal_str="equo remove --ask --deep "
for ATOM in `equo query installed --quiet`
do
DEPS_COUNT=`equo query revdeps $ATOM --quiet | wc -l`
if [ "$DEPS_COUNT" -eq 0 ]
then
ATOM1=${ATOM%-r[0-9]*}
ATOM2=${ATOM1%-*}
IN_PKG_LIST=0
IN_PKG2_LIST=0
for WRLD in `cat /var/lib/portage/world`
do
WRLD1=${WRLD%:*}
if [ "$ATOM2" = "$WRLD1" ]
then
IN_PKG_LIST=1
IN_PKG2_LIST=1
fi
done
if [ "$IN_PKG2_LIST" -eq 0 ]
then
for PKG in `cat /etc/sabayon-pkglist`
do
PKG1=${PKG%-r[0-9]*}
PKG2=${PKG1%-*}
if [ "$ATOM2" = "$PKG2" ]
then
IN_PKG_LIST=1
fi
done
fi
if [ "$IN_PKG_LIST" -eq 0 ]
then
ATOM3=${ATOM%#*}
echo $ATOM
uninstal_str="$uninstal_str $ATOM3"
fi
fi
done
if [ $ATOM3 ]
then
echo
echo Removing packages:
$uninstal_str
else
echo No packages to remove.
fi
Luděk