1

remove-old-kernels — утилита для удаления устаревших ядер в системах Mageia с использованием urpmi.

В Mageia-9 разработчиками дистрибутива добавлен и установлен по умолчанию пакет этой утилиты. Ранее, при обновлении и установке нового ядра система не удаляла предыдущее.
Например, стояло ядро kernel-desktop-5.10.16-1.mga8, ставилось ядро kernel-desktop-5.10.17-1.mga8 и оно становилось активным, а предыдущее уже НЕактивно. И так далее, пользователь сам решал, удалять старые ядра или нет. Таким образом, если не контролировать этот процесс вручную, в системе скапливалось довольно большое количество неиспользуемых ядер.

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

Ранее, если мне в пакетном менеджере или сторонней программе попадались на глаза «неактивные» или «старые» ядра, я не спешил их удалять. В меню загрузчика GRUB2, по мере обновления ядер в конфиге делается новая запись, в пункте «Дополнительные параметры» и предыдущие ядра.

НО, загрузкой с предыдущим ядром можно воспользоваться при условии, что вы не меняли драйверы, например, свободные nouveau на проприетарные nvidia или наоборот. Ибо в системе есть пакет с предыдущим ядром, но уже нет модуля с предыдущим драйвером, система загрузится с предыдущим ядром, но из-за отсутствия модуля предыдущего драйвера она будет неработоспособна.

По умолчанию, утилита remove-old-kernels настроена на сохранение 3-х крайних ядер, после обновления 4-е будет удалено, так же как и запись в меню загрузки GRUB2, плюс режим recovery mode, итого 6 пунктов, что тоже правильно и довольно удобно.
Утилита выполняет свою работу без вмешательства пользователя, но можно добавить и свои собственные настройки. Утилита консольная, просто для просмотра о количестве используемых ядер её можно вызвать от пользователя, из графического Меню => Утилиты => Системные => Remove Old Kernels и хотя она запросит права root, но консольное окно откроется чисто для информационного сообщения, далее после нажатия на любую клавишу клавиатуры программа завершит работу.
Вся полноценная работа происходит после запуска в консоли с правами root, от пользователя только информационное сообщение.
Запуск командами remove-old-kernels или коротко rok

Консоль: user
[user@localhost ~]$
                        Добро пожаловать в интерактивный режим 'remove-old-kernels'

find: ‘/boot/EFI/EFI/mageia’: Отказано в доступе
System: Mageia release 9 (Official) for x86_64 | Ядра в /boot/:3 | AUTO:1 | СОХРАНИТЬ:3 
==> kernel-desktop
1   : Сохранить: U   : kernel-desktop-6.6.28-1.mga9.x86_64           Вт 23 апр 2024 07:45:16
2   : Сохранить:     : kernel-desktop-6.6.22-1.mga9.x86_64           Ср 27 мар 2024 15:44:32
3   : Сохранить:     : kernel-desktop-6.6.18-1.mga9.x86_64           Вт 05 мар 2024 16:34:02
                  U = Используется сейчас
Нажмите пробел, чтобы выйти

2

В пакетном менеджере даётся пояснение:
remove-old-kernels — Remove old kernels safely and cleanly using urpme
- Remove old kernels safely and cleanly using urpme.
- Once installed it may be left to do it's job without user intervention.
- It is run by cron.weekly to retain a minimum number of installed kernels of each flavour. (Default is three) This may be adjusted or disabled using simple command line options if desired.
- There is also an advanced mode with some expert features.
- It may also be run manually in interactive mode from the desktop menu, under Tools -> System tools.
- Running as normal user from the command line will display the current status of installed kernels but will not allow removal.
- For more information see: 'man remove-old-kernels' or 'man rok' in a terminal.
==========================
remove-old-kernels — Безопасно и чисто удаляет старые ядра с помощью urpme
- Безопасно и чисто удаляет старые ядра с помощью urpme.
- Можно оставить выполнять свою работу без вмешательства пользователя.
- Утилита управляется cron.weekly (еженедельно), чтобы сохранить минимальное количество ядер каждого вида. (По умолчанию - три) При желании это можно настроить или отключить с помощью простых параметров командной строки.
- Существует расширенный режим с некоторыми экспертными функциями.
- Можно запустить вручную из Mеню рабочего стола -> Утилиты -> Системные
U = In use now — U = Используется сейчас
Tap spacebar to exit — Нажмите пробел, чтобы выйти
- Запуск от имени обычного пользователя из командной строки отобразит текущее состояние установленных ядер, но не позволит удалить их.

