1 (2018-05-01 11:57:06 отредактировано alex_q_2000)

Преамбула:
---------------------------------------------------------------
Добрый вечер. Долго мы тут с ingvaro "толкались" на форуме, по поводу методики очистки старых ядер в системе (urpme --auto-orphans не рассматриваем). Думаю, что последний алгоритм с определением типа активного ядра из вывода uname -r и поиску старых ядер по сигнатуре являются наиболее верными. Посему решил перейти от консоли на иксы и переписать код из BASH на Lazarus 1.6.4. Инструкции BASH работают в потоках, так что тормозов быть не должно. Заодно потренировался в сборке пакетов. ))

Обновлено: 18.08.2017

SnappyCleaner v1.5
---------------------------------------------------------------
Изменения:

Spoiler

1. Отображение списка пакетов-сирот
2. Отображение информации о зависимостях пакетов
3. Возможность исключения пакетов-сирот из списка осиротевших
4. Удаление ненужных пакетов опционально или скопом
5. Исправлена локализация RU/EN
6. Исправлены информационные сообщения
7. Исправлена точность вычисления размеров ядер и сирот (Kб/Mб)
8. Деликатная очистка корзины
9. Определение реального размера корзины (скрытые подкаталоги)
10. Добавлена опция "Ремонтировать RPM-DB" (rpm --rebuilddb + очистка /var/lib/rpm/__db*)
11. Переименование проекта [04.08.2017]
12. Переделано отображение зависимостей сирот:
  - Убраны рекурсивные дубликаты имен пакетов в списке правой зависимости
  - Если зависимый от сироты пакет не установлен - клинер сообщает об этом
13. В scleaner --auto добавлен "Ремонт базы данных RPM"
14. Исправлена логика выбора опций
15. От обновления к обновлению urpme/urpmq отдают разные списки сирот (--auto-orphans): либо включают старые ядра devel, либо нет. Теперь список старых ядер принудительно исключается из списка сирот, если присутствуют
16. Формируется общий список удаляемых пакетов (ядра + сироты)
17. Каждый пакет удаляется индивидуально во избежании перекрестных зависимостей
18. Имя удаляемого пакета отображается в строке статуса
19. Оптимизированы запросы к базе данных RPM
20. Добавлено копирование в буфер отдельных позиций и выгрузка списков в файл
21. Введено удаление сирот без зависимостей (v1.3, rpm -e --nodeps)
v1.4 rc1
1. Откат к "жёсткой" очистке корзин(ы) (скрытые папки корзины системного диска пересоздаются)
2. Откат к удалению сирот через urpme --auto (взаимоисключающий список ядра+сироты)
3. Название сироты исключается из левой зависимости (нужен сам себе - не логично)
4. Переписан код выгрузки сирот в файл и копирования в буфер обмена
5. Переписан модуль анализа: отображение результатов в процессе сканирования
6. Изменен метод подсчета размера скрытых файлов и папок
7. Учитывается размер корзин(ы) флешек (/run/media/user/vol*/.Trash-1000)
v1.4rc2
1. Исправлена отрисовка списков из потоков
2. Добавлено исключение сигнатуры ядра, больше нового (-ge) при формировании списка удаляемых ядер, если пользователь установил более новый kernel-devel вручную.
3. Введен поиск зависимостей произвольных пакетов с прырыванием процесса. Для вызова снять выбор с любого списка [-] и нажать "лево/право" [<>].
4. Учитываются старые .Trash-500 на флэшках: размер суммируется с системной корзиной, при очистке удаляются
v1.5
1. Исправлен вывод статусных сообщений прерывания поиска зависимостей
2. Инсталлятор: добавлена секция удаления следов инсталляции самой программы (rpmbuild/spec/postun)
3. Версия финализирована

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

