1

Téma: Odstranění nepotřebných balíčků

Ciao...
Týmto by som sa chcel obrátiť na administratóra fóra, alebo na človeka, ktorý by mi pomohol...
Chcel by som sa opýtať akým spôsobom môžem bezpečne odstániť všetky nepotrebné balíčky, ktoré v systéme po odinštalovaní programu zostali a odstranenie kofigurákov. Niečo ako je v Debiane "apt-get autoremove --purge" Našiel som v equo --help možnosť orphans, ale bojím sa, že by mi tento príkaz odstránil aj multimediálne kódeky a nebodaj aj preklad systému do Slovenčiny...
Prosím o radu!
Prajem veľa úspechov! Pavol Olejarník

Thumbs up Thumbs down

2

Re: Odstranění nepotřebných balíčků

No je to trochu problém. Nedávno když jsem řešil to samé jsem našel jeden skript kterej jsem predelal k obrazu svemu.  Zkus to.  Píšu o tom zde na konci

http://forum.sabayon.org/viewtopic.php?f=86&t=21556&start=10#p128481

Edit: skript přiložen v dalším příspěvku.

Luděk

Thumbs up Thumbs down

3

Re: Odstranění nepotřebných balíčků

Ciao...
V poslednej dobe som narazil na ďalší problém v entropy. Zadal som príkaz "equo repo mirrorsort sabayon.org" na zoradenie repozitárov podľa rýchlosti a shell mi stále odpovedá hláškou "repozitár nedostupný". Pred tým som synchronizoval emerge príkazom emerge --sync kompilácia a inštalácia z portage ide bez problémov aj entropy funguje iba mi nechce zoradiť zrkadlá podľa rýchlosti...

sabayon-pavol pavol # equo repo mirrorsort sabayon.org
>> [sabayon.org] repozitár nie je dostupný
sabayon-pavol pavol #

Rozumiete niekto prečo mi toto robí?
Ďakujem za odpoveď!
Pavol

Thumbs up Thumbs down

4

Re: Odstranění nepotřebných balíčků

Odstránenie programu včetne závislostí už som prišiel na to ako vlastne: Príklad na odstárnenie mp3 prehárvača clementine...

sabayon-pavol pavol # equo remove --deep clementine --ask
>>  @@ These are the chosen packages:
>>    # (1/1) [sabayonlinux.org] media-sound/clementine-0.6-r2 [8.8MB]
>>  @@ Packages involved: 1
     Chcete vypočítať závislosti? [Ano/No] ano
>>  @@ These are the packages that would be removed:
>>  ## [sabayonlinux.org] media-libs/liblastfm-0.3.3 [1.6MB]
>>  ## [sabayonlinux.org] media-sound/clementine-0.6-r2 [8.8MB]
>>  ## [sabayonlinux.org] media-libs/libgpod-0.7.95 [5.9MB]
>>  @@ Balíčky, ktoré je treba odstrániť: 3
>>  @@ Veľkosť uvoľneného miesta na disku: 16.3MB
>>  @@ Total bandwidth wasted: 3.7MB
     Would you like to proceed ? [Ano/No]

Teraz stačí napísať ano, stlačiť enter a zo systému sa odstráni clementine včetne závislostí...

Thumbs up Thumbs down

5 Naposledy upravil: elpresidento (28.02.2011 10:33)

Re: Odstranění nepotřebných balíčků

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

Thumbs up Thumbs down

6

Re: Odstranění nepotřebných balíčků

Protože se změnil kód equo, skript přestal fungovat. Upravil jsem ho aby zase běžel, a přidělal jsem také nějaký progresátor, jelikož běží (podle výkonu PC) i docela dlouho, tak aby bylo vidět že něco dělá. Takhle nějak to vypadá a je teď vidět kolik balíků skenuje a podle toho se dá odhadnout čas běhu.

Packages that can be removed safely:
000/1313 ....................................................................................................
100/1313 ....................................................................................................
200/1313 ....................................................................................................
300/1313 ....................................................................................................
400/1313 ....................................................................................................

Po prvním spuštění po instalaci mi hlásil 3 balíky na odinstalaci, ale byly to jazykové balíky, které byly v průběhu instalace doinstalovány a tím pádem jsou ve vzduchu a nebyly nikde evidovány. Je to vlastně chyba instalátoru, že je nepřidal do instalovaných balíků. Po prvním spuštění po instalaci na konci dejte "Ne" a chtěné balíky podle seznamu ručně přeinstalujte. Při dalším spuštění už bude vše v pořádku.

#!/bin/bash
num=0
sto=0
echo "Packages that can be removed safely:"
npac=`equo q list installed -q | wc -l`
ATOM3=""
uninstal_str="equo rm -a --deep "
for ATOM in `equo q list installed -q`
        do
        DEPS_COUNT=`equo q revdeps $ATOM --quiet | wc -l`
        if [ "$DEPS_COUNT" -eq 0 ]
                then
                ATOM2=$ATOM
                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 ; echo $ATOM
            uninstal_str="$uninstal_str $ATOM3"
        fi
    fi
        if [ $num -eq 0 ]; then echo -n "000/$npac "; fi
        echo -n "."
        ((num++))
        ((sto++))
        if [ $sto -gt 99 ]; then
                sto=0
                echo ; echo -n "$num/$npac "
    fi
done
Luděk

Thumbs up Thumbs down