Для получения дополнительной информации смотрите в терминале:
man remove-old-kernels или man rok

remove-old-kernels -h или rok -h

3

Сайт утилиты находится на github.com — barjac/remove-old-kernels
Она локализована на 8 языков ещё в 2023 году (до принятия законов запрещающих участие граждан РФ в незарегистрированных в специальном реестре иностранных некоммерческих организациях, и вводящие, среди прочего, уголовную ответственность), перевести на русский вовремя было недосуг (я про тех, кто знал про неё и ничего не делал)…

Переводчики:
ajunior (Brazilian Portugese)
Philippe Didier (French)
Johnny A. Solbu (Norwegian Bokmål)
psyca (German)
aguador (Spanish)
umeaboy (Swedish)
Yuri Chornoivan (Ukranian)
Marja van Waes (Dutch)

Под спойлером справка, она меньше man'а:

справка_EN

Usage: <remove-old kernels|rok> [-a] [-A 0|1] [-c] [-t] [-f 0-9] [-F 0-9] [-n number] [-N number] [-p] [-q] [-Q 0|1][-l] [-m] [-v] [-h|-?]
-a = automatic, no questions. Interactive if not specified. (must be root)
-A value = 1 or 0 to turn ON or OFF automatic weekly removal of kernels. (e.g. -A1)
-c = as automatic but also checks for CRON=1 in the cfg file or exits. (must be root)
-t = Test mode, nothing is removed, urpme is simulated.
-f value = number of the alternate .cfg file to use this time only. Exits if missing.
-F value = number of alt .cfg file to use. This changes the ALTCFG= setting in the main .cfg file.
-n value = number of kernels to keep this time only. (-n5 or -n 5 keep 5 kernels), Min=2, Default=3
-N value = number of kernels to keep. This changes the config file setting. (e.g. -N 5)
-p = preview the urpme commands which would be used.
-q = advanced mode, this time only - see man page.
-Q value = 1 or 0 (1 = ON) advanced mode, persistent. (e.g. -Q1)
-l = list the last 1000 lines of the log.
-m = mono. No colours in screen output.
-v = version.
-? or -h = show this help.

KEY for column 3:
U = currently (U)sed running kernel.
V = keeping for (V)irtualbox -latest. (only in advanced mode)
X = keeping for (X)tables-addons -latest. (only in advanced mode)
K = keeping kernel-*-devel for installed (K)ernel. (only advanced mode)

справка_RU

Использование: <remove-old kernels|rok> [-a] [-A 0|1] [-c] [-t] [-f 0-9] [-F 0-9] [-n и число] [-N и число] [-p] [-q] [-Q 0|1][-l] [-m] [-v] [-h|-?]
-a = автоматически, без вопросов. Интерактивный режим, если не указано другое. (требуются права root)
-A и число = 1 чтобы ВКЛ или 0 чтобы ВЫКЛ автоматическое еженедельное удаление ядер. (например, -A1)
-c = тоже самое что и автоматически, но с проверкой CRON=1 в файле настроек и завершает работу. (требуются права root)
-t = режим тестирования, ничего не удаляется, имитируется работа urpme.
-f и число = номеру альтернативного файла .cfg, который будет использован только в этот раз. Завершает работу, если файла не существует.
-F и число = номеру альтернативного файла .cfg. Изменяет значение ALTCFG= в основном файле .cfg.
-n и число = количеству ядер, которые нужно сохранить только в этот раз. (- n5 или -n 5 сохраняет 5 ядер), min=2, по умолчанию=3
-N и число = количеству ядер, которые следует сохранить. Изменяет настройки конфигурационного файла. (например, -N 5)
-p = предварительный просмотр команд которые будут использоваться urpme.
-q = расширенный режим, подробнее см. страницу man.
-Q и число = 1 или 0 (1 = ВКЛ) расширенный режим, на постоянно. (например, -Q1)
-l = показать последние 1000 строк log-журнала.
-m = моно режим. Не использовать цвета при выводе на экран.
-v = показать версию программы.
-? или -h = показать справку.

КЛЮЧ для столбца 3:
U = текущее (U) используемое ядро.
V = сохранение для (V)irtualbox -latest. версии (только в расширенном режиме)
X = сохранение для (X)tables-addons -latest. версии (только в расширенном режиме)
K = сохранение (K) kernel - * - devel версии для установленного ядра (только в расширенном режиме)