1. Старые ядра системы
2. Временные файлы root
3. Корзина пользователя
4. Временные файлы пользователя
5. RecentDocuments пользователя
6. Каталог-кеш URPMI
7. Кеш Mozilla FireFox
8. Кеш Google Chrome
9. Кеш браузера Opera
10. Осиротевшие пакеты (опционально)
11. Поиск сирот произвольных пакетов
12. scleaner --auto (очистка без ядер и сирот)
13. Ремонтирует базу данных RPM
xx. Бонус - показывает использование HDD

После установки SnappyCleaner садится в меню Утилиты-Системные и запускается с ярлыка, либо командой scleaner из под обычного пользователя (scleaner --auto - автоматическая очистка без учета ядер и сирот). Требует привилегии root.

SnappyCleaner протестирован на виртуальных машинах Mageia4 - Mageia6.

Полезные статьи:
---------------------------------------------------------------
Как собрать пакет RPM с произвольным содержимым
Сборка RPM - быстрый старт
Упаковка программ с помощью RPM, часть 2

С уважением,
alex_q_2000

Спасибо сказали: mozg19861

2 (2017-07-13 09:37:49 отредактировано algri14)

В пакете вообще-то, указывают версию дистрибутива, по ссылке это какая, мне бы для 5-ки х64, так как ей буду пользоваться ещё год (ну не нравится мне плиточная плазма в 6-ке)
По поводу сирот, удаление ненужных зависимостей идёт вместе с осиротевшим пакетом? и вообще как?
зы: хотя если зависимости совпадают, то пакеты от 6-ки на 5-ю встают

3 (2017-07-13 11:52:51 отредактировано alex_q_2000)

algri14⇓ пишет:

В пакете вообще-то, указывают версию дистрибутива, по ссылке это какая, мне бы для 5-ки х64, так как ей буду пользоваться ещё год (ну не нравится мне плиточная плазма в 6-ке)
По поводу сирот, удаление ненужных зависимостей идёт вместе с осиротевшим пакетом? и вообще как?
зы: хотя если зависимости совпадают, то пакеты от 6-ки на 5-ю встают

Пакеты подходят к протестированным версиям, указанным выше (4-6). Думаю, что подойдут и к другим, поскольку весь проект - это одна форма и набор bash-инструкций, хотя за работу pkexec в ранних версиях не ручаюсь. Поэтому - без версий. По поводу удаления пакетов сирот - функция опциональная. Исходя из того, что стандартный urpme не запускает удаление сирот (пользователь может прикрутить что-то "лишнее" для своих целей), но предлагает выполнить, - здесь она то же не является принудительной. Решение об удалении сирот остаётся за пользователем. Выходить за рамки стандартных процедур в данном случае грешнО.

Я тоже смутно представляю себе весь механизм этих взаимосвязей. Но одно могу сказать точно: беспорядочные связи приводят к печальным последствиям. ))

При сборке пакетов не стремился соблюсти стандарты, ибо сама сборка - из произвольного содержимого без компиляции. Мне был интересен сам процесс сжатия того, что нужно в rpm с возможностью последующей установки/удаления. Есть ещё инструмент для сборки/упаковки, кроме rpmbuild - это fpm. Вот там, говорят, можно без всяких spec-ов одной командой за раз собрать из реальных каталогов всё добро и не мучиться. Кстати, коллега, может порекомендуете какую-нибудь простенькую утилиту для создания rpm без компиляции, чтобы много кнопок не жать? А то простейшая операция превращается в "пляску св. Витта"...

С уважением,
alex_q_2000

4

Попробовал запустить. Красиво !
Жалко что обновлений ядра что то долго нет. Но думаю скоро будут.
Как назло уже все обновил.
Еще программа интерактивная и поэтому хорошо бы предусмотреть команду :

[b]mcleaner --auto[/b]

Что бы чистила без графики, ну как

 [b] drakx11 --auto[/b]
alex_q_2000⇓ пишет:

Посему решил перейти от консоли на иксы и переписать код из BASH на Lazarus 1.6.4

А почему использована Lazarus 1.6.4 с языком программирования paskal
Магея вроде делает все на perl

