sudo apt-get update无法更新_如何在Linux中使用Topgrade命令行工具更新所有软件包

59adb34f0e5a2c839173b37989f75b6f.gif

本文翻译自: How To Upgrade Everything Using Topgrade CLI Utility In Linux

译者:OpenView

校对:OpenView

原文地址:https://www.ostechnix.com/how-to-upgrade-everything-using-a-single-command-in-linux/

3bbed0fdd1a2cb65ee8d8a52754231c2.png

我们都知道,要保持我们的Linux系统为最新状态需要使用不止一个包管理器。例如,在Ubuntu你不能仅仅通过下面的命令来更新所有的东西:

sudo apt update && sudo apt upgrade

因为上面的命令仅会更新使用apt包管理器安装的软件。而很有可能你还安装了其它的应用比如cargo、pip、npm、snap、flatpak或者Linuxbrew等包管理器。你需要使用其各自的更新命令来保持它们都是最新的。

现在不用那么麻烦了! 向"topgrade"说你好吧,它是一个使用单个命令来更新所有东西的命令行工具。

你不再需要单独运行每一个包管理器来更新软件包了。topgrade工具解决了该问题,方法是探测系统上安装了的软件包、工具、插件并运行合适的包管理器来更新你的Linux上的软件包。该工具是免费、开源的,使用Rust语言编写。其支持GNU/Linux、Mac OS X、FreeBSD和Microsoft Windows。

安装Topgrade

topgrade在archlinux的用户软件源中。因此,在基于archlinux的系统上你可以通过Yay助手程序来很容易地对其进行安装。

yay -S topgrade

在其它Linux发行版上,topgrade可以通过Cargo包管理器安装。要安装cargo包管理器,请参考下面的链接:

  • Install Rust Programming Language In Linux

然后,运行下面的命令来安装topgrade:

cargo install topgrade

如果cargo这个方式处于某种原因不能正常工作,可以从topgrade的发行页面下载二进制程序,类似下面这样:

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二进制文件拷贝到你的path中,例如/usr/local/bin:

sudo mv topgrade /usr/local/bin

检查是否如下被正常安装:

$ which topgrade/usr/local/bin/tograde

检查安装的版本:

$ topgrade -VTopgrade 2.2.0

使用Topgrade来更新Linux/Unix中的所有软件包

一旦安装好了Topgrade,就可以运行该工具来更新你的Linux系统上的软件包了:

topgrade

一旦topgrade被唤醒,其将一条一条地执行下面的任务,并取决于你的操作系统。需要的时候,你得输入root/sudo密码。

在Linux上:

  1. 运行你的系统包管理器,并作如下操作:
  • 基于Arch的系统: 运行yay或者pacman
  • 基于Redhat的系统: 运行yum upgrade或者dnf
  • 基于Debian的系统: 运行apt update && apt dist-upgrade
  • 基于Gentoo的系统: 运行layman -s ALL && emerge --sync -q && eix-update && emerge -uDNa world命令
  • 基于openSUSE的系统: 运行zypper refresh && zypper dist-upgrade命令
  • 基于Void的系统: 运行xbps-install -Su

2.运行etc-update

3.运行非官方和第三方包管理器:

  • 更新Flatpak软件包
  • 更新snap软件包
  • 运行fwupdmgr来显示固件更新
  • 运行rpi-update来更新Raspberry Pi固件
  • 运行pihole更新器
  • 更新Rustup,运行rustup update。这将会师徒运行rustup self update,当Rustup是安装在home中的时候
  • 运行Cargo的install-update
  • 更新Emacs包
  • 更新OCaml包
  • 更新vcpkg全局安装的包
  • 更新myrepos管理的源码仓库
  • 使用pipx更新安装的Python包
  • 更新R安装的全局包
  • 更新Vim/Neovim包。以及下面这些插件框架:
  • NeoBundle
  • Vundle
  • Plug
  • Dein
  • Node
  • 运行yarn global update,如果yarn被安装过
  • 运行npm update -g,如果NPM被安装,而且npm root -g是一个位于你的home目录的路径
  • 运行composer global update,如果Composer的home目录在用户home目录之下。然后运行valet install
  • 更新Atom的包
  • 运行gem upgrade --user-install,如果存在~/.gem

