From Gentoo Wiki
Jump to: navigation, search
This page contains changes which are not marked for translation.

Other languages:
English • ‎español • ‎中文(中国大陆)‎
External resources

eclean is a tool for cleaning Portage source files and binary packages. It is part of the app-portage/gentoolkit package and managed by the Portage-Tools project.


Install eclean:

root #emerge --ask app-portage/gentoolkit
See the Gentoolkit article for information on other utilities included in the app-portage/gentoolkit package.


By default, source files are in /usr/portage/distfiles, while binary packages are in /usr/portage/packages; this can be changed by altering the DISTDIR and the PKGDIR variables respectively in /etc/portage/make.conf. Both locations can grow quite big if not periodically cleaned.

Clean the source files directory with the following command:

root #eclean distfiles

For the directory with the binary packages use the following command instead:

root #eclean packages

By default, source files and binary packages corresponding to any ebuild in the current Portage tree will not be deleted. This way, the user can easily downgrade a package or install a previously removed package, provided that it is still in the current Portage tree.

As an example, suppose packages foo-1.0 and foo-1.1 are both in the Portage tree. After updating from foo-1.0 to foo-1.1, run eclean distfiles: source files for both versions will be kept, so if a problem occurs with foo-1.1 then the user can easily re-install foo-1.0 without re-downloading anything.

The other possible case is installing a previously removed package. Suppose that a package foo (any version) is installed on the system. After (inadvertently) removing it and running eclean distfiles, the source files for foo will be kept, so it can be re-installed without re-downloading anything.

The same examples also apply for binary packages.

To save more disk space, add the --destructive option: every source file or binary package that does not correspond to some currently installed package with version will be deleted. Please notice that this way users will not be protected in case they need to downgrade a package or re-install a previously removed package.

As an alternative, use both the --destructive and the --package-names options: every source file or binary package that does not correspond to some currently installed package (version does not matter) will be deleted. This still will not protect in case a re-install of a previously removed package is needed, but it will protect the sources if the package needs to be downgraded later.

For more details read the eclean(1) man page:

user $man 1 eclean

See also