如何通过q​​4312079q将软件包降级到较早的版本?

也可以使用其他工具,但首选apt-get

#1 楼

USE

apt-get install «pkg»=«version»

OR

sudo aptitude install «pkg»=«version»

其中«pkg»是包装名称,而«version »是版本号。

评论


当我键入apt-get install pkg = version时apt-get提供了删除几乎所有已安装软件包的一半,当然这不是我想要做的

– Dfr
15年7月15日在8:38

正如在(否则,完全相同的)答案获得更多选票所指出的那样,这似乎是才智比apt-get更好的关键案例之一。在我的情况下,apt-getflatly拒绝了降级请求,而aptitude指出,还有其他pkg依赖于较新的版本(因此需要同时降级)。

–sxc731
18年4月12日在18:02

#2 楼

如果您具有版本号或目标版本,则apt-get支持选择特定版本或目标版本。可以在apt-get的手册页上找到更多详细信息。也可以从终端通过键入man apt-get
sudo apt-get install <package-name>=<package-version-number> OR或者
sudo apt-get -t=<target release> install <package-name>
来访问它,以运行该命令。可以将其降级到特定版本。
请注意,在使用目标发行版(选项-t)时,发行优先级必须大于1000才能降级(请参阅man 5 apt_preferences),否则为当前安装的版本将保留。
注释中有帮助地指出了


apt-cache showpkg <package-name>列出了所有可用版本。 (h / t Sparhawk)

apt-mark hold <package-name>将软件包“保留”为当前版本,以防止自动升级。 (h / tLuísde Sousa)


评论


我发现aptitude比apt-get更好地降低了依赖性。

–krispy
16年1月1日在17:25

apt-cache策略仅显示已安装和可用的版本

–迈克尔·劳顿
16年8月13日在20:56

如果showpkg没有显示您感兴趣的版本,该怎么办?

–魔鬼
17年6月20日在15:41

@demongolem基于jozxyqk的评论,我想将bash降级为4.4.18-2ubuntu1; aptitude和apt-get都拒绝这样做,因为他们两个都认为没有这样的版本。您找到解决方案了吗?

– Alish
20年8月23日在11:16



#3 楼

如果您已经使用ppa升级了软件,则可以使用ppa-purge将其降级。首先,您必须使用以下代码安装ppa-purge


sudo apt-get install ppa-purge


然后您可以使用以下命令删除ppa


sudo ppa-purge ppa:user / ppa-name


这将自动将该软件降级为Ubuntu附带的原始版本。

评论


如果该程序包具有依赖关系,而该依赖关系也必须降级,则该解决方案是无与伦比的。谢谢!

–和
17年8月10日在10:27

是的,这是最适合我从kubuntu-ppa / backports降级KDE / Plasma桌面的解决方案-我注意到的一件事是PPA的.list文件一定不能注释掉deb,因此ppa-purge可以引用所有文件需要将其清除以进行净化。花了我几分钟来弄清楚为什么它最初不起作用。希望对别人有帮助!

– AveryFreeman
19年8月23日在20:24

#4 楼

要降级,您必须在终端中执行以下命令,如

 sudo apt-get install pkg_name=version


。降级为。

评论


至少对于依赖于应降级的软件包的linux-generic,它至少不起作用。我得到了paste.ubuntu.com/p/NWSmf2ZwTy

–mymedia
19年1月8日在20:18

#5 楼

我认为,您应该先卸载或清除该软件包,例如:

sudo apt-get remove <package>




sudo apt-get purge <package>


然后,您可以下载要安装的版本,并将其保存在文件夹中,例如“下载”中的abc.deb。打开终端,使用cd命令移动到文件夹,然后使用dpkg安装以前的版本:

sudo dpkg -i abc.deb


否则,如果要降级,有一个名为ppa-purge的小实用程序通过PPA更新的软件包。

查看此线程:http://www.webupd8.org/2009/12/remove-ppa-repositories-via-command.html

评论


删除软件包可能会删除许多相关的软件包,从而导致系统无法使用。 ppapurge听起来很有趣。

–类型
2012年5月20日19:04

您能否解释一下为什么您认为我们应该在安装旧版本的软件包之前先卸载软件包(作为单独的步骤)?

– Eliah Kagan
2012年10月4日20:48

permalink.gmane.org/gmane.comp.sysutils.puppet.devel/23219

–temoto
13年10月1日在6:10

该链接用于降级的@temoto发布不稳定->测试->稳定而不降级单个软件包。

–脑袋
13-10-9在17:50

#6 楼

这个问题很老,但是Google引导我来到这里,当将一堆软件包降级到较早的发行版时,我没有找到不需要手动版本传递的简单解决方案。
所以也许有人也需要找到我的解决方案该解决方案也很有用。
有一个名为apt-show-versions的工具,它显示安装的版本。要安装它:
$ sudo apt install apt-show-versions

确保APT的缓存是最新的:
$ sudo apt-show-versions -i

您可以通过微调正则表达式轻松地降级所有必需的软件包,但是它是:
 $ sudo apt-get install $(apt-show-versions \
   | grep -P 'newer than version in archive' \
   | awk -F: '{print "/'$(lsb_release -cs)'"}')
 

您应该为后者安装lsb-release

评论


或自动降级为最新的已安装发行版:sudo apt-get install -V $(apt-show-versions | grep -F'比存档版本新'| awk -F:'{print $ 1“ /'$ (lsb_release -cs)'“}')。我更喜欢在这里使用-F作为grep。

– jarno
19-09-15在22:24

谢谢,这是非常有用的!

–祖拉基斯
20-10-10在14:26