Как обновить все с помощью утилиты Topgrade CLI в Linux
Как мы все уже знаем, поддержание актуальности нашей системы Linux предполагает вызов более чем одного менеджера пакетов. Скажем, например, в Ubuntu вы не можете обновить все с помощью команды «sudo apt update && sudo apt update». Эта команда обновит только те пакеты, которые установлены с помощью менеджера пакетов APT. Есть вероятность, что вы установили другие приложения, используя cargo, pip, npm, snap, . > Flatpak или Linuxbrew менеджеры пакетов. Вам необходимо использовать соответствующий менеджер пакетов, чтобы постоянно обновлять их. Уже нет! Встречайте topgrade — утилиту, позволяющую обновить все за один раз с помощью одной команды.
Вам не нужно запускать каждый менеджер пакетов отдельно для обновления пакетов. Инструмент topgrade решает эту проблему, обнаруживая установленные пакеты, инструменты, плагины и запуская соответствующий менеджер пакетов, чтобы обновить все в вашем компьютере Linux с помощью одной команды. Он бесплатный, с открытым исходным кодом и написан с использованием языка программирования Rust. Он поддерживает GNU/Linux, Mac OS X, FreeBSD и Microsoft Windows.
Установка Топгрейда
Верхняя версия доступна в AUR. Таким образом, вы можете установить его с помощью вспомогательной программы Yay в любых системах на базе Arch.
yay -S topgrade
В других дистрибутивах Linux можно установить менеджер пакетов topgrade Cargo. Чтобы установить менеджер грузовых пакетов, перейдите по следующей ссылке.
- Установить язык программирования Rust в Linux
Затем выполните следующую команду для установки topgrade:
cargo install topgrade
Если метод Cargo по какой-либо причине не работает, загрузите последнюю версию двоичного файла topgrade со страницы релизов. На момент написания этого руководства последней версией была 2.2.0.
wget https://github.com/r-darwish/topgrade/releases/download/v2.2.0/topgrade-v2.2.0-x86_64-unknown-linux-gnu.tar.gz
Извлеките tar-файл:
tar xvf topgrade-v2.2.0-x86_64-unknown-linux-gnu.tar.gz
Скопируйте или переместите двоичный файл topgrade по своему пути, например /usr/local/bin/.
sudo mv topgrade /usr/local/bin/
Проверьте, правильно ли он установлен, как показано ниже.
$ which topgrade
/usr/local/bin/topgrade
Проверьте установленную версию:
$ topgrade -V
Topgrade 2.2.0
Обновите все с помощью Topgrade в Linux и Unix
После установки запустите утилиту topgrade, чтобы обновить все компоненты вашей системы Linux.
topgrade
После запуска topgrade он будет выполнять следующие задачи одну за другой в зависимости от используемой вами ОС. При необходимости вам будет предложено ввести пароль пользователя root/sudo.
В Linux:
1. Запустите менеджер пакетов вашей системы Linux и выполните следующие операции:
- На основе Arch: запустите ура или вернитесь к pacman
- На основе Redhat: запустите
yum update
(илиdnf
, если он есть). - На основе Debian: запустите
apt update && apt dist-upgrade
- Gentoo: запустите
layman -s ALL && expire --sync -q && eix-update && expire -uDNa world
- openSUSE: запустите
zypperrefresh&& zypper dist-upgrade
- Void: запустите
xbps-install -Su
2. Запустите etc-update.
3. Запустите неофициальные и сторонние менеджеры пакетов:
- Обновите пакеты Flatpak.
- Обновите пакеты snap.
- Запустите fwupdmgr, чтобы увидеть обновление прошивки. (Только просмотр. Фактически обновления выполняться не будут)
- Запустите
rpi-update
, чтобы обновить прошивку Raspberry Pi. - Запустите программу обновления pihole.
- Обновите Rustup, запустив
rustup update
. Также будет предпринята попытка запуститьсамообновление Rustup
, когда Rustup установлен в домашнем каталоге. - Запустите Cargo установить-обновить
- Обновите пакеты Emacs.
- Обновите пакеты OCaml.
- Обновите глобально установленные пакеты vcpkg.
- Обновите управляемые репозитории исходного кода myrepos.
- Обновите пакеты Python, установленные с помощью pipx.
- Обновите глобально установленные пакеты R.
-
Обновите пакеты Vim/Neovim. Работает со следующими платформами плагинов:
- Неопакет
- Вундл
- Подключите
- Дейн
Узел
- Запустите
глобальное обновление Yarn
, если Yarn установлен.
npm update -g
, если NPM установлен и npm root -g
— это путь внутри вашего домашнего каталога.глобальное обновление Composer
, если домашний каталог Composer находится внутри домашнего каталога пользователя. После этого запустите valet install
.обновление драгоценного камня --user-install
, если ~/.gem
существует.В Юниксе:
- Запустите
brew update && Brew update
. Это должно обрабатывать как Homebrew, так и Linuxbrew. - Запустите
nix update-nix && nix --upgrade
. - Запустите
обновление Pearl
. - Запустите обновление zplug.
- Обновите плагины tmux с помощью TPM.
Во FreeBSD:
- Пакеты обновления и аудита.
Разное (Эти действия будут выполняться на всех ОС)
Он проверит, отслеживаются ли следующие пути с помощью Git. Если да, потяните их:
- ~/.emacs.d
- ~/.zshrc
- ~/.о-мой-зш
- ~/.tmux
- ~/.config/рыба
- ~/.config/nvim
- ~/.vim
- ~/.config/openbox
- ~/.config/bspwm
- ~/.config/i3
- Профиль Powershell
- Пользовательские пути
Заключительные шаги
Как только все пакеты будут обновлены, Topgrade выполнит еще один последний шаг.
В Linux:
Утилита Topgrade запустит needrestart для перезапуска всех служб.
Во FreeBSD:
Topgrade запустит freebsd-upgrade
В Mac OS X будут обновляться приложения App Store.
Пример вывода из моего тестового окна Ubuntu 18.04 LTS:
Обновите все с помощью Topgrade в Linux и Unix.
Хорошо, что если одна задача не удалась, она автоматически запустит следующую задачу и выполнит все остальные последующие задачи. Наконец, он отобразит сводную информацию с подробностями, например, сколько задач было выполнено, сколько выполнено успешно, а сколько не выполнено и т. д.
Рекомендуем прочитать:
- Как обновить Ubuntu с помощью одной команды
- 3 различных способа обновления Ubuntu до последней версии
- Автоматическая установка обновлений и исправлений безопасности в Ubuntu
Варианты высшего класса
Tograde поставляется с несколькими опциями для выполнения различных дополнительных задач.
Запуск Topgrade внутри сеансов Tmux
Это удобно, когда вы используете Topgrade в удаленных системах.
Чтобы запустить Topgrade внутри сеанса Tmux, используйте флаг -t.
topgrade -t
Запустите Topgrade внутри сеанса Tmux
Удалите старые и ненужные файлы
Чтобы указать менеджерам пакетов очистить старые и неиспользуемые файлы, используйте флаг -c с topgrade:
topgrade -c
Отключить определенные этапы обновления
Иногда вы не хотите обновлять конкретный пакет. Если да, вы можете использовать опцию --disable
.
Например, пропустите обновление системы с помощью команды:
topgrade --disable system
Эта команда пропустит только этап обновления системы и обновит все остальное как обычно.
―― 11:39:48 - Self update ――――――――――――――――――――――――――――――――――――――――――――――――――――――
Topgrade is up-to-date
―― 11:39:50 - rustup ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
info: checking for self-updates
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: checking for self-updates
stable-x86_64-unknown-linux-gnu unchanged - rustc 1.35.0 (3c235d560 2019-05-20)
―― 11:39:52 - Node Package Manager ―――――――――――――――――――――――――――――――――――――――――――――
―― 11:40:08 - Summary ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Git repositories: OK
rustup: OK
NPM: OK
Пропустить обновление Emacs:
topgrade --disable emacs
Эта команда пропустит обновление пакетов Emacs и его файлов конфигурации.
Пропустить обновление Vim:
topgrade --disable vim
Пропустить обновление драгоценного камня:
topgrade --disable gem
Для получения более подробной информации проверьте раздел справки, выполнив следующую команду:
$ topgrade --help
Topgrade 2.2.0
Roey Darwish Dror <roey.ghost@gmail.com>
Command line arguments
USAGE:
topgrade [FLAGS] [OPTIONS]
FLAGS:
-c, --cleanup Cleanup temporary or old files
-n, --dry-run Print what would be done
-h, --help Prints help information
--no-retry Do not ask to retry failed steps
-t, --tmux Run inside tmux
-V, --version Prints version information
-v, --verbose Output logs
OPTIONS:
--disable <disable>... Do not perform upgrades for the given steps [possible values: gem, git-repos, vim,
emacs, system]
Лично мне понравилась идея создать такую утилиту, как topgrade и обновить все установленное с помощью различных менеджеров пакетов одной командой. Надеюсь, вы тоже найдете это полезным.
Ресурс:
- Лучший репозиторий GitHub