LINUX.ORG.RU
ФорумTalks

Gentoo: kernel-cleaner-2.4.5

 


0

0

Немного перепилил:

  • list теперь показывает помимо ядер и их приданного так же и имена пакетов
  • удалено --force-deps, т.к. теперь при удалении ядра всё его приданное теперь тоже удаляется.
  • при наличии овер 1 ядра, показывает установленные ядра и спрашивает - желаете ли удалить некоторые из них. на каждом следующем шаге из списка доступных для удаления ядер убираются варианты уже выбранные для удаления. если есть несколько ядер собранных из одних сорсов (имеют одну версию), то приданное не будет удалено до тех пор, пока есть хотя бы 1 ядро использующее его и не отмеченное для удаления

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

★★★★

Последнее исправление: megabaks (всего исправлений: 4)

Потыкаю. Благодарю, Мегабакс, за твои поделки, мне они довольно полезны. А glibc-downgrader меня однажды просто спас.

Fist
()

А что эта шняга делает?

J ★★★★
()

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

emerge -c разве не это делает?

J ★★★★
()
Ответ на: комментарий от J

ты хотя бы почитал что такое сабж и как работает
этот топик не первый о сабже
и таки emerge -c тут вообще никаким боком

megabaks ★★★★
() автор топика
Ответ на: комментарий от J

херовый ты гентушник:

Так как нет в этих ваших гентах ничего годного для очистки /boot, /lib/modules и /usr/src от шлака, запилил свою чистилку.
живёт тут.
Что умеет:
Находить и удалять ядра, у которых нет модулей и исходников.
Находить и удалять директории в /usr/src, в которых уже нет исходников (пакет удалён), а остался только мусор от сборки ядра.
Находить директории в /lib/modules, которыми ни одно ядро из /boot не пользуется.
Корректно работает с EXTRAVERSION.
Имя файла ядра не имеет значения (привет, eclean-kernel :3).
Имеет список игнорирования, куда можно занести как файлы, так и директории. Например для полностью монолитных ядер.
Так же есть возможность форсированного удаления файлов и директорий, независимо от их корректности
с ключом --pretend просто покажет что хочет удалить.
доступен в stuff, как sys-kernel/kernel-cleaner

это из блога - запись старая

megabaks ★★★★
() автор топика
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от megabaks

а то только флудишь

Больше не буду, не гневайся.

J ★★★★
()
Ответ на: комментарий от megabaks

Перед тем, как написать, я как раз layman -S прогнал. Было тихо. о_О

Сейчас прилетело.

shell-script ★★★★★
()
Ответ на: комментарий от megabaks

никто больше ничего не хочет сказать?

У меня правильно все определяет, проверял с --pretend. Правда, ситуация у меня простая: новое ядро прилетело, но лень собирать, сижу на старом.

iVS ★★★★★
()

я так и не вкурил, как в исключения запхать? я ядра всегда монолитно собираю, и мне очень надо.

даёшь маны!

funeralismatic ★★★
()
Ответ на: комментарий от funeralismatic

через пробел записать файлы ядра в конфиг!?

megabaks ★★★★
() автор топика
Ответ на: комментарий от megabaks

я заскриптовал сборку ядра :3

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

funeralismatic ★★★
()
Ответ на: комментарий от funeralismatic

я так и не вкурил, как в исключения запхать?

Судя по тому, что нашел в коде

ignore "${*}";
исключения передаются в самой строке.

iVS ★★★★★
()
Ответ на: комментарий от iVS

игнор передаётся через переменную, строку и конфиг

megabaks ★★★★
() автор топика
Ответ на: комментарий от funeralismatic

посмотри код
там есть уcтановка линка через ln

megabaks ★★★★
() автор топика
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от iVS

потому что oldconfig вопросы задаёт
а xconfig нет - на кастомном ядре изменения минимальны и не делают погоды
+ позволяет перенастроить ядро

megabaks ★★★★
() автор топика

Broken_sources

Как выясняется сломанность? У меня таких 4. Ключик для автоматического удаления пригодился бы.

varchar
()
Ответ на: Broken_sources от varchar

они и так удалятся при запуске с -r
сломанные - это значит остался только треш от сборки ядра - т.е. был пакет с сорсами, ты собрал из них ядро, пакет удалил - остались только временные файлы
это и есть сломанные сорсы - дира вроде бы и есть, а на самом деле там только мусор
но тому же eselect ты это не объяснишь
понимать?

megabaks ★★★★
() автор топика
Последнее исправление: megabaks (всего исправлений: 1)

Полезная штука, спасибо.

stage3 ★★
()
Ответ на: комментарий от megabaks

# kernel-cleaner --list

