在存储库之外更新

在存储库之外更新

假设我有一个名为 abc 的应用程序,在当前的存储库中,版本为 1.0。今天我在网上看到一条新闻:“突发:abc 版本 1.5 发布,修复了所有问题”,大家都疯了。当然,我也想试试。

如果我现在下载一个 deb 文件并安装 abc 1.5(假设没有依赖性问题),当版本 1.5 或 1.6 进入存储库时,这会对我的系统产生什么影响?我是否仍能正常使用存储库进行更新,或者该软件是否会以某种奇怪的方式“被切断”?

奇怪的问题,我希望有人能理解。

答案1

这取决于软件包的制作者是否遵守 Ubuntu/Debian 对其软件包的版本控制。例如,考虑 Vim 软件包:

$ apt-cache policy vim
vim:
  Installed: 2:7.4.811-1~ppa1~t
  Candidate: 2:7.4.811-1~ppa1~t
  Version table:
 *** 2:7.4.811-1~ppa1~t 0
        500 http://ppa.launchpad.net/pi-rho/dev/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status
     2:7.4.052-1ubuntu3 0
        500 http://mirror.cse.iitk.ac.in/ubuntu/ trusty/main amd64 Packages

假如明天 Vim 7.5 发布了,而有人用7.5而不是的版本制作了一个软件包,那么它将在我下次升级系统中的软件包2:7.5时“升级” 。2:7.4.811-1~...

解释一下,Debian 软件包版本有三个主要字段(man 5 deb-version了解更多信息):

  • 时代
  • 上游版本
  • Debian 修订版本

因此:

2:7.4.811-1~ppa1~t
¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯   
|    |       |
|    |       --- *debian revision*
|    --- *upstream version*
--- *epoch*

时代Debian 修订版本由包装者添加,并且上游版本通常来自上游。如果新软件包紧随任何时代存储库中的软件包具有,那么事情应该会按预期进行。Debian 修订版本在这种情况下并不重要,因为上游版本总是胜过它。

相关内容