apt-get:识别软件包的所有旧版本号


apt-get : Identify all old version numbers of a package?

我需要在Debian上安装PHP 5.3。如果我要执行常规的PHP安装,我将得到5.4版本。

我知道我可以运行apt-get install <package-name>=<package-version-number>来安装一个特定的版本。但是我不知道PHP 5.3的确切版本号。

我运行了apt-cache showpkg php5apt-cache madison php5,但它们只列出了当前版本。

如何确定正确的版本号来安装PHP 5.3?

我不知道它是否在某些apt命令中可用,但您可以在这里获得完整的列表:http://snapshot.debian.org/package/php5/

最新的PHP 5.3版本是5.3.10-2:http://snapshot.debian.org/package/php5/5.3.10-2/

要从快照安装包,您必须在/etc/apt/sources中添加一个条目列出匹配你想要的包,这个条目可以在"pool"链接中找到。例如,php5 5.3.10-2的池链接是http://snapshot.debian.org/archive/debian/20120221T041601Z/pool/main/p/php5/,所以你需要添加http://snapshot.debian.org/archive/debian/20120221T041601Z/到你的sources.list:

deb http://snapshot.debian.org/archive/debian/20120221T041601Z/ unstable main
deb-src http://snapshot.debian.org/archive/debian/20120221T041601Z/ unstable main

这些条目需要设置为不稳定,这是因为快照给你第一次出现在debian软件包中的包,大多数情况下是不稳定的(但我猜它也可能是实验性的)。

接下来,您需要更新,同时告诉apt忽略包的过期日期:

apt-get -o Acquire::Check-Valid-Until=false update

如果你用aptitude,那就是:

aptitude -o Acquire::Check-Valid-Until=false update

现在你可以安装你的php5版本了:

apt-get install php5=5.3.10-2

现在,当您在安装中添加了一个不稳定的存储库时,您可能希望将优先级设置为稳定的包,请参阅:http://www.imped.net/2007/07/20/apt-pinning-installing-unstable-packages-on-stable-debian/