5 (2017-07-13 20:00:10 отредактировано algri14)

alex_q_2000⇓ пишет:

2. Временные файлы root

/root/tmp/=4.0К - неправда ваша, пусто там
А вообще-то ядра система показывает как осиротевшие пакеты и удаляет их без проблем, по поводу зависимостей вот тема Осиротевшие пакеты , было бы удобно удалять опционально, а не всё скопом, поэтому пользоваться ей не буду.
И ещё, неправильно это - собирать в кучу системные пакеты ядер и кеш-файлы браузера. На мой взгляд (чайника) требует доработки.
зы: а вообще есть родной от Магеи пакет qt4urpm, хотя он почему-то показал не все ядра, но в том же пакете MageiaCleaner стоит и активное ядро в списке на удаление (непонятно - удалит или нет), хотя в нижнем окне показывает безопасно-удаляемые ядра, лучше основное ядро показывать только в шапке, а не в списке
Окно программы на весь экран не раскрывается и есть "наплывы" текста
http://storage8.static.itmages.ru/i/17/0713/s_1499965152_8890821_2692a71a87.png

6 (2017-07-14 07:27:29 отредактировано ingvaro)

algri14⇓ пишет:

но в том же пакете MageiaCleaner стоит и активное ядро в списке на удаление (непонятно - удалит или нет),

Нет у вас в списках на удаление активного ядра  (нижнее окно) .

algri14⇓ пишет:

лучше основное ядро показывать только в шапке, а не в списке

Просто в верхнем окне активное ядро  должно бы стоять в верху.. Тогда бы было лучше

algri14⇓ пишет:

было бы удобно удалять опционально, а не всё скопом, поэтому пользоваться ей не буду.

Тестировал я - https://forum.mageia.org.ru/viewtopic.p … 513#p24513

ingvaro⇓ пишет:

Обновляю ядро.  Запустил mageia-cleaner
И что особо приятно скрипт предлагает удалить старое ядро.
Удаляю перезагружаюсь и все !!!
Новая жизнь с новым ядром.

Удобно !
Конечно лучше бы если было право выбора.
Ну а зачем они старые ядра?  Я их всегда удаляю.

7 (2017-07-14 09:31:57 отредактировано alex_q_2000)

Господа, Mageia-Cleaner предназначен для чистки системы и удаления старых ядер. В этом свете, пытаясь увязать всё написанное выше, призываю Вас сформулировать задачу более корректно. А именно: ответить на следующие вопросы... ))

1. Возможен ли вариант, при котором пользователь ставит обновления каждый день, но при этом целенаправленно грузит систему со старого ядра, предпочитая не использовать в своей работе новое?

2. algri14... Что именно нужно настроить на виртуалке MATE, чтобы получить такую же картинку, как на Вашем скриншоте? Или для этого нужен KDE?

3. ingvaro... Прошу уточнить относительно консольного режима --auto. Это автоочистка одним нажатием или то, как мы делали ещё в скриптовом варианте?

Пока я понял, что нужно смасштабировать привязку элементов на форме, дабы компоненты не разъезжались в стиле "модерн" (шикарный скриншот кстати, смеялся минут 5, спасибо))), перевернуть сортировку снизу-вверх (свежее ядро сверху), заменить стандартный вывод du (минимальный размер блока "4.0К") на "0K" и сделать запуск по ключу в консольном режиме. Это верно?

С уважением,
alex_q_2000

8 (2017-07-14 10:46:23 отредактировано algri14)

alex_q_2000⇓ пишет:

Господа, Mageia-Cleaner предназначен для чистки системы и удаления старых ядер.

