Eclean - утиліта для видалення непотрібних файлів вихідного коду та бінарних пакетів Gentoo

eclean [глобальні опції] . [Опції дій] .

eclean-dist [глобальні опції, опції файлів вихідного коду] .

eclean-pkg [глобальні опції, опції пакетів] .

eclean(-dist,-pkg) [--help, --version]

eclean - це невелика утиліта, призначена для видалення застарілих вихідних кодів та бінарних пакетів portage. При регулярному використанні вона запобігає розростанню каталогів DISTDIR і PKGDIR, хоча в окремих випадках збереження даних може бути корисним.

За промовчанням eclean перешкоджає видаленню всіх файлів вихідного коду та бінарних пакетів, що відповідають деяким ебілдам, доступним у дереві портежів. Це найбільш безпечний режим роботи, оскільки він забезпечує збереження тих даних, які ще можуть бути корисними - наприклад, для того, щоб відкотитися на більш ранню версію пакета без повторного завантаження вихідного коду або щоб перевстановити пакет, який ви помилково видалили, без його перекомпіляції. Але очевидно і те, що в цьому випадку розмір каталогів DISTDIR і PKGDIR буде досить великим (хоча вони не збільшуватимуться нескінченно). Крім того, у цьому режимі утиліта повільно працює з файлами вихідного коду, оскільки вимагає доступу до всього дерева портежів.

Якщо ви використовуєте опцію --destructive, eclean зберігатиме лише ті файли, які відповідають тому чи іншому пакету, що встановлюється в даний момент (виходячи з точної версії пакета). Ця опція дозволяє вивільнити набагато більший простір; при цьому зберігаються файли вихідних кодів для несуттєвих ревізій та бінарні файли для перевстановлення пошкоджених пакетів. Але для менш поширених операцій - наприклад, для відкату версії або переустановки віддаленого пакета - дані буде видалено. Це найшвидшийрежим (що дуже помітно під час обробки файлів вихідного коду). Він використовується багатьма сценаріями очищення - як приклад можна навести yacleaner (принаймні у версії 0.3). Компромісним варіантом можна вважати використання опції --package-names у зв'язці з --destructive - це запобігає видаленню файлів, що відповідають усім існуючим версіям встановлених пакетів. Внаслідок цього можна буде легко відкотитися на більш ранню версію, не перезбираючи пакет і не завантажуючи дані заново, але видаленню пакетів це не завадить.

На додаток до перерахованих основних режимів доступні кілька інших опцій, що дозволяють оголошувати спеціальні правила захисту файлів від видалення:

опція --time-limit зручна для захисту від видалення файлів, створених раніше заданого часу.

опція --size-limit (тільки для вихідних файлів) зручна для захисту від видалення файлів, розмір яких перевищує заданий.

опція --fetch-restricted (лише для вихідних файлів) зручна для захисту від видалення файлів, завантажених вручну. Однак її використання тягне за собою уповільнення роботи утиліти (з огляду на описану вище: зчитування всіх даних з дерева портежів).

Глобальні опції¶

-C, --nocolor Вимкнути кольоровий висновок

-d, --destructive Зберегти лише мінімум даних для переустановки

-e, --exclude-file= Призначити шлях доступу до файлу винятків

Абсолютний шлях до файлу винятків, який потрібно використовувати. Якщо ця опція не використовується, за промовчанням будуть відповідно /etc/eclean/.exclude (якщо вони існують). Використовуйте /dev/null, якщо цей файл має стандартне розташування, але ви хочете тимчасово його ігнорувати.

-i,--interactive Вимагати підтвердження, перш ніж видалити

-n, --package-names Захищати від видалення всі версії (тільки для опції --destructive)

-p, --pretend Не виконувати дій над даними, а лише показувати, що саме буде видалено

-q, --quiet Використовувати компактний висновок: повідомляти лише про помилки

-t, --time-limit= Не видаляти файли, які змінювалися у вказане

- це певний проміжок часу: 1y означає один рік, 2w - два тижні, і так далі. Припустимі одиниці виміру: y (рік), m (місяць), w (тиждень), d (день), h (година).

-h, --help Вивести довідку по утиліті

-v, --verbose Використовувати докладний висновок службових повідомлень під час роботи утиліти

