更新管理器(软件更新程序)的等效命令行是什么?


25

当我做

sudo apt-get update
sudo apt-get upgrade

有时,Ubuntu GUI更新管理器还会剩下一些项目。例如“完整的通用Linuux内核”。

我知道也有sudo apt-get dist-upgrade,但这涉及其他方面。

我的问题是,我可以使用的另一个命令行选项是什么,它将更新GUI更新管理器中显示的其余项目(但不会涉及其他任何问题)。换句话说,我正在寻找等效的命令行。

编辑:这个问题是指更新管理器,它等效于更新版本(例如16.04)中的软件更新程序,如@Eliah Kagan指出的那样


Ubuntu update-manager软件包是开源的,因此您可能可以浏览源代码以找到答案。我快速浏览了一下,但没有发现有关它们升级方式的任何异常信息。

经过一些研究后,我不清楚是否存在直接等效项,但是有一个非常有启发性的答案可以解释apt-get和aptitude之间的区别。我的猜测是,Update Manager与apt-get相似,因为它具有用于更新的稍微更专业的规则apt-get update集,不同的是,它的规则集允许在某些特殊情况下安装新软件包,例如内核更新。希望有人知识渊博
cha5on

3
我很确定答案是apt-get dist-upgrade。您是什么意思,“触及其他事物”?
Flimm

Answers:


22

正如Flimm所评论的那样,答案确实是sudo apt-get dist-upgrade(运行sudo apt-get update,哪些GUI软件包管理工具会自动执行此操作)。至少这与运行软件更新程序(在较早的版本中称为更新管理器)最接近。

运行apt-get upgrade将升级可以升级的软件包:

  • 而不安装任何尚未在某个版本中安装的软件包,并且
  • 不删除任何软件包。

Update Manager能够执行这两项操作,因此apt-get dist-upgrade非常接近。

  • 运行sudo apt-get dist-upgrade本身不会将您的Ubuntu系统升级到较新的版本。实际上,与Debian不同,apt-get dist-upgrade它不是升级到新版本的受支持方式。在Debian中(以及在Ubuntu中,尽管有时可能会失败并且不受支持),列出的所有存储库更改/etc/apt/sources.list为下一个发行版的存储库并运行sudo apt-get dist-upgrade将尝试升级到下一个发行版。

由于apt-get dist-upgrade可以删除软件包(并安装您可能不需要的新软件包),因此最好在按之前仔细阅读其打算执行的描述y

因此,尽管运行sudo apt-get -y upgrade通常是合理的,但该-y标志很少应与一起使用dist-upgrade

之所以没有获得新的内核版本sudo apt-get upgrade是因为它们各自由单独的,名称不同的软件包提供。(内核版本是名称的一部分。)这是为了便于将旧内核与新内核一起安装(并可以在GRUB菜单中选择它们)。

通过安装元软件包(如linux-image-generic)可以自动提供要安装的新内核软件包。为您的Ubuntu版本推出新内核时,将升级您的内核元数据包,并且该元数据包的升级版本将新内核列为依赖项(而不会阻止继续安装旧内核)。

如果您不想使用sudo apt-get dist-upgrade,那么您总是可以手动升级运行时被保留的单个软件包sudo apt-get upgrade。为此,请“安装”它们:。sudo apt-get install packagename


1
“ Update Manager能够完成这两项工作,因此apt-get dist-upgrade非常接近它。” ―在上下文中还不清楚。
马特

7

如果您想从命令行打开软件更新窗口(这是我收集到的信息,主要是因为这就是我搜索此内容并最终到达此位置的原因,因为这是我的目标),以便让自己成为root访问GUI窗口(尝试通过远程登录来执行此操作时出现权限问题)

sudo update-manager

如果我正确理解了这个问题,那么@questionreality的答案就是正确的答案,至少对我有用。唯一的事情是,如何在不经过窗口提示的情况下进行更新?我的意思是,纯粹是命令行操作?
nightcod3r

1

我刚刚找到了这个答案,但丢失了信息源,所以我无法相信它...

下面的命令将安装以内核为依赖的软件包,因此将选择合适的软件包来更新您的内核。

除内核外,我的14.4安装已升级到14.10。在我的情况下,内核可能从3.13.x更新到3.16.x,尽管3.13.0.x版本可能已经进行了更新。显然,3.13不是LTS内核。

sudo apt-get install linux-image-generic

1
如果对此答案投反对票的人有一些基本的态度说“为什么”会帮助像我这样的Linux学习者了解其错误原因。
克莱恩·德西尔瓦

0

可能是错误的地方,但我相信您想这样做:

apt-get -f install

这将清除未解决的依赖项


1
谢谢。似乎并非如此。apt-get -f install然后,我确实进行了更新和升级,然后转到管理员gui并检查仍然存在的项目。

0

apt命令行实用程序不能提供与gui等效的完全相同的舒适度(即software updater)。尽管a apt-get dist-upgrade将负责升级的大部分工作,即下载和安装较新的软件包,但它不会检测到ubuntu(或debian)新版本的存在,而ubuntu gui实用程序将这样做。缺少的部分是进行编辑/etc/apt/sources.list(或-中的相关文件,/etc/apt/sources.list.d/但您可能没有这些文件),告诉apt新版本存在以及存储库在哪里。

例如,对于dist-upgradeutopicVivid,您可以打开/etc/apt/sources.list,然后快速搜索并替换为utopicto vivid,然后运行dist-upgradeCLI命令。较安全的路径可能是复制该文件中的行,然后仅在这些重复的行上进行搜索和替换,从而保留utopic存储库。

有关更多信息,我建议查阅手册页,sources.list其中描述了文件格式以及如何编辑它。

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.