如果你有一个小硬盘驱动器并使用 Arch Linux,清除系统 pkg 缓存可能是个好主意

清除 Pacman 包缓存

一年半前 我写 一篇关于我喜欢 Manjaro 的文章,通过扩展也可以在其他基于 Arch Linux 的系统上找到。 我正在谈论将包降级到以前版本的可能性。 在某种程度上这是可能的,因为 数据包缓存 Arch,默认保存每个包的最后三个版本。 当然,这听起来不错,但如果您的硬盘驱动器没有大量存储空间,那就不是很好了。

在 SSD 像以往一样便宜之前,如果那个时候到来,硬盘驱动器可以是以下三种选择之一:又大又贵; 小而便宜; 或混合,其中有部分 SSD 和部分 HDD。 在第二个和第三个选项中,我们可能会遇到同样的问题,因为 HDD 提供更多存储空间,我们通常将其留作数据和 我们将 SSD 用于操作系统. 正是在这些情况下,我们需要密切关注 Arch Linux 包缓存。 并且,如有必要,请清洁它。

清除 Arch 包缓存,删除它或保持原样

这个快取 将保存每个包的最后三个版本 在 /var/cache/pacman/pkg 中。 您必须注意它,因为即使限制为三个,文件夹也可能会不断增长,直到达到或超过 10GB 的存储空间,具体取决于我们安装的软件数量。 而且,请记住,我们正在谈论缓存,即存在以防万一的东西,但可能不是必需的。

Pacman 可以选择从缓存中删除旧版本。 sudo pacman -Sc 将仅删除旧版本 它会留下我们安装的最后一个,也就是我们安装的那个的pkg。 虽然它是 Pacman 的一个选项,但据说它不是推荐的东西,但争论是我们不能按预期进行降级。 在这种情况下,我们将不得不去官方存储库并选择以前的版本。

从最后三个版本管理这个的一个是 缓存,我们可以使用以下命令回收空间:

首先是看看我们安装了多少包,看看它们占用了什么,在我的例子中,总共有 1981 个包,总重量为 13GB:

sudo ls /var/cache/pacman/pkg/ | wc -l
du -sh /var/cache/pacman/pkg/

查看包裹数量及其重量

如果我们想删除除了最后三个包之外的所有包,这通常是自动的但可能不起作用,我们将编写:

sudo paccache -r

如果您意识到,它对我来说恢复得很少(1.52GB),而且我不担心无法返回到以前的版本,所以我使用了 sudo pacman -Sc:

sudo pacman -Sc

使用后者,在我在 Arch 包缓存中的 13GB 中,在我的例子中是 Manjaro,我只剩下 4GB。 它会问我们两个问题:在第一个中,它问我们是否要消除包,我们必须说是; 在第二个中,它告诉我们删除存储库,最好说不。

重要提示:此处解释的所有内容都按原样运行,但不要删除 /pkg 文件夹,否则系统将无处放置新安装。 多年前的“朋友告诉我”。

还想删除更多?

硬盘驱动器必须非常糟糕,或者您必须有很多爱好才能进行更深入的清洁,但这是可以做到的。 该命令将是 须藤 paccache -rk 1在哪里 k 表示要保留的数据包数. 如果要删除所有已卸载的软件包,可以使用命令 须藤 paccache -ruk0. 综上所述, u 表示已卸载的包。

如果要删除所有缓存并将其保留为 0GB,则命令为 须藤pacman -Scc,但我会推荐这个 仅在极端情况下 我们不再有硬盘驱动器上的空间。 使用此处暴露的命令删除的所有内容都无法恢复.

自动化流程

所有这些 Arch Linux 软件包缓存清除都可以自动完成,但需要创建一个文件并添加几行代码。 自动执行此清洁任务的步骤如下:

  1. 我们打开一个终端并输入:
sudo mkdir /etc/pacman.d/hooks
  1. 现在我们编写另一个命令:
sudo nano /etc/pacman.d/hooks/clean_package_cache.hook
  1. 在编辑器中,我们添加以下行:
[触发器] 操作 = 升级操作 = 安装操作 = 删除类型 = 包目标 = * [操作] 描述 = 清理 pacman 缓存... 时间 = PostTransaction 执行 = /usr/bin/paccache -r
  1. 我们保存并保存。 从现在开始,每次 Pacman 更新、安装或删除软件包时,都会自动清理软件包缓存。

所以 你能得到一些额外的空间吗. 很明显,如果硬盘驱动器足够大,最好保留它们的设计,但是这些选项存在并且可以让我们摆脱麻烦。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。