执行操作时,apt-get upgrade我有时会收到一条消息,提示“以下软件包已被保留”。例如:
$ sudo apt-get upgrade                                                                                                
Reading package lists... Done                                                                                                          
Building dependency tree                                                                                                               
Reading state information... Done                                                                                                      
The following packages have been kept back:                                                                                            
  linux-headers-server linux-image-server linux-server                                                                                 
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Run Code Online (Sandbox Code Playgroud)
这究竟是什么意思?显然,这些软件包已被阻止且未安装,但为什么呢?
接下来的问题是:如何升级这些保留的软件包?
Cha*_*had 84
如果升级需要删除另一个包或安装新包,则该包将被“保留”。正如apt-get upgrade的手册页所解释的那样:
当前安装的带有可用新版本的软件包被检索和升级;在任何情况下都不会删除当前安装的软件包,或者检索和安装尚未安装的软件包。
为了解决这个问题,你可以这样做
sudo apt-get --with-new-pkgs upgrade
Run Code Online (Sandbox Code Playgroud)
这允许安装新的软件包。它会让您知道将安装哪些软件包并在实际安装之前提示您。
rho*_*oat 19
基本报告是apt-get upgrade不会升级包管理器想要删除并重新安装包的包。这在安全补丁中经常发生,因为通常情况下,它实际上是最终可分发编译的库的前身被修补。“继续并删除内容”功能存在,apt-get dist-upgrade但请务必先运行apt-get update,以防上游人员自您上次尝试以来发现了一些问题。有时他们会错过一些东西并迅速修复它们。
小智 7
尝试apt-get dist-upgrade。从手册页:
dist-upgrade
dist-upgrade除了执行 的功能外upgrade,还可以智能地处理与新版本包的不断变化的依赖关系;apt-get有一个“智能”冲突解决系统,如有必要,它将尝试升级最重要的软件包,而牺牲不太重要的软件包。因此,dist-upgrade命令可能会删除一些包。该/etc/apt/sources.list文件包含从中检索所需包文件的位置列表。另请apt_preferences(5)参阅覆盖单个包的常规设置的机制。
虽然此命令用于升级到操作系统的新主要版本,但默认情况下不会执行此操作。该文件/etc/apt/sources.list必须更改为新版本,然后dist-upgrade使用a 。
该消息表明存在潜在的不安全状况
如果您确定希望进行此更改,您可以
sudo apt-get install  xxxxx
Run Code Online (Sandbox Code Playgroud)
其中 xxxx 是保留的软件包...通常,当系统知道通过执行此安装它将必须卸载其他软件包时,就会发生这种情况...例如
sudo apt-get --with-new-pkgs upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  libc6 libc6-dbg
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Run Code Online (Sandbox Code Playgroud)
不过我可以继续对那些持有的软件包进行更新,所以我运行
sudo apt-get install   libc6 libc6-dbg
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libx11-xcb1:i386
Use 'sudo apt autoremove' to remove it.
Suggested packages:
  glibc-doc
The following packages will be REMOVED:
  libatomic1:i386 libbsd0:i386 libc6:i386 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libelf1:i386
  libexpat1:i386 libffi6:i386 libgcc1:i386 libgl1:i386 libgl1-mesa-dri:i386 libglapi-mesa:i386 libglvnd0:i386 libglx-mesa0:i386 libglx0:i386 libidn2-0:i386 libllvm9:i386
  libnvidia-compute-430:i386 libnvidia-decode-430:i386 libnvidia-encode-430:i386 libnvidia-fbc1-430:i386 libnvidia-gl-430:i386 libnvidia-ifr1-430:i386 libpciaccess0:i386
  libsensors5:i386 libstdc++6:i386 libtinfo6:i386 libunistring2:i386 libx11-6:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxshmfence1:i386 libxxf86vm1:i386 zlib1g:i386
The following packages will be upgraded:
  libc6 libc6-dbg
2 upgraded, 0 newly installed, 47 to remove and 0 not upgraded.
Need to get 8,459 kB of archives.
After this operation, 525 MB disk space will be freed.
Do you want to continue? [Y/n] 
Run Code Online (Sandbox Code Playgroud)
因为通过做一些研究,我可以进行此升级,我对上面的提示说“是”...现在那些保留的软件包已安装,成本是消除不需要的辅助 32 位软件包...当然,您将拥有不同的集合导致此The following packages have been kept back  消息或类似消息的软件包数量
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           59005 次  |  
        
|   最近记录:  |