Есть хорошая программа BleachBit (пакет bleachbit ), сканирует и удаляет файлы опционально, т.е. по выбору, а не всё подряд по списку.
Удалять старые ядра или нет - дело личное (у меня были проблемы с обновлениями и наличие старого ядра помогло загрузиться в систему), но Mageia-Cleaner сканирует/находит и предлагает к удалению  лучше, чем qt4urpmi , хотя последняя заточена под пакеты-сироты, а не под старые ядра.
Надо бы доработать:
1) активное ядро показывать только вверху, в шапке, дабы не возникало вопроса - удалит его программа или нет
2) добавить возможность удалять не только всё сразу, но и опционально
3) убрать чистку кеш-браузера, корзину юзера, а лучше вообще всё(дабы чего нужного не удалить), оставить только пакеты сироты и ядра, но только опционально, потому как эти самые сироты не всегда ими являются(предварительно требуется проверить их на зависимости) и всё таки находятся в зависимостях у других пакетов.
Программа имеет право жить, а собственно почему нет.

alex_q_2000⇓ пишет:

Что именно нужно настроить на виртуалке MATE, чтобы получить такую же картинку, как на Вашем скриншоте? Или для этого нужен KDE?

Как и написано в моей подписи профиля, у меня Mageia5.1x86_64 - KDE и глюк с наплывом текста (обведено красным) на скрине выше

9 (2017-07-14 12:22:37 отредактировано ingvaro)

alex_q_2000⇓ пишет:

Прошу уточнить относительно консольного режима --auto.

Сейчас запуск  Mageia-Cleaner интерактивный.
Но допустим система зависла или выключена некорректно.
При запуске хорошо бы просто почистить систему
У меня были случаи, когда приходилось заходить под root и удалять пользователя вместе с его каталогом и создавать его заново.
И тогда команда при загрузке ;
    mcleaner  --auto
Должна бы наверно исправить ситуацию
Т е это только чистка системы без интерактивного режима без удаления старых ядер.
Но запустится ли  mcleaner  --auto  без интерпретатора  Paskal ?
На своей Mageia (MagOS)  я бы эту команду поместил еще до запуска системы, но там интерпретатора  Paskal  нет
И в МагОС есть понятие как "чистый запуск"
Это запуск только системы без машинно-зависимых файлов, временных файлов и т п
Это к примеру запуск Mageia 6 rc LiveDVD. Там только система
И если бы Mageia-Cleaner как то помог бы выполнить  "чистый запуск" при запуске системы, то это было бы замечательно

alex_q_2000⇓ пишет:

Пока я понял, что нужно смасштабировать привязку элементов на форме, дабы компоненты не разъезжались в стиле "модерн" (шикарный скриншот кстати, смеялся минут 5, спасибо))), перевернуть сортировку снизу-вверх (свежее ядро сверху), заменить стандартный вывод du (минимальный размер блока "4.0К") на "0K" и сделать запуск по ключу в консольном режиме

В дополнение к этому заметил что "Каталог-кэш URPMI  высвечивается серым цветом даже когда не пуст
Но сам кэш URPMI нормально чистится

algri14⇓ пишет:

Есть хорошая программа BleachBit (пакет bleachbit ), сканирует и удаляет файлы опционально, т.е. по выбору, а не всё подряд по списку.

Запускал я ее. Но что то желания разбираться с опциями очистки у меня не возникло.
Чистка системы это ведь равносильно тушению пожара в лесу.  Где то что то осталось может опять загореться.
А это лишние заботы и время, которого всегда не хватает.
И как часто вы ее запускаете  и чистите не все, а выборочно ?
Т е надо бы разобраться действительно ли это нужно.

Спасибо сказали: alex_q_20001

10

ingvaro⇓ пишет:

Чистка системы это ведь равносильно тушению пожара в лесу.

Сравнение не корректное, ведь весь лес не рубят, чтобы ликвидировать пожар, а именно только очаг пожара.
Вообще-то кому что нравится и удобно, тот тем и пользуется, я ж говорю - программа имеет место быть, инструмент лишним не бывает

11 (2017-07-14 13:21:54 отредактировано alex_q_2000)

