![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Поделиться |
![]()
Сообщение
#1
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 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
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 800 Регистрация: 9.7.2010 Вставить ник Цитата Пользователь №: 1865 Страна: Россия Город: Зарайск/Московской Пол: Муж. Репутация: ![]() ![]() ![]() |
ИМХО Как вариант, можно попробовать прикрутить это решение к уже существующему apt-индикатору. По дефолту индикатор проверяет обновление, но при выборе автоустановки всё равно требует ряд ручных шагов, а если прикрутить к нему это изменение (полноценную автоустановку), тогда он сможет делать автообновление в нужном режиме, без ручных операций, подтвердил пользователь , что согласен с полным автообновлением и индикатор всё обновил автоматом и пакеты и ядро.
|
|
|
![]()
Сообщение
#3
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Убрал строчки sh /, они ссылались на файлы которые только у меня есть. Щас скрипт полностью самодостаточен можно копировать и проверить на виртуалке например.
Добавил еще удаление старых ядер, скрипт оставляет на пк 2 ядра свежее и предыдущее. Используется remove-old-kernels. Если вам нужно больше 2х ядер на пк то просто удалите строчку с командой: del-kernels из функции kern-update. ИМХО Как вариант, можно попробовать прикрутить это решение к уже существующему apt-индикатору. По дефолту индикатор проверяет обновление, но при выборе автоустановки всё равно требует ряд ручных шагов, а если прикрутить к нему это изменение (полноценную автоустановку), тогда он сможет делать автообновление в нужном режиме, без ручных операций, подтвердил пользователь , что согласен с полным автообновлением и индикатор всё обновил автоматом и пакеты и ядро. Была идея адаптировать его для автозагрузки как раз с функцией обновления, а синаптик выключить вообще. Преимущество скрипта, проверка мгновенная, ресурсы пк почти не тратит. Но как-то в сомнениях насколько это нужно. Многие вообще против автоматизации ядра. Мне просто лень делать все в ручную, так что если кому тоже лень пусть пользуются. ![]() Сообщение отредактировал Koi.v2 - 13.10.2015, 17:48 |
|
|
![]()
Сообщение
#4
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Немного поправил, а то он путался когда было много вариантов, щас все пучком.
|
|
|
![]()
Сообщение
#5
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Скрип готов к тестированию, кто хочет может скачать, он упакован в архив там папка для картинок, логов , чтоб было удобно пользоваться, в архиве небольшая инструкция.
https://yadi.sk/d/zffFtRhhjjDUd |
|
|
![]()
Сообщение
#6
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 800 Регистрация: 9.7.2010 Вставить ник Цитата Пользователь №: 1865 Страна: Россия Город: Зарайск/Московской Пол: Муж. Репутация: ![]() ![]() ![]() |
Но как-то в сомнениях насколько это нужно. "Ты не сомневайся, ты делай, а там посмотрим, кому впарить ....." С ![]() Лично мне бы такой вариант индикатора пригодился. По аналогии с Виндой, если человек хочет обновление , но не знает как правильно это делать, такой автоматический вариант был бы весьма уместен. Что-бы не ломать привычную систему, можно сделать отдельный пакет с модернизированным индикатором. |
|
|
![]()
Сообщение
#7
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1826 Регистрация: 28.7.2010 Вставить ник Цитата Из: Берислав, Херсонщина Пользователь №: 1879 Страна: Украина Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
А не проще ли на том же "Xdialog" сделать обертку для update-kernel?
-------------------- |
|
|
![]()
Сообщение
#8
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Не, это скучно, я щас qt приделал, смотрю как оно.
![]() Получилось красиво, но не внушительно, все же qt для чего-то более матерого. Оставлю как вариант. Думаю может просто в терминале диалог сделать, так функциональнее будет. Сообщение отредактировал Koi.v2 - 20.10.2015, 0:05 |
|
|
![]()
Сообщение
#9
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Появилось время наконец, доделал и дотестил.
Drool полностью прав, делать большой интерфейс к маленькому скрипту нет смысла, сделал по совету с окошками zenity. Кнопок теперь нет тех, что были в гуи qt, оставил диалоги и процесс бар. А и rpm пакет сделал для удобства установки. Еще подумаю, может добавлю что-то. Для тестов. https://yadi.sk/d/zffFtRhhjjDUd Сообщение отредактировал Koi.v2 - 8.11.2015, 22:20 |
|
|
![]()
Сообщение
#10
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4403 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Уехал в нашу 7-ую 32-битную репу.
|
|
|
![]()
Сообщение
#11
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Не потравился людям таймер перезагрузки, убрал таймер и сделал обычную кнопку. Распознавание ядер улучшил.
https://yadi.sk/d/zffFtRhhjjDUd |
|
|
![]()
Сообщение
#12
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4403 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
В 7-ой 32-битной репе
![]() |
|
|
![]()
Сообщение
#13
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 800 Регистрация: 9.7.2010 Вставить ник Цитата Пользователь №: 1865 Страна: Россия Город: Зарайск/Московской Пол: Муж. Репутация: ![]() ![]() ![]() |
А может для обновления ядра, вместо кода в самом скрипте, просто вызывать из скрипта update-kernel с опцией Yes ?
|
|
|
![]()
Сообщение
#14
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 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-$(" ") проблемка. |
|
|
![]()
Сообщение
#15
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4403 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Ничего страшного, нормальный творческий процесс ![]() |
|
|
![]()
Сообщение
#16
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Версия 0.5
https://yadi.sk/d/zffFtRhhjjDUd Работает быстрее насколько позволяет apt, учтено возникновение нештатных ситуаций, допустим снаптик мешает работать apt и прочие, а так же теперь не нужно в ручную указывать тип ядра если он отличен от стандартного, все само определяется и делается. Кроме классических ошибок, решение каких проблем еще добавить? |
|
|
![]()
Сообщение
#17
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
https://yadi.sk/d/zffFtRhhjjDUd
Версия 0.6 Исправил остановку работы скрипта если обнаружены одинаковые модули. |
|
|
![]()
Сообщение
#18
|
|
Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 628 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Версия 1.0
https://yadi.sk/d/zffFtRhhjjDUd Программка готова и полностью выполняет задуманное. Идеи, критика и пожелания по прежнему принимаются. |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 30.3.2023, 5:35 |