![从目标版本升级单个包](https://linux22.com/image/30751/%E4%BB%8E%E7%9B%AE%E6%A0%87%E7%89%88%E6%9C%AC%E5%8D%87%E7%BA%A7%E5%8D%95%E4%B8%AA%E5%8C%85.png)
在 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)命令是最常见的。rpm
apt
dpkg
yum
zypper
答案2
关于Q3:RPM 本身没有存储库等概念,它只能按照指示获取和安装文件。 yum 软件包管理器可以配置为使用多个存储库,但至少在 Fedora 中,RHEL 和克隆版本中的软件包集或多或少地捆绑在一起,试图在 RHEL 5 上安装 RHEL 6 软件包(反之亦然)肯定会导致灾难(如果依赖项可用的话)。但这与 RPM 或 yum(或今天的 dnf)没有任何关系,主要是发行版的打包/存储库管理策略。