algri14, ingvaro - благодарю, в общих чертах понятно. Будем заниматься... )) А кеш URPMI всегда будет что-то содержать, поэтому - серый. Там какой-то файл лежит с урлами репозиториев и 2 папки постоянно, если мы про /var/cache/urpmi говорим. Или нет?

С уважением,
alex_q_2000

12

algri14⇓ пишет:

Сравнение не корректное, ведь весь лес не рубят, чтобы ликвидировать пожар, а именно только очаг пожара.

Может и действительно некорректное.
Но ни в одном браузере, если я не ошибаюсь,  не чистят кэш опционально
Логи  ? Да почти все их можно удалить, и после перезагрузки появятся новые.
Полностью дублировать BleachBit не имеет смысла, т к прога такая уже есть
Достаточно сделать кнопку запуска в Mageia-Cleaner  для BleachBit
И можно удалять опционально.
Или отдельно запускать BleachBit

13 (2017-07-14 18:49:06 отредактировано algri14)

alex_q_2000, а вот к названию Mageia-Cleaner могут быть претензии от разработчиков Магеи, лучше заранее изменить

ingvaro⇓ пишет:

Полностью дублировать BleachBit не имеет смысла

Конечно, я это и имел ввиду
Что меня радует, так это то, что у русского форума появился ещё один разработчик, alex_q_2000 + ingvaro, глядишь начнёте совместную разработку модульной Магеи - весчь хорошая, жаль я в этом ни бум-бум

14

algri14⇓ пишет:

а вот к названию Mageia-Cleaner могут быть претензии от разработчиков Магеи, лучше заранее изменить

Претензий то наверно не будет, но название действительно лучше поменять, т к прога может чистить не только Магею, но и наверно многие rpm-дистрибутивы.
Может Speed-Cleaner ?

15

ingvaro⇓ пишет:

Может Speed-Cleaner ?

тогда уж лучше kernel-cleaner

16

alex_q_2000 пишет:

algri14... Что именно нужно настроить на виртуалке MATE, чтобы получить такую же картинку, как на Вашем скриншоте? Или для этого нужен KDE?

У меня в KDE mga6 rc всё отображается корректно, без "наплывов".

З.Ы. Прога, очень понравилась. Быстро, без лишних вопросов, удалила весь "мусор" и старые ядра.

Я раньше делал всё ручками:
1. rpm -qa | grep -i kernel
2. urpme (ctrl+c, ctrl+v те пакеты, которые нужно удалить) enter
3. ещё раз rpm -qa | grep -i kernel дабы убедиться, что осталось только нужное
4. reboot

А теперь набрал mcleaner, "тыц" 1(!) кнопочку, ребут - profit!
ИМХО Единственное, чего в той проге не хватает - это, чтоб она была видна в меню (в списке программ). А то прога ГУЙовая, а ни пункта меню, ни иконки на рабочем столе под неё нет...

Mageia6, KDE, LXQt, x86_64.
Человек человеку - волк, а зомби зомби - зомби!

17

Zomby⇓ пишет:

А то прога ГУЙовая, а ни пункта меню, ни иконки на рабочем столе под неё нет...

alex_q_2000, у меня всё есть, стоит в Утилиты-Системные
http://storage3.static.itmages.ru/i/17/0715/s_1500101367_8299337_d385f0bbbc.png

18 (2017-07-15 20:53:55 отредактировано ingvaro)

Zomby⇓ пишет:

Прога, очень понравилась. Быстро, без лишних вопросов, удалила весь "мусор" и старые ядра.

kernel-cleaner  название говорит только об удалении ядра

Может bistro-cleaher или  короче bistroner

Т к bistro это русское и даже французское  слово
Но окончательное решение  это за автором проги

19

ingvaro⇓ пишет:

Может Speed-Cleaner ?

