- **只检查,不更新**
` sudo apt update`
- **检查更新软件包**
`sudo apt upgrade`
本机采用ubuntu16.04系统,
用`sudo apt update && sudo apt upgrade -y`
可将系统更新到最新的ubuntu 16.04.03。
- 在 Ubuntu 中,你无法使用 sudo apt update(**只检查,不更新**) 和 sudo apt upgrade(**更新软件包**) 命令升级**所有**软件。此命令仅升级使用 APT 包管理器安装的应用程序。
- 你有可能使用 cargo、pip、npm、snap 、flatpak 或 Linuxbrew 包管理器安装了其他软件。你需要使用相应的包管理器才能使它们全部更新。
## **topgrade-升级所软件包**
- 这是一个可以一次性升级系统中所有软件的工具。
- 无需运行每个包管理器来更新包.topgrade 检测已安装的软件包、工具、插件并运行相应的软件包管理器更新 Linux 所有软件,一条命令解决问题
- 它是自由而开源的,使用 rust 语言编写。它支持 GNU/Linux 和 Mac OS X.
### **在 Linux 中使用一个命令升级所有软件**
topgrade 存在于 AUR 中。因此,你可以在任何基于 Arch 的系统中使用 Yay 助手程序安装它。
`> $ yay -S topgrade`
在其他 Linux 发行版上,你可以使用 cargo 包管理器安装 topgrade。
然后,运行以下命令来安装 topgrade。
`> $ cargo install topgrade`
安装完成后,运行 topgrade 以升级 Linux 系统中的所有软件。
`> $ topgrade`
一旦调用了 topgrade,它将逐个执行以下任务。如有必要,系统会要求输入 root/sudo 用户密码。
1、 运行系统的包管理器:
* Arch:运行 yay 或者回退到 pacman
* CentOS/RHEL:运行 yum upgrade
* Fedora :运行 dnf upgrade
* Debian/Ubuntu:运行 apt update 和 apt dist-upgrade
* Linux/macOS:运行 brew update 和 brew upgrade
2、 检查 Git 是否跟踪了以下路径。如果有,则拉取它们:
* ~/.emacs.d (无论你使用 Spacemacs 还是自定义配置都应该可用)
* ~/.zshrc
* ~/.oh-my-zsh
* ~/.tmux
* ~/.config/fish/config.fish
* 自定义路径
3、 Unix:运行 zplug 更新
4、 Unix:使用 TPM 升级 tmux 插件
5、 运行 cargo install-update
6、 升级 Emacs 包
7、 升级 Vim 包。对以下插件框架均可用:
* NeoBundle
* Vundle
* Plug
8、 升级 npm 全局安装的包
9、 升级 Atom 包
10、 升级 Flatpak 包
11、 升级 snap 包
12、 Linux:运行 fwupdmgr 显示固件升级。 (仅查看。实际不会执行升级)
13、 运行自定义命令。
最后,topgrade 将运行 needrestart 以重新启动所有服务。在 Mac OS X 中,它会升级 App Store 程序。
我的 Ubuntu 18.04 LTS 测试环境的示例输出:
![640?wx_fmt=png]()
好处是如果一个任务失败,它将自动运行下一个任务并完成所有其他后续任务。最后,它将显示摘要,其中包含运行的任务数量,成功的数量和失败的数量等详细信息。
![640?wx_fmt=png]()
*****

- **注意事项:** 不能随意使用sudo apt upgrade -y命令

Ubuntu总是认为:最新的软件就是最好的软件,建议用户安装使用。直接使用sudo apt update && sudo apt -y upgrade,就会将本机已安装的软件全部更新到最新!

但是在实际工作中并不总是这样,K8S v1.6.6版本只支持Docker v1.12.3版本,即K8S依赖于某一特定版本的Docker,不支持最新版本的Docker。因此要想在Docker上部署K8S v1.6.6就不能ubuntu系统中随意使用sudo apt upgrade -y 命令。