如何在Arch Linux上删除不需要的缓存包
在本教程中,如何在不需要使用Pacman上删除arch上的缓存包中的缓存包,将介绍删除孤立包通常在arch上缓存的孤立软件包的步骤。
Pacman Package Manager是Arch Linux的主要区别特征之一,它具有与Gentoo类似的简单二进制包和包构建系统组合的权力。
Pacman可以轻松管理官方拱形上游软件包和其他用户的构建软件包。
随着我们继续使用Pacman的拱门下载和安装软件包,通常会有左左转,因此随着数据的增长,往往会消耗更多的磁盘空间。
当我们拥有慢速带宽时,它是有益的,并且我们继续重新安装包。
但是如果我们有良好的带宽并且想做缓存包的清洁,可以使用本教程以供参考。
在Arch Linux上删除缓存包
Pacman下载的包的存储目录是/var/cache/pacman/pkg /。
旧的和卸载的软件包不会自动删除,我们需要故意手动进行清洁。
我们可以选择清洁所有缓存的软件包或者特定的。
删除当前未安装的所有缓存包
要删除当前未在系统上安装的缓存中的所有包,请使用命令:
$sudo pacman -Sc
使用的选项说明如下:
-c,--cascade:删除所有目标包,以及依赖于一个或者多个目标包的所有包。
此操作是递归的,必须小心使用,因为它可以删除许多可能需要的软件包。
-s,--sync:同步包
建议我们在某些时候不需要运行此命令,以便稍后下调以外的套餐版本。
当前安装在系统上的所有软件包的版本将保持不变。
通过清空缓存文件夹删除所有缓存的包
可以使用以下命令清除/var/cache/pacman/pkg /目录内的所有内容:
$sudo pacman -Scc Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove ALL files from cache? [y/N] y removing all files from cache... Database directory: /var/lib/pacman/ :: Do you want to remove unused repositories? [Y/n] y removing unused sync repositories...
这也可以防止在需要的情况下直接从缓存文件夹重新安装包,因此需要新的下载。
除非需要立即需要磁盘空间,否则应避免。
使用paccache删除每个包的所有缓存版本
除了最近的3,默认情况下,下一个命令将删除每个包的所有缓存版本的每个包的所有缓存版本
# sudo paccache -r ==> no candidate packages found for pruning
可用的操作命令是:
-d,--dryrun:执行干运行,只查找候选包。
-m, - 移动<dir>:将候选程序包移动到"dir"。
-r,--remove:删除候选包。
可以与上述操作命令一起使用的选项包括:
-f,--force:将力应用于MV(1)和RM(1)操作。
-i,--ignore <pkgs>:忽略"pkgs",逗号分开。
-k, - 保留<num>:保持缓存中每个包的"num"(默认值:3)。
-q,--quiet:最小化输出-u, - 单独安装:目标卸载软件包。
例如要保留10个最近的包,我们将使用:
# paccache -rvk 10
要删除所有缓存版本的卸载软件包,请重新运行PACCache:
# paccache -ruk0
由于使用0来代替要保留的包数,因此将删除所有卸载的软件包。
每个Pacman交易后自动清洁缓存
我们还可以创建Pacman挂钩,在每个Pacman交易到清除Pacman缓存后自动运行。
Pacman Preand后交易后钩子从/usr/share/libalpm/hooks /目录加载。
挂钩脚本的示例如下所示:
[Trigger] Operation = Upgrade Operation = Install Operation = Remove Type = Package Target = * [Action] Description = Cleaning pacman cache... When = PostTransaction Exec = /usr/bin/paccache -r
另一个
[Trigger] Operation = Remove Operation = Install Operation = Upgrade Type = Package Target = * [Action] Description = Keep the last cache and the currently installed. When = PostTransaction Exec = /usr/bin/paccache -rvk10
两者都被定义为后触发钩,这意味着在每个Pacman事务成功后运行。