Назвать нужно "Самурай-клинер". )) А в чем может быть суть претензий? Есть же Ubuntu Cleaner. Судя по информации, чужие разработчики использовали кусок Ubuntu Tweak Tool, а стиль интерфейса слямзили у сисиклинера. Я тоже хотел у CCleaner-а иконку позаимствовать, но не стал уже заниматься плагиатом. А для разработчиков Магии я встроил поддержку английского языка, чтобы ребята тоже смогли почистить свои компы. В теории - это должно ускорить выпуск 6-той версии.

С уважением,
alex_q_2000

20

alex_q_2000⇓ пишет:

Mageia-Cleaner - программа из разряда "полезняшек" на каждый день. Представляет из себя клинер системы и выполняет очистку следующих позиций:

Установил, посмотрел, удалил. Не понравилась. Визуально не видно какие каталоги чистятся и какие файлы удаляются. Нет возможности добавить пользовательский каталог для чистки.

21 (2017-07-23 16:03:29 отредактировано ingvaro)

kvv-vp⇓ пишет:

Установил, посмотрел, удалил. Не понравилась. Визуально не видно какие каталоги чистятся и какие файлы удаляются. Нет возможности добавить пользовательский каталог для чистки

А что их там разглядывать ?
В любом браузере есть функция очистки кэша. Там то же удаляемых файлов не видно.
Что именно чистится показывается.

22

ingvaro⇓ пишет:

А что их там разглядывать ?
В любом браузере есть функция очистки кэша. Там то же удаляемых файлов не видно.
Что именно чистится показывается.

А зачем тогда всю эту графику выводить на экран? Нажал кнопку в трее- система почистилась. Все, удаляемые программой, данные индивидуальны, их уже не восстановить. Поэтому и хочется иногда взглянуть на них напоследок.

23

kvv-vp⇓ пишет:

Установил, посмотрел, удалил. Не понравилась. Визуально не видно какие каталоги чистятся и какие файлы удаляются. Нет возможности добавить пользовательский каталог для чистки.

Аналогично, даже новичку хочется более детально знать что удаляешь

24 (2017-07-27 20:10:32 отредактировано algri14)

Сегодня решил заняться пакетами "сиротами", в частности kernel-desktop-4.4.30-2.mga5-1-1.mga5.x86_64 , который указан в программе MageiaCleaner v1.0 после анализа. Но вот какая заковыка, этот пакет стоит в зависимости у актуального на данный момент пакета kernel-desktop-latest-4.4.74-1.mga5 , ибо последнее актуальное ядро kernel-desktop-4.4.74-1.mga5
Лично я в таком случае не буду удалять старое ядро, кто его знает как там повлияет его удаление на дальнейшую работу системы.
А вот kernel-firmware-nonfree-20160914-1.mga5.nonfree.noarch в программе не указан, но он является сиротой и в зависимостях не стоит нигде, я удалю его со спокойной душой в пакетном менеджере.

Проверить на зависимость командой:
консоль покажет список всех пакетов, установленных и не установленных

Консоль
[algri@localhost ~]$ urpmq --whatrequires имя_пакета

или обозначит их, т.е. установлены они или нет
Консоль
[algri@localhost ~]$ for i in $(urpmq --whatrequires имя_пакета); do rpm -q $i; done

или только установленные в системе (предварительно добавить в файл ~/.bashrc):
Консоль
[algri@localhost ~]$ urpmreq ins full имя_пакета

Хотя не покажет рекомендованных к установке пакетов(бывают и такие), так что автоматика не всегда хороша, требует проверки.
Ручками оно конечно дольше, но зато надёжнее, ибо зависимость ставилась к одному пакету(который удалили), а потом потребовалась другому.

25

algri14 пишет:

...kernel-desktop-4.4.30-2.mga5-1-1.mga5.x86_64...    ...этот пакет стоит в зависимости у актуального на данный момент пакета kernel-desktop-latest-4.4.74-1.mga5

????? Вы уверены? Чегой-то слабо верится, что пакет расширений для нового ядра зависит от того, установлено ли старое ядро.

Mageia6, KDE, LXQt, x86_64.
Человек человеку - волк, а зомби зомби - зомби!