# Kořenový oddíl je plný? Nepropadejte panice, nejprve vymažte Pacmanovu mezipaměť! 

> Datum: 2024-8-26

# Kořenový oddíl je plný? Nepropadejte panice, nejprve vymažte Pacmanovu mezipaměť! 

        
        
Po nějaké době Vás systém může upozornit, že Váš kořenový oddíl je téměř plný.

        
Můžete z toho panikařit a budete buď v pokušení provést přeinstalaci a zvětšit svůj kořenový oddíl, nebo
            ještě hůř, zkusit použít Gparted ke zmenšení oddílu, přesunutí a zvětšení kořenového oddílu.

        
**POZOR!!!** Nedělejte to, zejména druhou možnost, protože to může narušit Váš systém. Moje rada
            je, jen zůstat v klidu, existuje mnohem méně radikální řešení tohoto problému.

        `/var/cache/pacman/pkg/`

        
Když nainstalujete balíček pomocí Pacmana, uloží všechny stažené balíčky do
            **/var/cache/pacman/pkg/** složky. Správce balíčků ve výchozím nastavení automaticky
            neodstraňuje staré a odinstalované balíčky a po chvíli může velikost mezipaměti spotřebovat značné množství
            místa na vašem HDD nebo SDD.

        
Naštěstí má Pacman vestavěnou funkci pro vymazání mezipaměti, zadáním **sudo pacman -Sc** bude
            mezipaměť zcela vymazána. Problém vyřešen, ne?!?

        
No… ano i ne. Ano, vaše mezipaměť je vymazána a budete mít znovu volné místo na oddílu, yay…

        
Takže, v čem je problém, můžete se mě zeptat? Problém nyní je, že pomocí výše popsaného příkazu jste vymazali
            celou mezipaměť, včetně mezipaměti nainstalovaných balíčků. Tato mezipaměť je potřeba, když aktualizace
            balíčku nefunguje a musíte přejít na nižší verzi, dokud nebude problém vyřešen upstreamem. Nejedná se o
            žádnou velkou katastrofu, protože balíček můžete také downgradovat pomocí repozitáře Arch, ale vrátit se k
            místní mezipaměti je mnohem jednodušší.

        
## Řešení

        
Nebojte se, existuje řešení a jmenuje se **paccache**. Nyní, než otevřete svůj terminál a
            použijete yay k vyhledání tohoto šikovného balíčku, neobtěžujte se, protože to není balíček, je již přítomen
            ve vašem systému.

        
Skript **Paccache** poskytuje samotný balíček Pacman. Nemusíte se tedy obtěžovat instalačními
            kroky. Paccache ve výchozím nastavení zachová tři nejnovější verze balíčků. Kromě tří nejnovějších verzí
            balíčků odstraní všechny verze každého balíčku uložené v mezipaměti bez ohledu na to, zda jsou nainstalovány
            nebo ne.

        
## Jak to používat

        
Chcete-li zkontrolovat, kolik balíčků je v paccache, zadejte:

        

          

              $ sudo ls /var/cache/pacman/pkg/ | wc -l
          
        

        Tím získáte počet balíčků, které jsou ve vaší mezipaměti, pokud chcete vědět, kolik místa mezipaměť zabírá,
            zadejte: 

        

          

              $ du -sh /var/cache/pacman/pkg/
          
        

        Nyní vám systém říká, jak velká je velikost vaší mezipaměti.

        
Nyní můžete vymazat mezipaměť, kromě posledních tří verzí každého balíčku zadáním:

        

          

              $ sudo paccache -r
          
        

        V závislosti na Vaší historii mezipaměti může poskytnout spoustu místa v kořenovém oddílu, ale teď jste u
            toho, proč nevymazat mezipaměť z vašich odinstalovaných balíčků?

        
Chcete-li to provést, zadejte následující:

        

          

            $ sudo paccache -ruk0         
          
        

        **U** v tomto příkazu znamená všechny odinstalované balíčky a v závislosti na Vaší historii
            odinstalovaných balíčků to také může Vašemu systému vrátit spoustu místa. Další metodou, jak vymazat
            odinstalované balíčky, je použití:

        

          

            $ sudo pacman -Sc
          
        

        Nebo pro úplné odstranění použijte:

        

          

            $ sudo pacman -Scc
          
        

        Jen buďte opatrní s čištěním mezipaměti a balíčků pomocí tohoto příkazu, zdá se lákavé jej použít,
            ale jakmile je smazán, není cesty zpět.

        
## Automatické odstranění mezipaměti

        
Tento úkol můžete automatizovat pomocí pacman hooks. Pacman hook automaticky vyčistí mezipaměť balíčku po
            každé transakci pacmana.
        
        Chcete-li tak učinit, vytvořte soubor **/etc/pacman.d/hooks/clean_package_cache.hook** takto:
        

        

          

              $ sudo mkdir -p /etc/pacman.d/hooks
          
        

        

        

          

                $ sudo nano /etc/pacman.d/hooks/clean_package_cache.hook    
          
        

        Poté přidejte následující řádky:

        

          

                    [Trigger]
                    Operation = Upgrade
                    Operation = Install
                    Operation = Remove
                    Type = Package
                    Target = *
                    [Action]
                    Description = Cleaning pacman cache...
                    When = PostTransaction
                    Exec = /usr/bin/paccache -r
          
        

        Zavřete a uložte stisknutím CTRL + x a od této chvíle Váš systém automaticky vymaže mezipaměť po každé
            aktualizaci, odstranění nebo aktualizaci pacmana.

        
EDIT: Od roku 2020 EndeavourOS se dodává s automatickým skriptem, který je součástí aplikace Welcome, která
            tyto operace provádí několika kliknutími myši.

        
Návod je převzat z
            Discovery
            na EndeavourOS vydán 30. března 2020.
        

        
            
[Kankys](https://lukaskanka.cz/)
                26.8.2024