В переводе я использовал слово "число"
-A value = 1       (англ.)
-A и число = 1   (перевод)
вместо слова "значение", предложенное маш-переводом, потому что оно может восприниматься двойственно и непонятно новичкам, слово "число" более прямолинейно говорит — требуется поставить какое-либо "число-цифру".

4

У утилиты есть справка
remove-old-kernels -h или rok -h
Автором,  Barry Jackson ака barjac, предусмотрена её локализация на другие языки. А вот для man'а
man remove-old-kernels или man rok
локализация не предусмотрена в принципе, хотя в man'е описание программы больше и подробнее, поясняются некоторые настроечные нюансы.
Я сделал экспериментальную локализацию справки (для собственного использования), положил перевод в файл:
/usr/share/locale/ru_RU.UTF-8/LC_MESSAGES/remove-old-kernels.mo
Локализацию man'а тоже пробовал сделать (для собственного использования), но при запаковке в архив.xz возникают некоторые кракозябры (в виде вопросов) с кириллицей, доволно странные, даже не знаю почему, хотя в ОС ROSA такого нет. Но это уже другая тема для формата архива.xz

man_EN находится:
/usr/share/man/man1/remove-old-kernels.1.xz
/usr/share/man/man1/rok.1xz
при этом файл rok.1xz является симлинком на remove-old-kernels.1.xz (у них разные inode)

Если будете делать для себя лично, то путь следующий:
/usr/share/man/ru/man1/remove-old-kernels.1.xz
/usr/share/man/ru/man1/rok.1xz
здесь симлинк почему-то не работает, придётся remove-old-kernels.1.xz переименовать в rok.1xz , чтобы в консоли работали обе команды

5

Отправьте локализацию автору. Это авторская программа, к некоммерческой организации не имеет никакого отношения.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

6

AlexL⇓ пишет:

Отправьте локализацию автору. Это авторская программа, к некоммерческой организации не имеет никакого отношения.

Я давно собираюсь это сделать, но ни раза не делал этого, на соседнем форуме мне поясняли как это сделать, осталось сесть, разобраться и отправить — сделав всё правильно.

У автора есть локализация "Справки", но некуда отправлять man, который я тоже перевёл.

7

Отправьте всё ему на почту и не мучайтесь.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

8

И desktop файл тоже надо перевести тогда уж.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

9

почта Barry Jackson

https://forum.mageia.org.ru/uploads/images/2024/09/1f140bd38b25f07a16d16f7386c833ef.jpg

Разработчик, мейнтейнер, переводчик, по всем вопросам.

10

AlexL⇓ пишет:

Отправьте всё ему на почту и не мучайтесь.

а это мысль, будет гораздо быстрее

AlexL⇓ пишет:

И desktop файл тоже надо перевести тогда уж.

а это зачем? я всегда противник перевода названия программы.

11

Переводить меню надо, не все знают английский.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

12

AlexL⇓ пишет:

Переводить меню надо, не все знают английский.

Говорю как не знающий английского языка — очень часто приходилось искать программу наобум, только потому что в меню она переведена, а в МСС нет (в смысле в пакетном менеджере)

Проверю ещё раз файлы справки и man'а (уже увидел мелкие ошибки), а завтра отправлю.

13

Имею сомнения в переводе строки:
FATAL: Has the running kernel been uninstalled since last boot? - Aborting.
Мой вариант
КРИТИЧЕСКАЯ ОШИБКА: Было ли удалено запущенное ядро с момента последней загрузки? - Отмена выполнения.

Маш-переводчики дают перевод:
Яндекс
ФАТАЛЬНЫЙ: Было ли запущенное ядро удалено с момента последней загрузки? - Прерывание работы.

Гугл
FATAL: Было ли запущенное ядро удалено с момента последней загрузки? - Отмена.

Все три фразы не совсем понятны, а те что в конце вызывают сомнения — какая из них наиболее верная.
Отмена выполнения.
Прерывание работы.
Отмена.

14

Яндекс никогда не будет нормальным переводчиком, лучше Гугла ничего не переводит. Переводить надо всегда короче, иначе часто строки не влезают при отображении.
ФАТАЛЬНО: Было ли запущенное ядро удалено с момента последней загрузки? - Отмена.


И тем не менее, desktop файл переводить надо. А в MCC всё можно перевести, просто никому ничего не надо.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

15

