本指南解释了什么是 帕卡奇 脚本以及如何清理 Arch Linux 及其变体(如 EndeavourOS、Manjaro Linux)中的包缓存。
内容
什么是 Paccache?
我们都知道 吃豆人,Arch Linux 及其衍生产品的默认包管理器,会将所有下载的包存储在 /var/cache/pacman/pkg/
文件夹。
我们也知道 Pacman 不会自动从缓存中删除旧的或卸载的包。 经过一段时间后,缓存文件夹的大小会变大。
因此,建议定期清理 Arch Linux 中的软件包缓存以释放硬盘空间。
Pacman 有一个内置选项可以删除所有缓存的包。 您可以通过运行清理缓存的包 sudo pacman -Sc
命令。
但是,此命令将删除所有旧版本并仅保留当前安装的软件包版本。 这不是推荐的方式。
因为,有时你可能想要 将特定软件包降级到其旧版本. 因此,如果您清理了所有旧软件包,则无法从 Cache 文件夹中安装它们。 您只能从 Arch Linux 官方存储库安装它们。
这就是 Paccache
脚本派上用场了。 Paccache 脚本由 Pacman 包本身提供。 因此,您不必费心安装步骤。
Paccache 将保留 3 个最新的软件包版本 默认情况下。 除了 3 个最新的软件包版本,它会删除每个软件包的所有缓存版本,无论它们是否已安装。
这个简短的教程教你如何正确清理 Arch Linux 及其衍生产品中的包缓存,使用 包缓存 脚本。
A. 在 Arch Linux 中使用 Paccache 清理包缓存
1. 首先,首先检查我的缓存文件夹中有多少缓存包可用。
$ sudo ls /var/cache/pacman/pkg/ | wc -l 3185
2. 正如你在上面的输出中看到的,我完全有 3185 缓存的包。 让我检查一下缓存文件夹使用的总磁盘空间。
$ du -sh /var/cache/pacman/pkg/ 9.7G /var/cache/pacman/pkg/
目前,我已经缓存了 9.7 GB 在尺寸方面。 这太多了。 我不想保留所有这些。
3. 要清理除 3 个最新版本之外的所有软件包,请运行以下命令:
$ sudo paccache -r [sudo] password for sk: ==> finished: 854 packages removed (disk space saved: 4.37 GiB)
看? Paccache 从缓存中删除了 854 个旧的和/或卸载的包并保存 4.37 GB 磁盘空间。
4. 让我再检查一下缓存文件夹中还剩下多少包。
$ sudo ls /var/cache/pacman/pkg/ | wc -l 2331
伟大的! 现在,Cache 文件夹中有 2331 个可用的缓存包。 这些是每个缓存包的 3 个最新版本。
5. 现在,检查缓存文件夹使用的总磁盘空间。
$ du -sh /var/cache/pacman/pkg/ 5.4G /var/cache/pacman/pkg/
伟大的! 我节省了多达 4GB 的磁盘空间。
6. 还想删除更多包吗? 当然可以! Paccache 允许您决定要保留多少最新版本。
例如,如果您只想保留一个最新版本,请运行以下命令:
$ sudo paccache -rk 1
在哪里, ķ 表示保留 num
缓存中的每个包。
7. 要删除已卸载软件包的所有缓存版本,请使用以下命令重新运行 paccache u
旗帜:
$ sudo paccache -ruk0
在哪里, u
flag 表示已卸载的包。
8. 您还可以使用以下 pacman 命令删除所有已卸载的软件包:
$ sudo pacman -Sc
9. 要从缓存中完全删除所有包(无论是安装还是卸载),请运行以下命令:
$ sudo pacman -Scc
使用此命令时请小心。 一旦缓存的包被删除,就无法检索它们。
推荐下载 – 免费电子书:“5 天学习 Linux”
B. Arch Linux 中自动清理包缓存
1. 如果您懒得手动清理包缓存,您可以使用自动执行此任务 pacman
钩子。 pacman 钩子会自动清理包缓存 pacman
交易。
为此,请创建一个文件 /etc/pacman.d/hooks/clean_package_cache.hook:
$ sudo mkdir /etc/pacman.d/hooks
$ sudo nano /etc/pacman.d/hooks/clean_package_cache.hook
添加以下行:
[Trigger] Operation = Upgrade Operation = Install Operation = Remove Type = Package Target = * [Action] Description = Cleaning pacman cache... When = PostTransaction Exec = /usr/bin/paccache -r
2. Save 和 close 文件。 从现在开始,包缓存将在每 pacman
事务(如升级、安装、删除)。 你不必跑 paccache
每次手动命令。
有关详细信息,请参阅 Paccache
通过运行以下命令帮助部分:
$ paccache -h
相关阅读:
- 在 Arch Linux 中的 Pacman 中启用并行下载
- 如何在 Arch Linux 中安装 Paru AUR 助手
- 在 Arch Linux 中使用 Reflector 检索最新的镜像列表
结论
在本指南中,我们学习了如何使用 Paccache 脚本清理包缓存,以及如何在 Arch Linux 中使用 pacman 挂钩自动清理包缓存。 这两个工具都将帮助您保持 Arch Linux 清洁并为您节省大量磁盘空间。
Arch LinuxClean The Package CacheEndeavourOSLinuxLinux commandsLinux howtoManjaro LinuxPaccache包管理包管理器Pacman