我可以在apt信息库中拥有同一软件包的两个版本吗?


19

我正在整个环境中运行Ubuntu 10.04。为了使代码部署更容易,我们实现了一个私有apt存储库,可以在其中部署代码的构建。

此存储库的要求之一是,我们的质量检查部门将能够随时安装我们应用程序的任何版本。

是否可以在apt-repository中存储同一软件包的多个版本(最好在同一发行版中)?如果没有,我可以使用哪些可能的解决方法来获得上述行为?

Answers:


19

是的,您可以,并且不需要做任何特殊的事情。实际上,通常的Debian和Ubuntu仓库通常每个软件包都有多个版本(来自oldstable / stable / testing / unstable或dapper / hardy / lucid / maverick / natty)。发行版在每个版本的索引文件(即Packages文件)中只有一个软件包,但是您不必照做。

当然,apt-get install myapp只会安装最新版本(除非另行配置)。您可以运行apt-get install myapp=1.42以强制安装版本1.42。

注意:如果所有版本的软件包名称相同,则不能同时安装多个软件包。如果这很重要,请给每个版本一个不同的软件包名称:myapp-1.42myapp-1.43等。Debian和Ubuntu在主要版本的库中执行此操作,如果您具有与不同库链接的可执行文件(例如libcap1libcap2),则可能需要多个版本。至于其他一些软件包,例如内核。


1
感谢您的出色解释。作为后续措施,如果我将版本号附加到软件包中,是否会破坏“ apt-get upgrade”?在我看来,每次升级应用程序时,它将被视为全新安装,并且我会丢失配置。我可以解决此问题,但是在我以一种或另一种方式做出决定之前,我想了解一下局限性。谢谢。
GregB

2
在这种情况下,通常的方法是拥有myapp-1.42等等,再加上一个myapp仅依赖于当前组件的包myapp-VERSION(甚至是myapp-stablemyapp-beta依此类推)。
吉尔(Gilles)“所以,别再邪恶了”,

1
只是一个警告:请确保-m在运行dpkg-scanpackages构建存储库索引时不要忘记。否则,您的文件将不会获得多个软件包版本Packages
bruno
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.