当前位置: 首页>>技术教程>>正文


如何从升级还原到建议的存储库?

, , ,

问题描述

我错误地启用了预发行更新(natty-proposed)存储库,然后升级了所有软件包。

我该如何撤消呢?

这是@enzotib’s instructions中的test resultsmy instructions中的test results

最佳思路

这是从本地安装的程序包,建议的程序包和向后移植程序包还原到stable + updates通道的更通用的方法。尽管其他答案是正确的,并且以类似的方式起作用,但我认为这是一种更为优雅的方法。

  1. 确保已删除/etc/apt/sources.list/etc/apt/sources.list.d/*文件中的-proposed-backports条目。

  2. 添加一个apt-preferences文件,例如包含/etc/apt/preferences.d/99-back-to-stable-updates(此处为precise,请替换为您的版本):

    Package: *
    Pin: release a=precise
    Pin-Priority: 1001
    
    Package: *
    Pin: release a=precise-updates
    Pin-Priority: 1001
    
    Package: *
    Pin: release a=precise-security
    Pin-Priority: 1001
    
    Package: *
    Pin: release a=precise-proposed
    Pin-Priority: -10
    
    Package: *
    Pin: release a=precise-backports
    Pin-Priority: -10
    

    固定> 1000将迫使该频道的软件包降级,并且优先级< -proposed-backports通道上的0也将删除所有其他软件包。

  3. 现在运行

    sudo apt-get update
    sudo apt-get dist-upgrade
    

    检查建议的解决方案是否可以给您,如果您认为还可以,请接受。如果需要检查将其降级到什么版本以及将其降级到哪个版本,请使用apt-cache policy packagename进行检查,以查看可用的版本以及易于决定安装的版本。

  4. 再次删除/etc/apt/preferences.d/99-back-to-stable-updates文件,因为不再需要它。

多亏了Ubuntu论坛上的mlind才对5年前的his post进行固定提出了要求-但今天它对我的帮助很大。

次佳思路

This page建议利用pin priorities higher than 1000 can cause package downgrades的事实,将Apt固定用于从整个存储库降级。

因此,一种解决方案可能是将所有软件包文件的默认优先级临时增加1000,但natty-proposed存储库中的优先级除外:

apt-cache policy | awk '
    /^ [0-9]+ / {
        p = $1;
        getline;
        r = $0;
        if (r !~ /a=natty-proposed/) p += 1000;
        print "Package: *\nPin: " r "\nPin-priority: " p "\n"
    }
' | sudo tee /etc/apt/preferences.d/downgrade-from-natty-proposed

(注意:此方法fails to increase the priority的发行包字段包含逗号的软件包文件。请参阅this question。)

完成此操作后,可以使用apt-get --simulate upgrade来测试是否成功进行了降级检测。确认检测到正确的降级后,执行降级所需的全部操作为sudo apt-get upgrade

降级完成后,请使用软件源禁用预发行更新(natty-proposed)存储库,然后删除临时的优先级提高:

sudo rm /etc/apt/preferences.d/downgrade-from-natty-proposed

最后,重新启动,以便所有正在运行的程序均为降级版本。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10100.html,未经允许,请勿转载。