# Чистка distfiles

## edge

Здравствуйте!

Подскажите плиз, а появилась ли в Gentoo какая-то стандартная фича по очистке distfiles от хлама, которого уже и в ebuild'ах нет?

Если нет, то кто чем чистит?

----------

## viy

rm -f ${DISTDIR}/*

В случае необходимости выкачиваю исходники еще раз, что бывает оч. редко.

----------

## Azik

eclean из пакета app-portage/gentoolkit

----------

## edge

 *viy wrote:*   

> rm -f ${DISTDIR}/*
> 
> В случае необходимости выкачиваю исходники еще раз, что бывает оч. редко.

 

Очень полезный совет.. А я вот с другими делюсь, у кого денег нет выкачивать такие объемы и лишнего паковать им совсем не хочется.

----------

## edge

 *Azik wrote:*   

> eclean из пакета app-portage/gentoolkit

 

Спасибо! То что надо.

----------

## cz0

А у меня вот схожая проблема. Суть такова. Приволок около 10Г исходников, но в них понамешано всего-всего. Задача: выбрать из этой кучи все, что только может понадобиться. Т.е. вообще все. Как бы пройтись по портам и заставить emerge попытаться вытянуть все пакеты, которые оно знает. Таким образом, в локальной папке мы получим все, что нужно. Как я уже пытался объянсить народу: скажем, у меня сейчас не стоит mc. Соотв. по команде emerge world -ef он его качать не будет. Но завтра мне может прийти в голову его поставить. В этой самой жуткой папке (читать: на локальном ftp сервере, который правльно подписан в make.conf и зеракала) имеется 3 версии mc: 4.6.0, 4.6.1 и 4.6.2 (пример абстрактен). Так вот, суть в том, что нужно заставить emerge дернуть нужные ей пакеты. Тогда у меня окажется 4.6.1 в локальных дистфайлах, а все остальное можно будет удалить (с ftp что бы освободить место, а потом перезалить актуальные дистфайлы из локальной папки туда).

----------

## ArtSh

Поищите по слову cleandistfiels это должны быть два скрипта на перле, один генерирует список файлов (ищет ебилды в /usr/portage и /usr/local/portage, поэтому если у Вас есть другой оверлей, придётся править скрипт вручную) а другой удаляет те которых нет в этом списке.

----------

## cz0

У меня появилась идея. Командой emerge --metadata >> porttree генерируем список всех пакетом (в процессе emerge обходит все дерево, выводя полные названия покетов), удаляем из каждой строки слово "processing" и скармливаем этот файл emerge -f. Думаю, должно сработать. Но в любом случае спасибо за подсказку.

----------

## Dymok

man portage 

ищите описание /etc/portage/mirrors

Можно создать файл

/etc/portage/mirrors

и указать путь к файлопомойке как локальное зеркало.

Завершить emerge -ef или emerge -eF

----------

## Laitr Keiows

Зачем изобретать велосипед, чем плох eclean?...

----------

## cz0

Оно удалит все, чего нет в текущих портах и не больше? Т.е. это я к тому, что оно пожелало удалить версии и старше тех, которые установлены в систме (получается, если я потом скажу ACCETPT_KEYWORDS=~amd64 emerge <пакет> или этот пакет переведут в amd64, то мне придется качать его заново).

----------

## Laitr Keiows

 *cz0 wrote:*   

> Оно удалит все, чего нет в текущих портах и не больше?

 

Именно так.

 *man eclean wrote:*   

> By default, eclean will protect all distfiles or binary packages corresponding to some ebuilds available in the Portage tree.

 

----------

## ArtSh

 *Laitr Keiows wrote:*   

> Зачем изобретать велосипед, чем плох eclean?...

 

Ничем, просто cleandistfiles появились в 2004г.

----------

## |cub|

а это не подходит?

----------

