从目标版本升级单个包

从目标版本升级单个包

在 Debian Squeeze 中,我从 debian-backports 安装了一个 packageX。

问题一:当我apt-get dist-upgrade或 时aptitude full-upgrade,会检查哪个版本是否有 packageX 的更新? debian-backports 还是 debian-stable?

问题2:我可以使用命令从特定版本更新单个软件包吗?例如,这是aptitude -t full-upgrade packageX一个有效的命令吗?我尝试过aptitude -st full-upgrade packageX,但输出没有帮助。

Q3:为了完整起见,基于 RPM 的发行版的等效答案是什么?

答案1

Q1:这取决于您当前的优先事项。您可以使用命令查看优先级apt-cache policy。以下是输出中的几行示例:

 500 http://security.debian.org/ stable/updates/main amd64 Packages
     release v=6.0,o=Debian,a=stable,n=squeeze,l=Debian-Security,c=main
     origin security.debian.org

 100 http://backports.debian.org/debian-backports/ squeeze-backports/main amd64 Packages
     release o=Debian Backports,a=squeeze-backports,n=squeeze-backports,l=Debian Backports,c=main
     origin backports.debian.org

您还可以apt-cache policy在单​​个包上使用:

$ apt-cache policy linux-image-2.6-amd64 
linux-image-2.6-amd64:
  Installed: (none)
  Candidate: 2.6.32+29
  Version table:
     3.2+46~bpo60+1 0
        100 http://backports.debian.org/debian-backports/ squeeze-backports/main amd64 Packages
     2.6.32+29 0
        500 http://apt.magazines.com/debian/ stable/main amd64 Packages

优先级的解释如下apt_preferences(5)

   P > 1000
       causes a version to be installed even if this constitutes a downgrade of the package

   990 < P <=1000
       causes a version to be installed even if it does not come from the target release, unless the installed version is more recent

   500 < P <=990
       causes a version to be installed unless there is a version available belonging to the target release or the installed version is more recent

   100 < P <=500
       causes a version to be installed unless there is a version available belonging to some other distribution or the installed version is more recent

   0 < P <=100
       causes a version to be installed only if there is no installed version of the package

   P < 0
       prevents the version from being installed

在我们的示例中,这意味着如果给定的软件包已经从向后移植安装,它将从向后移植升级。如果不是从向后移植安装的,则不会使用向后移植存储库。

Q2:该install命令用于升级单个包。如果给定时软件包已安装install,则如果有可用升级,则会对其进行升级。

apt-get install packageX
aptitude install packageX

第三季度:对于基于 RPM 的发行版,这取决于发行版。诸如此类的事物与的关联方式yum不同。用于升级和远程管理的工具因发行版而异。(RHEL) 和(SLES)命令是最常见的。rpmaptdpkgyumzypper

答案2

关于Q3:RPM 本身没有存储库等概念,它只能按照指示获取和安装文件。 yum 软件包管理器可以配置为使用多个存储库,但至少在 Fedora 中,RHEL 和克隆版本中的软件包集或多或少地捆绑在一起,试图在 RHEL 5 上安装 RHEL 6 软件包(反之亦然)肯定会导致灾难(如果依赖项可用的话)。但这与 RPM 或 yum(或今天的 dnf)没有任何关系,主要是发行版的打包/存储库管理策略。

相关内容