Начну с того, что при выборе дистрибутива долгое время я отдавал предпочтение дистрибутивам похожим по своей внутренней философии на Linux Mint, Sparky, MX Linux. То есть в них предустановлены и программы, а так же утилиты обслуживания дистрибутива. Но со временем я пришел к тому, что стал использовать минимально оснащенные дистрибутивы Linux, в которых была так называемая базовая система с графической подсистемой, но без необходимых для десктопа программ. Нужные мне программы я до устанавливал из репозитория, и это было хорошо. Но только вот в этих базовых системах отсутствовала утилита, которая следит за обновлениями. И через некоторое время мне пришлось написать простой скрипт который это делает.
Скрипт работает так: при загрузке системы, через 3 минуты после этого, опрашивает apt, если пришли обновления; при наличии обновлений, воспроизводится звуковой сигнал характерный для этого события; и открывается окно терминала, со списком обновлений и предложением их установить.
При отсутствии обновлений воспроизводится другой звуковой сигнал, более короткий, и на экран ничего не выводится.
Хочу добавить, сама утилита состоит из двух скриптов. Первый скрипт производит проверку обновлений; второй скрипт выводит окно терминала и выполняет эти обновления. Также нам необходимо создать desktop файл, для размещения первого скрипта в ~/.config/autostart. Условие: оба скрипта нужно поместить по пути ~/.local/bin/new_updater/
Первый скрипт с именем upd_ceck.sh:
#!/bin/bash
sleep 3m
cd ~/.local/bin/new_updater/
echo "ПРОВЕРИМ_ОБНОВЛЕНИЯ?"
sleep 5
echo "<пароль>" | sudo -S apt update
echo "<пароль>" | sudo -S apt list --upgradable | grep -v Listing >up_lst.txt
a="$(cat ./up_lst.txt)"
if [ -n "$a"]
then
export DISPLAY=:0 && xterm -e 'sh/home/user/.local/bin/new_updater/upd_exec.sh'
else
paplay /usr/share/sounds/freedesktop/stereo/dialog-error.oga
echo "ОБНОВЛЕНИЙ_НЕТ"
sleep 6
fi
Замечания по первому скрипту: вместо <пароль> введите пароль вашего пользователя. Не стоит этого опасаться, он никуда не отсылается, тем более что по тексту скрипта это читается.
Еще замечание по первому скрипту: если у вас система локализована, то есть язык системы русский, то в строке
echo"<пароль>" | sudo -S apt list --upgradable |grep -v Listing >up_lst.txt
вместо <Listing> пишем <Вывод>
Теперь привожу код второго скрипта который с именем upd_exec.sh:
#!/bin/bash
paplay /usr/share/sounds/freedesktop/stereo/service-login.oga
Y="y"
echo "ОБНОВЛЯЮ СПИСОК ПАКЕТОВ ИЗ РЕПЫ"
echo "<пароль>" | sudo -S apt update
echo "ДЛЯ ОБНОВЛЕНИЯ СЛЕДУЮЩИЕ ПАКЕТЫ"
echo "<пароль>" | sudo -S apt list --upgradable
echo "ХОТИТЕ ОБНОВИТЬ СИСТЕМУ="Y", НЕТ ЛЮБУЮ БУКВУ"
read qu
if [ "$qu"= "$Y" ]; then
echo "<пароль>" | sudo -S apt dist-upgrade
echo "<пароль>" | sudo -S apt autoremove
echo "СИСТЕМА ОБНОВЛЕНА"
sleep 6s
echo " "
else
echo " ВЫ ОТКАЗАЛИСЬ ОТ ОБНОВЛЕНИЯ"
sleep 6
echo " "
fi
Теперь привожу код desktop-файла который нужно поместить в ~/.config/autostart:
[DesktopEntry]
Type=Application
Name=Updater
Exec=/home/user/.local/bin/new_updater/upd_cech.sh
Categories=System;
Даем имя этому desktop-файлу upd.desktop и помещаем его, как сказал выше, в ~/.config/autostart
не забываем, что в строке Exec=/home/user/.local/bin/new_updater/upd_cech.sh вместо <user> пишем имя вашего пользователя.
И последнее. В каталоге ~/.local/bin/new_updater/ создаем текстовый файл с именем up_lst.txt. Этот текстовой файл необходим для сохранения списка обновляемых файлов, и нужен скриптам.
Если вы всё сделаете правильно, как указано в статье, то получите универсальный дистронезависмый инструмент, если в системе нет apt то, скорректировав скрипт под пакетный менеджер дистрибутива, можно автоматизировать процесс обновления на любом linux дистрибутиве.
Upd: Этой статьёй начинаю небольшой цикл по скриптам, у меня их слегка накопилось. И очень надеюсь, что другие пользователи откликнутся, присоединятся и начнут публиковать свои скрипты.
Комментарии
16:37
А если установить libnotify (при её отсутствии), то уведомления можно слать на рабочий стол более элегантно через notify-send. Либо через Zenity/Qarma отработать варианты: обновлять или нет!
P.S.: а что касаемо самих скриптов, то они не универсальны (x11, один монитор, наличие puls'ы и xterma обязательно), переменная "Y" явно лишняя, но кому нужно - подправят.
20:56
согласен действительно завязано на x11, один монитор, наличие puls'ы и xterma и с переменой Y избыточно применил, но скрипт работает и делает свое дело, если бы я сегодня сел писать этот скрипт то завернул бы вывод результата проверки в /dev/null и присвоил бы этот результат переменой, то есть таким образом избавился от лишнего списка up_lst.txt , то есть скрипт можно улучшить, что возможно кто-то и сделает основываясь на него.
17:25
20:58
21:27
23:43
Вопросик к Вам и не по теме,
а именно:
1-Есть для Винды прога...Тундра...игра с роботом в шашки,
а есть ли точно такая прога...или подобная...Но для Линукс ???
С Уважением !
13:35
Либо я вопроса не понял, либо зачем мне его задавать? Можно же было самому воспользоваться поисковиком с запросом "checkers Linux"
https://aur.archlinux.org/packages/qcheckers
20:08
ucaresystem-core. При запуске из терминала последовательно выполняет : update, upgrade, autoremove, clean.
10:27
upd: Конкретно ucaresystem-core указанная вами использует системные утилиты, то есть в зависимостях apt, deborphan, lsb-release, xterm то есть всё это есть в системе, я опробую её в виртуалке, интересно стало ,спасибо!
upd2: ucaresystem-core при установке притянуло deborphan , xterm был у меня установлен, весьма неплохо отработало, но всё равно я буду использовать свой скрипт :) , ибо он проще а делает все то же самое.
22:30
13:12
15:59