...
Broken_sources:
/usr/src/linux-2.6.31-gentoo-r10
/usr/src/linux-2.6.34-gentoo-r1
/usr/src/linux-3.2.1-gentoo-r2
/usr/src/linux-3.4.0-gentoo
...
# kernel-cleaner --run
Would you like remove some kernels? [Yes/No] n

Next files will be removed:
/boot/memdisk
/boot/mhdd.img
/boot/splashrd


Next directories will be removed:
/usr/src/linux-2.6.31-gentoo-r10
/usr/src/linux-2.6.34-gentoo-r1
/usr/src/linux-2.6.34-gentoo-r1-bfs
/usr/src/linux-3.2.1-gentoo-r2
/usr/src/linux-3.4.0-gentoo
/usr/src/linux-3.4.4-pf-note
/usr/src/linux-3.6.8-pf
/usr/src/linux-3.7.4-pf
/usr/src/linux-3.7.5-pf
/lib/modules/2.6.30-gentoo-r5
/lib/modules/2.6.30-gentoo-r5-xxx
/lib/modules/3.2.1-gentoo-r2-BFS
/lib/modules/3.3.3-pf-pf


Next packages will be removed:

sys-kernel/pf-sources-3.6.8
sys-kernel/pf-sources-3.7.4
sys-kernel/pf-sources-3.7.5

^C
Не очевидно же, что при ответе «n» что-то таки будет удалено. «Сломанных» исходников в списке не было, появились бы ниже? Я прервал. А этих:
/boot/memdisk
/boot/mhdd.img
/boot/splashrd
За что?

varchar
()
Ответ на: комментарий от varchar

за то что нет модулей и/или сорсов
для этого есть конфиг /etc/kernel-cleaner.conf
а в остальном нужен полный выхлоп
ну и при ответе «нет» очевидно, что ничего удалено не будет

megabaks ★★★★
() автор топика
Ответ на: комментарий от megabaks

Ага, ну если не удаляет, то и писать могла бы примерно так:

Next * may/might be removed:
А в общем спасибо за тулзу — хороший помощник!

varchar
()
Ответ на: комментарий от megabaks

никто больше ничего не хочет сказать?

программа нужная...Но я занимаюсь уборкой старых версий не чаще раза в год, и то, предпочитаю всё старье из /boot архивировать, делая пометки о умолчальных ядрах при загрузке.

Вряд ли ради столь редкого варианта тебе стоит перепиливать скрипт, а я пока не готов просто так удалять ядра, на допиливание которых до устраивающей меня рабочей конфигурации часто уходило очень много усилий :-)

argin ★★★★★
()
Ответ на: комментарий от argin

ну...в текущем варианте скрипт меня устраивает
потому бекап тоже не проблема запилить по аналогии с удаляемыми ядрами и приданным
на это просто нужно время - когда у меня ещё будет пара выходных...хз-хз

megabaks ★★★★
() автор топика
Ответ на: комментарий от megabaks

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

argin ★★★★★
()
Ответ на: комментарий от megabaks

объясняю на пальцах (ибо у меня только одни сорцы остались — 3.8.0):

качаем сорцы,

выставляем еселектом другую версию,

запускаем твой скрипт,

выбираем не_ту_версию,_которую_выбрали_только_что_вне_скрипта,

выполняем скрипт до конца,

а потом ls /boot | grep «версия_ядра,_которую_выбрали_В_СКРИПТЕ» и...

а нифига! не ту мы версию собрали... или ту, но не с тем именем?

funeralismatic ★★★
()
Ответ на: комментарий от funeralismatic

я не понял тебя
eselect рулит линком /usr/src/linux
причём здесь /boot?
ну и при установленном dkms-gentoo линк вернётся на сорсы загруженного ядра

megabaks ★★★★
() автор топика
Ответ на: комментарий от funeralismatic

с тобой флудил в джаббере :3

megabaks ★★★★
() автор топика

Привет, покажи как правильно запретить уничтожение одной из целей:

Next files will be removed:
/boot/config-3.7.4-pf
/boot/config-3.7.4-pf.old
/boot/config-3.8.0
/boot/config-3.8.0.old
/boot/config-3.8.1
/boot/System.map-3.7.4-pf
/boot/System.map-3.7.4-pf.old
/boot/System.map-3.8.0
/boot/System.map-3.8.0.old
/boot/System.map-3.8.1
/boot/vmlinuz-3.7.4-pf
/boot/vmlinuz-3.7.4-pf.old
/boot/vmlinuz-3.8.0
/boot/vmlinuz-3.8.0.old
/boot/vmlinuz-3.8.1


