eclean

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Eclean and the translation is 77% complete.
Outdated translations are marked like this.


eclean — утилита для очистки репозитория от неиспользуемых архивов исходного кода и бинарных пакетов. Она является частью набора программ gentoolkit.

Also available on Gentoo is the eclean-kernel tool, available separately from the eclean tools installed with gentoolkit​, in the app-admin/eclean-kernel package. eclean-kernel is used to automate the clean up of old Linux kernels.

Установка

Emerge

Установите app-portage/gentoolkit:

root #emerge --ask app-portage/gentoolkit
Заметка
Смотрите Gentoolkit для получения информации о других утилитах включённых в пакет app-portage/gentoolkit

Использование

Обычно, архивы исходников располагаются в директории /usr/portage/distfiles, в то время как бинарные пакеты расположены в /usr/portage/packages. Расположение каждого из них может быть изменено введением иных переменных DISTDIR и PKGDIR соответственно в /etc/portage/make.conf. Обе директории могут сильно разрастаться, если периодически их не чистить. По этой причине была создана утилита eclean.

Введение

Используйте eclean --help для обзора всех возможных действий, списка опций и их описание:

user $eclean --help

Очистка директории архивов исходных файлов

Очистим директорию архивов исходных файлов введением аргумента 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 запустим eclean distfiles: архивы обоих версий остались нетронутыми. Поэтому, если произошли неполадки в foo-1.1, то пользователь может просто переустановить foo-1.0 без повторной загрузки.

Другая возможная ситуация - установка ранее удалённого пакета. Предположим, что пакет foo (любой версии) установлен в системе. После (непреднамеренного) удаления этого пакета и запуска eclean distfiles, архивы исходных кодов для foo будут сохранены. Поэтому можно будет переустановить пакет без повторного скачивания.

Такие же примеры и для бинарных пакетов.

Для сохранения большего места на диске добавьте опцию --deep: каждый архив исходных файлов или же бинарный пакет, который не соответствует какому-либо "установленному в данный момент" пакету (версия не имеет значения), будет удалён. Пожалуйста, заметьте, что пользователи уже не защищены от необходимости повторного скачивания, в случае, если они должны понизить версию пакета или переустановить удаленный ранее пакет.

В качестве альтернативы можно использовать сразу две опции: --deep и --package-names. Каждый архив исходных кодов или бинарный пакет, не связанный с сейчас установленным пакетом (версия не имеет значение) будет удалён. С такими опциями также потребуется снова скачать исходные файлы, когда необходимо снова установить ранее удаленный пакет, но, в этом случае, останутся исходные файлы для возможности понижения версии пакета.

Для более детальной информации прочтите eclean(1) man page:

user $man 1 eclean

Устранение проблем

Cleaning leaves some distfiles

Problem: when trying to clean distfiles, some distfiles are not removed and the message "The following unavailable installed packages were found" is displayed. For example:

root #eclean --deep distfiles
 * Building file list for distfiles cleaning...
 * Your distfiles directory was already clean.
 
   The following unavailable installed packages were found
             sys-kernel/gentoo-sources-4.19.44
             sys-kernel/gentoo-sources-4.19.45
             sys-kernel/gentoo-sources-4.19.46

This situation occurs when a package's ebuild has been removed from the Gentoo ebuild repository and the package is currently installed on the system. Generally if the listed packages/distfiles are no longer needed; the reason they are not being removed is because they are listed in Portage's world file.

The solution is to to remove the packages from the world file, or remove the specific package atom(s) via:

root #emerge --ask --depclean =sys-kernel/gentoo-sources-4.19.44

Then re-run eclean again in order to remove the distfiles.

Смотрите также