А мне гугл-переводчик перевел: "Было ли удалено работающее ядро с момента последней загрузки?"

16

AlexL⇓ пишет:

ФАТАЛЬНО: Было ли запущенное ядро удалено с момента последней загрузки? - Отмена.

Эта фраза идёт из man'а:
It will never remove the running kernel.
If the running kernel has been accidentally removed by some utility since boot then it will report the error and abort, removing nothing.


«Никогда не удалит запущенное ядро.
Если запущенное ядро будет случайно удалено другой программой после загрузки, то утилита сообщит об ошибке и прервёт работу, ничего не удалив.»

Заглянул в украинский перевод, Yuri Chornoivan удачно перефразировал
"КРИТИЧНА ПОМИЛКА: можливо, запущене ядро вилучено з часу останнього завантаження? - Перериваємо обробку."

Мой вариант
ОПАСНО: Возможно запущенное ядро было удалено с момента последней загрузки. - Отмена.

зы: слово "фатально" чересчур фатально (каламбур). «Роковым образом случающийся, неотвратимый, неизбежный, словно предопределенный фатумом.»

17

Отсебятину гнать не надо, написано фатально, значит, фатально, а не опасно, это сокращение от "фатальная ошибка".

Разработчик, мейнтейнер, переводчик, по всем вопросам.

18

AlexL⇓ пишет:

Отсебятину гнать не надо, написано фатально, значит, фатально, а не опасно, это сокращение от "фатальная ошибка".

Это не отсебятина, в переводах это вполне обычная вещь, Вам ли об этом не знать. Не все фразы надо переводить дословно, так сказать "в лоб", ибо не все фразы дословно переведённые дают понятную "картинку".

Согласен, "опасно" не подходит, но и "фатально" не айс, оставляем — "Критическая ошибка", добавлю туда для полноты понимания слово "уже"

КРИТИЧЕСКАЯ ОШИБКА: Возможно запущенное ядро уже было удалено с момента последней загрузки. - Выполнение прервано.

19

AlexL⇓ пишет:

Отправьте всё ему на почту

Не совсем понимаю его адрес почты, на скрине → Barry Jackson • zen25000@zen.co.uk
то есть его почта → zen25000@zen.co.uk
или взять из man'а → barjac@mageia.org

Отправил на zen25000@zen.co.uk

20

AlexL⇓ пишет:

И desktop файл тоже надо перевести тогда уж.

Некто, под никнеймом glixx, уже отправил автору Pull requests с переводом файла.desktop, я вообще-то и сам хотел автору отпарвить, там всего-то надо пару строк перевести:

Comment[ru_RU]=Утилита для удаления устаревших ядер системы
GenericName[ru_RU]=Удаление устаревших ядер

А вот вторую извините ошибся,
- лучше не переводить строку с названием утилиты:

Name=Remove Old Kernels

Но glixx перевёл и её, и к тому же неправильно — " Удаление старых ядер ", вместо " Удаление устаревших ядер " neutral
Я уже объяснял, все программы во всех пакетных менеджерах имеют английское название, при надобности найти программу в пакетном менеджере и забыв её английское название (программ ведь много в меню) получаешь загадку-ребус по поиску нужной программы.

Например: в меню у меня есть "Менеджер архивов", но какое "родное" название у программы  я не знаю.
А далее надо делать лишние движения — запускаю утилиту → жму кнопку в ней "О приложении" → жму кнопку "Веб сайт" этой программы → далее жду запуска браузера и открытия страницы программы → и только тогда узнаю → о как я рад, это оказывается Fille Roller.

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

21

Мало ли чего. Задумано, что пользователю вообще не надо знать название пакета.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

22

моё предыдущее сообщение № 20 исправлено

AlexL⇓ пишет:

Задумано, что пользователю вообще не надо знать название пакета.

Вот именно, надо задумываться, но похоже не все это делают.
Например архиватор Ark локализован командой org.kde — ПРАВИЛЬНО:

GenericName[ru]=Архиватор
Name[ru]=Ark  (название программы осталось на английском языке)
Comment[ru]=Работа с архивами файлов

23

Правильно там всё переведено. Перевод комментария не может совпадать с именем, при этом перевод должен быть максимально коротким.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

24

Ark - это аббревиатура, смысл её переводить? А тут уже фраза, неясная без знания английского.

Разработчик, мейнтейнер, переводчик, по всем вопросам.

25

Переводы отправлены?

Разработчик, мейнтейнер, переводчик, по всем вопросам.