在Unix上:

  • 运行brew update && brew upgrade。这将同时处理Homebrew和Linuxbrew
  • 运行nix upgrade-nix && nix --upgrade
  • 运行Pearl更新pearl update
  • 使用TPM更新tmux插件

在FreeBSD上:

  • 更新并统计软件包

其它(这些步骤在所有的操作系统上都会被执行)

它将会检查是否下面的路径被Git追踪。如果是,将会对其进行pull:

  • ~/.emacs.d
  • ~/.zshrc
  • ~/.oh-my-zsh
  • ~/.tmux
  • ~/.config/fish
  • ~/.config/nvim
  • ~/.vim
  • ~/.config/openbox
  • ~/.config/bspwm
  • ~/.config/i3
  • Powershell Profile
  • Custom defined paths

最后一步

一旦所有的包都被更新了,Topgrade将会再多做一步:

在Linux上

Topgrade工具将运行needrestart来重启所有服务。

在FreeBSD上

Topgrade将运行freebsd-upgrade

在Mac OS X上

其将运行App Store应用。

下面是Ubuntu 18.04的输出示例:

6afcdd86a12b3cdb0b7bb45cef75de1b.png

好消息是,如果一个任务失败了,其将自动运行下一个命令并完成所有其它接下来的任务。最终,其将展示汇总信息,包括其运行了多少个任务,有多少个成功多少个失败等。

5b81403a33a213fdf987d9e541a9a44b.png

Topgrade选项

Topgrade具有一些选项来执行各种额外的任务。

在Tmux会话中运行Topgrade

这对于在远端系统上使用Topgrade的时候很方便。

要在一个Tmux会话中启动Tmux会话,使用-t参数:

topgrade -t
b61398fec68f2b4fa3acf33741ff8552.png

移除旧的和不需要的文件

要通知包管理器来清理旧的和不再使用的文件,使用-c参数:

topgrade -c

禁用特定的更新步

有时候,你不想更新一个特定的软件包。如果这样,你可以使用disable选项。

例如,跳过系统更新可以使用下面的命令:

topgrade --disable system

这个命令将会仅仅跳过系统更新阶段,且会照常更新其它的东西。

―― 11:39:48 - Self update ――――――――――――――――――――――――――――――――――――――――――――――――――――――Topgrade is up-to-date​―― 11:39:50 - rustup ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――info: checking for self-updatesinfo: 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: OKrustup: OKNPM: OK

跳过Emacs更新 :

topgrade --disable emacs

这个命令将会跳过更新Emacs包以及配置文件。

跳过Vim更新:

topgrade --disable vim

跳过gem更新:

topgrade --disable vim

要了解更多细节,通过运行下面的命令来查看帮助信息:

$ topgrade --helpTopgrade 2.2.0Roey Darwish Dror 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 ... Do not perform upgrades for the given steps [possible values: gem, git-repos, vim,emacs, system]

个人来说,我喜欢类似于topgrade这样的工具的创建,能够通过一个单一的命令更新系统上的所有东西。希望你也能发现这很有用。

更多关于Linux日常使用经验和趣谈的文章(点击跳转)

百度网盘发布了Linux版,你怎么看

解决Linux下WPS无法使用fcitx搜狗拼音

Linux下使用搜狗输入法键入中文

Linux下挂载使用Windows的NTFS分区

Linux下使用redshift来启用护眼模式

Linux使用图形界面连接WiFi

Linux中使用snap和flatpak来安装和管理应用程序

Linux下常用的图形应用下载工具

Linux下制作系统的U盘启动盘

用Youtube-dl下载视频:新手示例(上)

用Youtube-dl下载视频:新手示例(中)

用Youtube-dl下载视频:新手示例(下)

喜欢使用Linux办公、学习、hack的朋友们可以点击关注小编,小编将竭力提供更多内容给大家交流~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值