![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Поделиться |
![]()
Сообщение
#1
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 620 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Решил сделать небольшой sh скрипт для обновления ядра, так, чтоб не мучить пользователя лишними заботами и вопросами.
Пока накалякал такое... Код test-archives(){ DU=$(du -ms /var/cache/apt/archives | cut -f1) if (( "$DU" >= 3500 )); then echo "Объем archives превысил 3500 мегабайт" echo "Произвожу очистку" apt-get autoclean else echo "Очистка archives не требуется" fi } del-kernels(){ flavour_version_release="$(uname -r | awk -F- '{print $2"-"$3"-"$1"-"$4}')" old_kernels="$(rpm -qa | fgrep kernel-image | fgrep -v $flavour_version_release | tr '\n' ' ')" # calculate arguments for apt for kernel in $old_kernels do apt_args_list="$apt_args_list $(rpm -q --queryformat '%{NAME}#%{EPOCH}:%{VERSION}-%{RELEASE}\n' $kernel \ | sed -e "s,(none):,,g")" done # use sudo(1) if running as unprivileged user [ "$UID" = "0" ] && SUDO= || SUDO=sudo $SUDO apt-get remove -y $apt_args_list } up-kernel(){ echo "Обновление ядра" update-kernel -f echo "Перезагрузка произойдет через 15 секунд" sleep 15 reboot } kern-update(){ aptKERN=$(apt-cache show kernel-headers-std-def | grep -i 'Version: ' | cut -f3 -d : | cut -f1 -d - | sed 's/[^0-9]//g' | head -1) kVERS=$(uname -r | cut -f1 -d - | sed 's/[^0-9]//g') echo "Обновление списка пакетов apt-get update" apt-get update if (( "$aptKERN" > "$kVERS" )); then test-archives echo "Удаление старого ядра" del-kernels echo "Обновление пакетов дистрибутива" apt-get dist-upgrade -y up-kernel else echo "Обновление ядра не требуется" echo "Выход из программы через 5с" sleep 5 fi } kern-update Скрипт работает проверил, запускается через *.desktop Код Type=Application Categories=System;Utility;Archiving; Exec=/usr/bin/xdg-su -c 'xterm -e /opt/au-kernel/au-kernel.sh' Terminal=false Icon=/opt/au-kernel/img/img-au-kernel.png Name=au-kernel GenericName=update-kernel GenericName[ru]=Обновление ядра Linux Comment=update-kernel Comment[ru]=Использует команду update-kernel Сомневаюсь стоит ли его сделать для автозагрузки, чтоб если есть обновление появлялся значок в трее или это лишнее? Можно обновлятор сделать вместо синаптика, а то он тяжеловат. Значок соответствует процессу обновления ядра ![]() ![]() Скрип готов к тестированию, кто хочет может скачать, он упакован в архив там папка для картинок, логов , чтоб было удобно пользоваться, в архиве небольшая инструкция. https://yadi.sk/d/zffFtRhhjjDUd Замечания, предложения и т.д. ![]() Сообщение отредактировал Koi.v2 - 14.10.2015, 16:16 |
|
|
![]() |
![]()
Сообщение
#2
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 794 Регистрация: 9.7.2010 Вставить ник Цитата Пользователь №: 1865 Страна: Россия Город: Зарайск/Московской Пол: Муж. Репутация: ![]() ![]() ![]() |
А может для обновления ядра, вместо кода в самом скрипте, просто вызывать из скрипта update-kernel с опцией Yes ?
|
|
|
![]()
Сообщение
#3
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 620 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
А может для обновления ядра, вместо кода в самом скрипте, просто вызывать из скрипта update-kernel с опцией Yes ? Конечно можно. Но это сопряжено с вводом других команд и разруливанием разных нюансов. А так всем этим, ну ладно не всем, но основные проблемы разруливает скрипт. Кроме того если пользователь недавно перешел на линукс ему надо читать мануалы и боятся правильно ли он все сделал, а такие премудрости в 21 веке мне кажется отпугивают людей. ОС должна быть проста и удобна для пользователя. Фактически я хочу чтобы Альт был не только прикладной ОС (сервера, суперкомпьютеры), но и занял почетное место для пользовательских домашних систем, а это совсем другой уровень восприятия и комфортности. Это лично мое ИМХО. kostyalamer Прости пожалуйста, что так часто обновляют, но вот https://yadi.sk/d/zffFtRhhjjDUd Народу не понравилось, что он долго думает перед оповещением, теперь все происходит почти мгновенно. Насчет флауеров ядер. Скрипт настроен для работы со стабильным ядром р7 то есть с std-def, связано это с тем что он ищет обновленные заголовки kernel-headers-std-def. Если вы сменили ядро на допустим un-def то надо сказать об этом скрипту сделать команду Код sed -i 's/kernel-headers-std-def/kernel-headers-un-def/' /opt/au-kernel/au-kernel.sh Это работает с любыми ядрами алт, просто замените /kernel-headers-un-def/' на свое. Пока думаю как сделать универсальность с kernel-headers-$(" ") проблемка. |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 6.7.2025, 15:36 |