Next directories will be removed:
/usr/src/linux-3.7.3-pf
/usr/src/linux-3.7.4-gentoo
/usr/src/linux-3.7.4-pf
/usr/src/linux_git
/lib/modules/3.7.4-pf
/lib/modules/3.8.0
/lib/modules/3.8.1


Next packages will be removed:
sys-kernel/pf-sources-3.7.5
sys-kernel/vanilla-sources-3.8.0
sys-kernel/vanilla-sources-3.8.1
Хочу оставить только 3.8.1
Что такое «Unused_packages»?

deterok ★★★★★
()
Ответ на: комментарий от deterok

Что такое «Unused_packages»?

это пакеты с сорсами, из которых не было собрано_и_установлено в /boot ни одно ядро

покажи как правильно запретить уничтожение одной из целей:

в переменную IGNORE в /etc/kernel-cleaner.conf через пробел запиши путь до ядра
например IGNORE+=«/boot/vmlinuz-3.8.1»
если нужно больше - через пробел.

megabaks ★★★★
() автор топика
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от megabaks

ну или запусти как-то так

IGNORE="/boot/vmlinuz-3.8.1" kernel-cleaner -r
или
kernel-cleaner -r --ignore /boot/vmlinuz-3.8.1

megabaks ★★★★
() автор топика
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от shell-script

покажи-ка выхлоп

ls -d1 /usr/src/linux-*
и
ls -d1 /usr/src/*
ибо
[ root@desktop ] megabaks # kernel-cleaner -l
Kernels....                                                                                                                                              [ ok ]
Initrams...                                                                                                                                              [ ok ]
Configs....                                                                                                                                              [ ok ]
Maps.......                                                                                                                                              [ ok ]
Kernels:
/boot/3.7.5-pf                     3.7.5-pf
Modules:
/lib/modules/3.7.5-pf
Sources:
/usr/src/linux-3.7.10              3.7.10
/usr/src/linux-3.7.5-pf            3.7.5-pf
Packages:
sys-kernel/vanilla-sources-3.7.10  3.7.10
sys-kernel/pf-sources-3.7.5        3.7.5-pf
Unused_packages:
sys-kernel/vanilla-sources-3.7.10
[ root@desktop ] megabaks #

megabaks ★★★★
() автор топика
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от megabaks
$ ls -d1 /usr/src/linux-*
/usr/src/linux-3.6.11
/usr/src/linux-3.7.10
/usr/src/linux-3.7.9

Да, надо было наверное сразу полный вывод --list показать.

kernel-cleaner --list
Kernels....                                                                                                                                                                                          [ ok ]
Initrams...                                                                                                                                                                                          [ ok ]
Configs....                                                                                                                                                                                          [ ok ]
Maps.......                                                                                                                                                                                          [ ok ]
Kernels:
/boot/vmlinuz-3.6.11-cppmm-v23         3.6.11-cppmm-v23
/boot/vmlinuz-3.6.11-cppmm-v24         3.6.11-cppmm-v24
/boot/vmlinuz-3.6.11-cppmm-v24.old     3.6.11-cppmm-v24
/boot/vmlinuz-3.7.10-cppmm-v24         3.7.10-cppmm-v24
/boot/vmlinuz-3.7.10-cppmm-v24.old     3.7.10-cppmm-v24
/boot/vmlinuz-3.7.9-cppmm-v24          3.7.9-cppmm-v24
/boot/vmlinuz-3.7.9-cppmm-v24.old      3.7.9-cppmm-v24
Configs:                                                                                                                                                                                                   
/boot/config-3.7.10-cppmm-v24          3.7.10                                                                                                                                                              
/boot/config-3.7.10-cppmm-v24.old      3.7.10                                                                                                                                                              
/boot/config-3.7.9-cppmm-v24           3.7.9                                                                                                                                                               
/boot/config-3.7.9-cppmm-v24.old       3.7.9                                                                                                                                                               
Maps:                                                                                                                                                                                                      
/boot/System.map-3.6.11-cppmm-v23                                                                                                                                                                          
/boot/System.map-3.6.11-cppmm-v24                                                                                                                                                                          
/boot/System.map-3.6.11-cppmm-v24.old                                                                                                                                                                      
/boot/System.map-3.7.10-cppmm-v24                                                                                                                                                                          
/boot/System.map-3.7.10-cppmm-v24.old                                                                                                                                                                      
/boot/System.map-3.7.9-cppmm-v24                                                                                                                                                                           
/boot/System.map-3.7.9-cppmm-v24.old                                                                                                                                                                       
Modules:                                                                                                                                                                                                   
/lib/modules/3.6.11-cppmm-v23                                                                                                                                                                              
/lib/modules/3.6.11-cppmm-v24
/lib/modules/3.7.10-cppmm-v24
/lib/modules/3.7.9-cppmm-v24
Sources:
/usr/src/linux-3.7.10                  3.7.10
Broken_sources:
/usr/src/linux-3.6.11
/usr/src/linux-3.7.9
Packages:
3.7.10
sys-kernel/vanilla-sources-3.7.10      3.7.10
3.7.10
Unused_packages:
sys-kernel/vanilla-sources-3.7.10

shell-script ★★★★★
()
Ответ на: комментарий от shell-script
Broken_sources:
/usr/src/linux-3.6.11
/usr/src/linux-3.7.9

вот - надо учесть же...
ща подумаю и запилю

megabaks ★★★★
() автор топика
Ответ на: комментарий от Gorthauer

нет - написано же

TARGETS must be separated by SPACE.

это касается и конфига

megabaks ★★★★
() автор топика

При вот таком конфиге:

IGNORE+="/boot/mhdd.img /boot/memdisk /boot/splashrd /usr/src/linux-3.7.5-pf"
все-равно хочет снести /boot/memdisk и пакет sys-kernel/pf-sources-3.7.5. При ручном выборе одной цели на удаление, в списке не только она, а всё то, что считается трешем. Как снести только только то, что Я хочу? Не отвечай, снесу руками. Спасибо твоему скрипту за наводку на broken sources.

varchar
()
Ответ на: комментарий от megabaks

Смотри:# kernel-cleaner -r

Kernels....                                                                                                                                             [ ok ]
Initrams...                                                                                                                                             [ ok ]
Configs....                                                                                                                                             [ ok ]
Maps.......                                                                                                                                             [ ok ]

Exists kernels:

/boot/bzImage-2.6.31-gentoo-r10-CRYSTALMETH  2.6.31-gentoo-r10-CRYSTALMETH
/boot/bzImage-2.6.31-gentoo-r6-CRYSTALMETH   2.6.31-gentoo-r6-CRYSTALMETH
/boot/bzImage-2.6.34-gentoo-r1               2.6.34-gentoo-r1-CRYSTALMETH
/boot/bzImage-2.6.34-gentoo-r1-bfs           2.6.34-gentoo-r1-BFS
/boot/bzImage-3.2.1-gentoo-r2                3.2.1-gentoo-r2-KMS
/boot/linux-3.3.3-pf                         3.3.3-pf
/boot/linux-3.4.1-pf                         3.4.1-pf
/boot/linux-3.4.4-pf                         3.4.4-pf
/boot/memdisk                                MEMDISK

Would you like remove some kernels? [Yes/No] y
1) /boot/bzImage-2.6.31-gentoo-r10-CRYSTALMETH
2) /boot/bzImage-2.6.31-gentoo-r6-CRYSTALMETH
3) /boot/bzImage-2.6.34-gentoo-r1
4) /boot/bzImage-2.6.34-gentoo-r1-bfs
5) /boot/bzImage-3.2.1-gentoo-r2
6) /boot/linux-3.3.3-pf
7) /boot/linux-3.4.1-pf
8) /boot/linux-3.4.4-pf
9) /boot/memdisk
Choose kernel_file for remove: 1
More? [Yes/No] n
Ignoring:       /boot/mhdd.img
Ignoring:       /boot/memdisk
Ignoring:       /boot/splashrd
Ignoring:       /usr/src/linux-3.7.5-pf
Forcing remove: /boot/bzImage-2.6.31-gentoo-r10-CRYSTALMETH

Next files will be removed:
/boot/bzImage-2.6.31-gentoo-r10-CRYSTALMETH
/boot/memdisk


Next directories will be removed:
/usr/src/linux-2.6.31-gentoo-r10
/usr/src/linux-2.6.34-gentoo-r1
/usr/src/linux-2.6.34-gentoo-r1-bfs
/usr/src/linux-3.2.1-gentoo-r2
/usr/src/linux-3.4.0-gentoo
/usr/src/linux-3.4.4-pf-note
/usr/src/linux-3.6.8-pf
/usr/src/linux-3.7.4-pf
/lib/modules/2.6.30-gentoo-r5
/lib/modules/2.6.30-gentoo-r5-CRYSTALMETH
/lib/modules/2.6.31-gentoo-r10-CRYSTALMETH
/lib/modules/3.2.1-gentoo-r2-BFS
/lib/modules/3.3.3-pf-pf


Next packages will be removed:

sys-kernel/pf-sources-3.6.8
sys-kernel/pf-sources-3.7.4
sys-kernel/pf-sources-3.7.5

Would you like to remove this trash? [Yes/No]

varchar
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.