Алексей Федорчук
Повседневные задачи по сопровождению настольной системы включают в себя проверку обновлений пакетов и, при их наличии, установку оных, а также очистку системы от отходов жизнедеятельности («осиротелых» зависимостей, конфигов удалённых пакетов, и так далее). Действия эти выполняются или вручную, командами соответствующего назначения, или наборами утилит, специфичных для отдельных дистрибутивов (такими славится Linux Mint и LMDE), или комплексными утилитами, ориентированными на семейства родственных дистрибутивов, например, Ubuntu.
К числу последних принадлежит и героиня данного очерка — uCareSystem Core, или попросту ucaresystem-core
. Это — запускаемый из командной строки сценарий, который обновляет локальный кэш пакетов, скачивает и устанавливает обновления, удаляет старые ядра, «заброшенные» пакеты и конфиги. И проделывает всё это автоматически, без вмешательства применителя, однако абсолютно прозрачно и понятно для него.
Узнал об утилите ucaresystem-core
с подачи старого своего товарища Владимира Попова (за что, пользуясь случаем, выражаю ему свою признательность), я начал применять её в повседневной жизни. И в конце концов решил включена в грядущие релизы Cintu.
В официальном репозитории Ubuntu утилиты ucaresystem-core
, она имеет место быть в собственном PPA-репозитории, содержащем версии для релизов от Precise до Xenial включительно. Версии для Yakkaty (пока?) нет. Подключается этот репозиторий обычным образом, и столь же обычно утилита из него устанавливается:
$ sudo -s # add-apt-repository ppa:utappia/stable # apt update # apt install ucaresystem-core # exit
После чего утилиту можно запустить с правами администратора:
$ sudo ucaresystem-core
И затем в течении пяти секунд наблюдается следующая картина:
А затем начинается работа сценария. Сначала обновляется локальный кеш пакетов, то есть, попросту говоря, выполняется команда apt update
. Если в ходе этого были обнаружены обновлённые пакеты, то начинается
Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Расчёт обновлений… Готово
После чего происходит обновление системы (то есть выполнение команды apt upgrade
).
Далее система проверяется на предмет неиспользуемых пакетов, то есть «осиротелых» зависимостей. И при обнаружении таковых они удаляются — это работает команда apt autoremove
.
Вслед за тем наступает время проверки системы с точки неиспользованных ядер. И если таковые обнаруживаются — удалению подлежат все, кроме активного и предпоследнего, вместе с сопутствующими компонентами (файлами initrd
, System.map
и так далее, а также соответствующими каталогами в /lib/modules/
).
Следующий шаг — выявление и удаление конфигурационных файлов, оставшихся от удалённых пакетов. И завершается работа сценария очисткой системы от пакетов, скачанных в ходе их установки и обновления, то есть выполнение команды apt clean
.
Таким образом, утилита ucaresystem-core
выполняет все нужные для поддержания целостности и чистоты системы манипуляции. И при этом не делает ничего лишнего, непонятного или, паче того, противоестественного. Что и позволяет рекомендовать её к повседневному употреблению.
Должно ли apt-upgrade команды
$ sudo ucaresystem-core
соответствовать работе менеджера обновлений mintupdate?
ПОСЛЕ:
Finished updating package lists
ПИШЕТ
apt
Usage: apt command [options]
apt help command [options]…..
и т.д. -полный вывод команды apt —help (ВСЕГО 2 РАЗА).
Это всё, apt-upgrade не выполняется, также в mintupdate ничего не меняется (обновлённые пакеты не устанавливаются).
Алексей, по идее, соответствовать не обязаны: apt в Ubuntu и apt в Mint’е — абсолютно разные утилиты. Подозреваю, что надо править какие-то мелочи в скрипте.
СПАСИБО, НЕ ОБРАТИЛ ВНИМАНИЕ НА РАЗНИЦУ UBUNTU ↔ LM.
Видимо вы правы
$ cat /usr/bin/ucaresystem-core
……………………………………………..
# System : Debian Linux and Ubuntu Linux
………………………………………………………….
## Updates packages and libraries
sudo apt -y full-upgrade;
echo
…………………………………………………………………
В LM должно быть „apt upgrade“ либо „apt dist-upgrade“. ОПЦИЯ „-y“ неясна, надо почитать.
Спасибо,очень пригодилась утилита!