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: