Gentoo Linux系统清理
一、 清除源码包文件
清除已经下载的软件包,步骤如下 :
在这一步中,所使用的工具是
rm
命令,将会强制删除。使用前,请仔细检查所要删除的目录是否正确,
防止意外删除系统文件,可能导致系统无法使用。
- 如果仅删除过期的源码包,可使用以下命令:
root # rm -rf /usr/portage/distfiles/*
- 如果要清除
emerge
过程中产生的临时文件,可以使用以下命令:
root # rm -rf /var/tmp/portage/*
二、 清理仓库源文件和二进制包
在这一步中,所使用的工具为eclean
。
eclean
是一个清理仓库源文件和二进制包的工具。
是 app-portage/gentoolkit
包的一部分,并由 Portage-Tools
项目维护。
附注:
关于
app-portage/gentoolkit
包中其他工具的信息请参看Gentoolkit article
。
默认情况下,源文件存储在 /usr/portage/distfiles
目录下, 二进制包存储在 /usr/portage/packages
目录下;
可以通过修改 /etc/portage/make.conf
中的 DISTDIR
和 PKGDIR
变量更改对应的存储位置。
如果不定期清理,这两个目录可能会悄然无声地变得非常巨大;
这就是创建eclean
的原因。
使用 eclean --help
来查看全部的命令简介、参数列表和使用介绍:
user $ eclean --help Usage: eclean [global-option] ... <action> [action-option] ... eclean-dist [global-option, distfiles-option] ... eclean-pkg [global-option, packages-option] ... eclean(-dist,-pkg) [--help, --version] Available global options: -C, --nocolor - turn off colors on output -d, --deep - only keep the minimum for a reinstallation -e, --exclude-file=<path> - path to the exclusion file -i, --interactive - ask confirmation before deletions -n, --package-names - protect all versions (when --deep -p, --pretend - only display what would be cleaned -q, --quiet - be as quiet as possible -t, --time-limit=<time> - don't delete files modified since <time> <time> is a duration: "1y" is "one year", "2w" is "two weeks", etc. Units are: y (years), m (months), w (weeks), d (days) and h (hours). -h, --help - display the help screen -V, --version - display version info Available actions: packages - clean outdated binary packages from PKGDIR distfiles - clean outdated packages sources files from DISTDIR Available options for the packages action: NONE :) Available options for the distfiles action: -f, --fetch-restricted - protect fetch-restricted files (when --deep) -s, --size-limit=<size> - don't delete distfiles bigger than <size> <size> is a size specification: "10M" is "ten megabytes", "200K" is "two hundreds kilobytes", etc. Units are: G, M, K and B. More detailed instruction can be found in `man eclean`
清理 源文件
通过 distfiles
参数清理源文件存放目录:
root # eclean distfiles
或者使用更简短的命令:
root # eclean-dist
清理二进制文件
使用下面的命令清理二进制包:
root # eclean packages
或者使用更简短的命令:
root # eclean-pkg
默认情况下,当前存储库中的任何ebuild
相对应的源文件和二进制包都不会被删除。
这样,只要程序包仍在当前存储库树中,系统管理员就可以轻松地降级程序包或安装以前删除的程序包。
举个例子,比如包
foo-1.0
和foo-1.1
都在存储库中。在从
foo-1.0
升级到foo-1.1
之后,运行elcean distfiles
,两个版本的源文件依然被保留,因此如果foo-1.1
出现问题,用户可以很方便的重新安装foo-1.0
,而不必重新下载。另一个可能的情况是安装之前删除的包。
假设系统安装了
foo
包(任一版本)。在(不经意地)删除了这个包并运行了
eclean disfiles
之后,foo
的源文件依然被保留,可以重新安装而无需再次下载。对二进制包同样的例子也一样适用。
- 为节省更多磁盘空间,请添加
--deep
选项:
- 这将删除与某些当前安装的软件包(版本无关紧要)不对应的每个源文件或二进制软件包。
注意:
这种方式当用户需要降级安装某个包或者重新安装之前删除的包的时候都必须重新下载。
- 一个替代方案是,同时使用
--deep
和--package-names
选项:
- 对于某些非当前安装的包(不管版本号是什么)的每个源文件或者二进制包都会被删除。
注意:
这种方式当用户需重新安装之前删除的包的时候都必须重新下载,
但是要降级安装某个包则不需要。
参考文献:
- Eclean - Gentoo Wiki
- Gentoolkit — 一套简化Gentoo系统管理的工具
- 知识库:删除过时的 distfile
- Gentoo系统清理
- DISTDIR — 定义了 Portage 将会把下载的源码存放到哪个路径