Arch Linux 中清理包缓存的推荐方法

本指南解释了什么是 帕卡奇 脚本以及怎样清理 Arch Linux 及其变体(如 EndeavourOS、Manjaro Linux)中的包缓存。

内容

  1. 什么是 Paccache?
  2. A. 在 Arch Linux 中使用 Paccache 清理包缓存
  3. B. Arch Linux 中自动清理包缓存
  4. 结论

什么是 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 清洁并为您节省大量磁盘空间。

相关阅读:

Posted in: Linux