-V, --version Вивести інформацію про версію

distfiles

Видалити файли з каталогу /usr/portage/distfiles (або іншим шляхом, визначеним у змінній DISTDIR у файлі /etc/make.conf). Це потрібно практично будь-якому користувачеві Gentoo, адже каталог DISTDIR може досягати дуже великих розмірів.

packages

Видалити файли з каталогу /usr/portage/packages (або іншим шляхом, визначеним у змінній PKGDIR у файлі /etc/make.conf). Це має сенс, зокрема, якщо у вас виставлені прапори FEATURES buildpkg або buildsyspkg.eclean-pkg є аліас eclean з дією packages, для спрощення виклику з командного рядка.

Опції для дії distfiles¶

-f, --fetch-restricted запобігати видаленню завантажених вручну файлів (тільки з опцією --destructive)

-s, --size-limit= не видаляти файли вихідного коду, розмір яких перевищує заданий

- це розмір файлу: запис 10M означає 10 мегабайт, 200K - 200 кілобайт, і таке інше. Припустимі одиниці виміру - G (гігабайт), M (мегабайт), K (кілобайт) і B (байт).

Опції для дії packages

Окремих опція для цієї дії немає.

ВИКЛЮЧАНІ ФАЙЛИ¶

Дозволяється лише один запис у рядку.

При захисті файлів вихідного коду, рядок може містити ім'я файлу. Це має сенс у тому випадку, якщо у вас є файли, що не фігурують у ебілдах – наприклад, файли локалізації OpenOffice.org i18n (скажімо, helpcontent_33_unix.tgz). Іншим прикладом ситуації, в якій слід використовувати такий синтаксис, може бути запобігання видаленню даних, які не мають ебілду в дереві портежів або в будь-якому з підключених оверлеїв.

eclean також проінформує вас про застарілі пакети, встановлені у вашій системі, якби вона мала у своєму розпорядженні дані про відповідний їм файл/файли. Якщо ви бажаєте захистити від видалення всі встановлені джерела вихідного коду, спочатку запустіть eclean у режимі симуляції. Потім перевірте, для яких джерел даних утиліті не вдалося знайти файл/файли та додати відповідні записи до файлу distfiles.exclude. Тільки після цього можна знову викликати eclean.

За промовчанням, для дії "packages" (або "distfiles") буде використовуватися шлях /etc/eclean/packages.exclude, якщо він існує (або, відповідно, distfiles.exclude). Цю поведінку можна перевизначити за допомогою опції --exclude-file.

Видалити лише вихідні коди; по кожному архіву, що видаляється, буде виданий запит на підтвердження видалення:

Перевірити, які бінарні пакети можна видалити; висновок результатів - без кольору:

Видалити бінарні файли віддалених пакетів, але зберегти всі версії встановлених:

Видалити всі вихідні коди, за винятком файлів встановлених пакетів (точна відповідність версії), які були створені менше одного місяця тому, розміром 50Mб або мають обмеження щодо завантаження:

За розкладом crontab щонеділі о 1.00 автоматично видаляти непотрібні пакети в найбільш безпечному режимі, а потім - вихідні коди в режимі destructive, але не видаляти файли нового тижня:

ПРИМІТКА¶

При запуску та пошуку вихідних кодів для видалення для видалення eclean буде видавати повідомлення про всі застарілі пакети, встановлені у вашій системі. Відповідні джерела даних можуть бути захищені від видалення, якщо змінна SRC_URI не записана в базі даних встановленого пакета. В останніх версіях portage/pkgcore змінна SRC_URI не записується.

Рішення про те, чи видаляти чи ні вихідні коди, приймається на основі змінних SRC_URI ебілдів. Це означає, що, коли ебілд звертається до файлів, які не вказані в його змінній SRC_URI, eclean, як правило, видаляє такі файли. Це помилка ебілду; повідомляйте про такі помилки на http://bugs.gentoo.org. У безпечному режимі (використовується за умовчанням, з відключеною опцією --destructive) утиліта може працювати вкрай повільно, і це можна виправити тільки в обхід API портежів.

Тред форуму Gentoo, з якого розпочалася історія eclean:

Заявка на багтрекер з проханням включити eclean в gentoolkit: