當前位置: 首頁>>技術教程>>正文


如何從升級還原到建議的存儲庫?

, , ,

問題描述

我錯誤地啟用了預發行更新(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/zh-tw/article/10100.html,未經允許,請勿轉載。