一个命令来更新Ubuntu中的所有内容?


15

我知道有三个命令可以更新然后升级整个系统,分别是:

  • sudo apt-get update#获取可用更新列表
  • sudo apt-get upgrade#严格升级当前软件包
  • sudo apt-get dist-upgrade#安装更新(新的)

是否有所有这些命令组合为一个的超级升级命令?


1
不,您最多只能做sudo apt-get update && sudo apt-get dist-upgrade
heemayl 2016年

它仍然是一个命令行! ;-)
Fabby

对于有一天会迷失这个问题的人,这里有一个相关的话题update,可以upgrade作为一个单行参考askubuntu.com/a/1086022/295286
Sergiy Kolodyazhnyy

Answers:


23

有3种体面的选择:

  1. 您可以创建类似以下内容的脚本:

    #!/bin/bash
    set -e
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade

    调用它update.sh并将其放入/usr/local/bin,然后通过运行以下命令使脚本可执行:

    sudo chmod +x /usr/local/bin/update.sh
  2. 另一种方法是(在中~/.bashrc)或通常存储别名的位置创建bash 别名:

    alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade'
  3. 最后一种方法是简单地在命令行上将3个命令串在一起:

    sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

几种选择...

参考:


6
当您使用时dist-upgrade,没有必要做upgrade事先
准备。.– heemayl

3
@heemayl:理论上是。实际上,在某些极端情况下,直接dist-upgrade可能会失败,但upgrade随后dist-upgrade不会失败。这在很大程度上是由于程序包依赖项定义错误或混合了来自不同发行版/发行版/ PPA的程序包所致。如果一个人仅使用Canonical官方存储库中的某个版本的软件包(默认值),则此类错误应极为少见并应迅速修复。
David Foerster,2016年

2
还有#3 的印象深刻的朋友变体:for x in update {,dist-}upgrade; do sudo apt $x; done
Eli Barzilay,

1
在步骤1中,“ set -e”做什么?
karjedavpalaa

8

我们可以使用单线命令(无需脚本,只需复制粘贴)

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
  • update -更新软件包列表,但不安装
  • upgrade -如果有新版本的软件包,请安装新版本的软件包
  • full-upgrade -执行升级功能,但如果需要将当前安装的软件包升级到整个系统(则修复不良依赖关系)
  • autoremoveautoclean以及clean-这是不需要任何更多的干净的旧包
  • 该选项-y并不要求每一步都允许

7

如果您对太多的输入感到烦恼,可以将自己定义为“别名”。例如,可以通过在您的行尾添加一行这样来完成$HOME/.profile

alias sau='sudo aptitude update && sudo aptitude upgrade'

(当然,您可以将“ sau”替换为其他内容-对我来说,这是Sudo Apt-get Update的首字母缩写)。保存文件后,打开一个新的shell(或再次运行.profile的“源”). $HOME/.profile。现在,您始终可以简单地键入“ sau”来完成整个工作,这对多台机器非常有用。


嗯 我想我只是在问别人
要给

是的,但这是使用“单个命令”执行此操作的唯一方法。您的问题并未排除这个问题;)
Izzy 2012年

整rick 无论如何,我问的唯一原因是因为我想更好地理解apt,而不是因为我懒得写sudo aptitude update && sudo aptitude upgrade。我问的原因是因为可以使用pacman(sudo pacman -Syu --noconfirm)来完成。
polandeer

如果必须经常在多台计算机上执行此操作,则很高兴至少可以有一个别名。但是:根据显示可用更新的手册页,apt-get update具有参数-u。没有尝试过是否随后要求应用它们(我附近没有Ubuntu / Debian现在可以检查)。
Izzy 2012年


2
sudo apt install unattended-upgrades

这是最好的路线。所有其他解决方案,您都必须每天一遍又一遍地输入一行。这确实是一站式解决方案。请参阅ubuntu的官方apt文档!

通过编辑该.conf文件包中的文件,/etc您可以设置update, install, clean, autoremove... 的频率。

或者简单地通过电子邮件发送,其中包含有关软件包名称列表的可用更新的通知

每次更改都会生成一个不错的小日志文件,我想可以将一个小脚本编写为gui扩展,也可以在桌面通知中弹出(主题哈哈)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.