apt全面升级与apt升级冗余

Neticegear

这可能是一个错误,但这已经困扰了我几天了。

之间的差异apt-get upgrade,并apt-get dist-upgrade一直都熟知和现在即完善的升级而安装/升级dist-upgrade能够安装/删除/升级如果包装中取出发生的任何安装或其他程序包的升级是必要的。包中的差异可以很容易地发现,例如

(以下是一种快速而肮脏的方法,并且需要在终端中已经输入sudo密码才能进行复制粘贴。此外,由于我有多个软件包和驱动程序,我为自己打了补丁,因此我需要保留其功能,因此在其中包含了OR在awk提取只有那些安装和那些要升级,而不是那些被列为必须保持回来,但下面应该工作,即使这些行不存在于你的apt upgrade输出):

$echo -e 'n' | sudo apt-get dist-upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' | awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_get_dist_list

$echo -e 'n' | sudo apt-get upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' |  awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_get_upgrade_list

当我将两个输出进行比较时:

$diff apt_get_dist_list apt_get_upgrade_list | grep -E '<|>'

就我而言,我得到以下信息:

< gir1.2-nm-1.0
< libcpupower2
< linux-kbuild-5.2
< blueman
< linux-cpupower
< linux-headers-amd64
< linux-image-amd64
< pdf-parser

这使得区别非常明显,特别是考虑到linux-header-*linux-image-*存在apt-get dist-upgrade

现在,如果我对apt upgrade重复相同的过程apt full-upgrade

$echo -e 'n' | sudo apt upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' | awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_upgrade_list

$echo -e 'n' | sudo apt full-upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' | awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_fullupgrade_list

并比较:

 $diff apt_get_dist_list apt_fullupgrade_list | grep -E '<|>'

我没有得到预期的结果,因为apt full-upgradeapt-get dist-upgrade的行为方式完全相同,但是当我比较时:

$diff apt_get_upgrade_list apt_upgrade_list | grep -E '<|>'

我得到的输出与进行比较时相同apt-get upgrade with apt-get dist-upgrade

> gir1.2-nm-1.0
> libcpupower2
> linux-kbuild-5.2
> blueman
> linux-cpupower
> linux-headers-amd64
> linux-image-amd64
> pdf-parser

我唯一可以得出的结论是,apt upgrade它与完全相同,apt full-upgrade这也apt-get dist-upgrade意味着,这最终意味着不仅apt upgrade冗余,而且更令人担忧的是当前apt不允许相同的行为作为apt-get upgrade

斯蒂芬·基特

它们不是多余的。还有一个额外的细微之处:

  • apt-get upgrade 仅升级当前安装的软件包;
  • apt upgrade将升级当前安装的软件包并安装由更新的依赖项引入的新软件包
  • 各种dist-upgradefull-upgrade变型将升级目前安装的软件包,安装引入新的依赖包,并删除它们通过升级包损坏的包。

换一种方式:

命令 升级 安装 去掉
apt-get upgrade 是的
apt upgrade 是的 是的
apt-get dist-upgradeapt full-upgrade等等。 是的 是的 是的

实际上,apt upgrade它比apt-get upgrade(默认情况下)更安全,因为它允许在ABI更改时自动安装更新的内核。请参阅apt-get upgrade阻止内核更新。在Debian 9上应用更新的官方说明是什么?举个例子。

apt-get upgrade可以被告知其行为apt upgrade与该--with-new-pkgs选项类似也可以使用APT配置文件进行配置。您可以使用查看apt特定的设置apt-config dump | grep '^Binary::apt(此处涉及的设置为APT::Get::Upgrade-Allow-New)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章