eclean - Утилита для очистки локального репозитария дистрибутивов и бинарных пакетов.
Использование
eclean [глобальные параметры] ... <действия> [параметры для текущего режима]
eclean-dist [глобальные параметры, параметры для режима удаления 'distfiles']
eclean-pkg [глобальные параметры, параметры для режима удаления 'packages'] ...
eclean(-dist,-pkg) [--help, --version]
Описание
eclean это небольшая утилита для удаления устаревших исходников и бинарных файлов пакетов. Используя стандартные операции
она очищает каталоги, описываемые переменными DISTDIR и PKGDIR, пока там не останутся только пакеты, которые действительно
актуальны на момент очистки.
По умолчанию eclean не трогает все пакеты, прописаные в дереве портежей. Это наиболее безопасный режим, позволяющий сохранить
старые пакеты на случай отката на старые или стабильные версии, а также для переустановки пакетов. Учтите, что этот режим
сохраняет размер ваших DISTDIR и PKGDIR довольно большими. Для дистрибутивных файлов этот режим довольно медленный,
поскольку требует проверки всего дерева портежей.
Если же вы используете опцию --destructive, eclean защищает только некоторые файлы, отвечающие за установленные в
системе пакеты(буквально учитывая версию пакета). Этот режим освободит гораздо больше места, всё ещё "беспокоясь" о
сохранности большинства пакетов, основываясь на младшей части версии каждого пакета, а также позволяя восстановить
повреждённые пакеты. Но в этом случае утилита не будет заботиться о менее важных пакетах, необходимых например для отката
или установки нового пакета. Это тоже быстрый режим работы, используемый в большинством подобных скриптов вроде yacleaner(это
верно по меньшей мере относитеьно версии 0.3).
Где-то посередине между этими режимами находится режим, определяемый опцией --package-names (при использовании
опции --destructive), в котором eclean оставит только те дистрибутивы, которые необходимы для установленных пакетов.
Он позволит легко откатиться на старую версию пакета без пересборки или закачки пакета заново, но не защитит вас в случае
удаления пакета.
В дополнение к этим основным режимам некторые опции позволяют описать некоторые специфические условия работы утилиты:
--time-limit
окажется полезной в том случае, если необходимо сохранить файлы, созданные позже указанного времени
--size-limit
может применяться только к дистрибутивам и позволяет оставить в системе файлы большего размера, нежели указано в данной
опции
--fetch-restricted
применима к файлам вручную скачанных дистрибутивов, не подвергая их уничтожению. Параметр сильно замедляет работу утилиты,
поскольку обработке подвергается всё дерево portage
Ну и наконец вы можете указать список категорий, исключаемых из обработки (см. ниже параметр EXCLUSION FILES).
Параметры
Глобальные параметры
-C, --nocolor
не использовать цвета в выводе на консоль
-d, --destructive
оставить только самый необходимый для переустановки минимум файлов
-e, --exclude-file=<путь>
путь к файлу, содержащему список категорий, исключаемых из обработки. Здесь <путь> - это абсолютный путь к файлу исключений.
Если путь не указан, используется значение по умолчанию /etc/eclean/{packages,distfiles}.exclude (если он, конечно,
существует). Используйте, пожалуйста, путь /dev/null в том случае, если файл у вас имеется, но временно вы не хотите к нему
обращаться. .TP
-i, --interactive запросить подтверждение перед удалением файлов
-n, --package-names
защитить все версии (только при использовании опции --destructive )
-p, --pretend
вывести список того, что подлежит уничтожению, но не удалять немедленно
-q, --quiet
подавлять любые сообщения на выводе, оставлять только ошибки
-t, --time-limit=<время>
не удалять файлы, созданные позже указанного параметра <время>
<время> здесь указывается как период времени: "1y" означает один год, "2w" это две недели, и т.д. .br
Принятые единицы времени: y (годы), m (месяцы), w (недели), d (дни) и h (часы).
-h, --help
показать страницу помощи
-V, --version
отобразить версию утилиты
Действия (actions)
distfiles
Очищать каталог /usr/portage/distfiles (или тот каталог, на который ссылается переменная DISTDIR в файле /etc/make.conf).
Это действие будет полезно для практически каждого пользователя Gentoo, размер каталога с дистрибутивами которого вырос
до значительных величин. .TP
eclean-dist Превдоним для утилиты eclean, предписывающий обработку дистрибутивных файлов, создан для удобства, не более того. .TP
packages Производить очистку каталога /usr/portage/packages (или, соответственно, содержимого каталога, указанного
переменной PKGDIR в файле /etc/make.conf. Это действие полезно в частности применительно к тем, кто использует
"buildpkg" или "buildsyspkg" флаги переменной FEATURES. .TP
eclean-pkg это также синоним команды eclean в режиме очистки каталога с packages.
Параметры, применяемые в случае указания обработки 'distfiles'
-f, --fetch-restricted
оставить файлы, помеченные в дереве как 'fetch-restricted' (--destructive only)
-s, --size-limit=<размер>
не удалять файлы, размер которых больше чем <размер>
<размер> указывается следующим образом: "10M" это "десять мегабайт", "200K" это "двести килобайт", и т.д. .br
Единицы измерения: G, M, K и B.
Параметры для действия 'packages'
Нет специальных параметров.
Файлы исключений
Файлы исключений это файлы, содержащие списки названий пакетов или целых категорий, не подлежащих обработке утилитой
eclean. Такие списки могут пригодиться в том случае, ели необходимо защитить от удаления определённые пакеты, например,
пакеты, содержащиеся в каталоге, указываемом в файле /etc/make.conf в переменной PKGDIR. Применяется следующий
синтаксис описания списка:
*пустые строки, а также строки, начинающиеся с символа "#" (обычно обозначает комментарии) игнорируются
*только одно опредение в одной строке позволяется
*если строка содержит название категории, например "sys-apps", то все пакеты из этой категории исключаются из обработки.
Как вариант, можно написать так: "sys-apps/*", что предусмотрено исключительно в эстетических целях, но никак не означает,
что шаблоны могут использоваться во всех иных случаях.
*если строка содержит имя пакета("app-shells/bash"), то именно этот пакет и будет под защитой. Атомы, подобные ">=app-shells/bash-3"
с указанием версий не поддерживаются. Кроме того, обязательно указание полного имени пакета (вместе с категорией).
*если в строке указан пакет с предшествующим его имени восклицательным знаком("!sys-apps/portage"),то этот пакет
исключается из области защиты. Это полезно только в случае защиты всей категории, к которой относится данный пакет.
*для защиты дистрибутивов можно указать конкретное имя файла. Такие записи могут пригодиться, если в базе данных portage
не содержатся такие дистрибутивы, например файлы локализации (i18n) OpenOffice.org ("helpcontent_33_unix.tgz" в
частности). .RE
Примеры использования
Удалить только дистрибутивы, спрашивать подтверждение на удаление:
# eclean -i distfiles
Проверить, что нужно удалить, не использовать цвета при выводе:
# eclean -Cp packages
Очистить бинарные пакеты, которые уже были удалены из системы, но оставить все версии установленных в системе пакетов:
# eclean-pkg -d -n
Удалить все дистрибутивные файлы за исключением относящихся к уже установленным пакетам (текущая версия), не старше
одного месяца, размером большие, чем 50 Мб, а также помеченные как fetch-restricted:
# eclean-dist -d -t1m -s50M -f
Из файла crontab, в "тихом" режиме удалить пакеты в наиболее безопасном режиме, а также применив режим --destructive,
но сохранив в этом режиме файлы не старше недели, задачу выполнять каждое воскресенье в час ночи: