降級:恢復到軟件包的先前版本

在Linux上降級軟件包

正常的是 總是更新軟件包 以獲得這些的更多更新版本。 通常,開發人員會力爭隨著新版本的到來,他們會越來越好。 但這並非總是如此。 有時,某個軟件包的先前版本可能會更穩定,因某些原因而運行得更好,或者甚至是用戶更喜歡更新之前的版本,因為它具有新版本不再實現的功能。

如果是這種情況,在這種情況下 本教程將向您展示如何降級 的任何軟件包,即回滾更新並獲取系統上安裝的先前版本。 這樣,如果新版本讓您失望,您就不會有問題。 好吧,讓我們開始吧!

由於沒有適用於所有發行版的通用方法,因此我將展示如何使用 最受歡迎的軟件包管理器。 順便說一句,如果您使用其他方法(例如YaST,Synaptic等),則該過程也是可行的,但是圖形化且直觀得多。 在這裡,我將通過控制台解釋那些產生最大混亂的方法。

apt-get:Debian / Ubuntu及其衍生版本

對於所有 基於DEB包的發行版 借助apt-get軟件包管理器,您可以輕鬆地從較新的版本更改為較舊的版本。 例如,我們將把firefox包作為參考,假設我們想從當前版本退回到以前的版本。 在這種情況下,您可以執行以下命令:

  • 你可以得到 包裝信息 firefox(或任何您需要的名稱,只需將名稱更改為適當的名稱即可),例如安裝的先前版本等,可以使用以下命令:
sudo apt-cache showpkg firefox

  • 一旦你知道 您要安裝的先前版本,您可以使用以下命令來安裝所需的軟件包。 在我們的例子中,在上一個命令中,我們獲得了一個名為firefox = 57.3-build1-0ubuntu1的軟件包,這是我們要安裝的軟件包:
sudo apt-get install firefox=57.3-build1-0ubuntu1

  • 完成此操作後,您將已經安裝了該程序的先前版本。 你知道如果沒有 指定版本 使用APT,您可以在該軟件包的存儲庫中安裝最新版本。 在這種情況下,我們已經指出了具體的版本。

請記住,有可能 兩個不同的版本包共存 在GNU / Linux上沒有問題。 因此,如果您想擁有同一軟件包的兩個不同版本,則可以...

pacman:Arch Linux及其衍生版本

如果你有 Arch Linux,那麼您將不得不將pacman作為包管理器處理。 如果需要,此工具還允許您返回以前的版本。 這樣做的方式有些不同,但非常簡單:

  • 搜尋en程序包緩存可用版本,您可以檢查記錄。 要在本例中僅對firefox軟件包的結果進行過濾(但您已經知道可以將軟件包名稱替換為所需的軟件包名稱...),則可以使用:
ls /var/cache/pacman/pkg/ | grep firefox

  • 現在,一旦知道所需的版本,就可以使用以下命令 安裝它:
sudo pacman -U /var/cache/pacman/pkg/firefox-57.3.pkg.tar.xz

zypper:SUSE / openSUSE及其衍生版本

在世界上 SUSE,您可以使用zypper軟件包管理器。 這也是在早期版本中獲取軟件包的簡便方法。 在我們的情況下,使用Mozilla Firefox,將是這樣的:

  • 第一件事是以類似於我們為Arch所做的方式查詢程序包緩存,並使用以下命令來了解 軟件包的先前版本 可用的:
cat /var/log/zypp/history | grep firefox

  • 找到以前的版本後,您可以 安裝該版本 使用zypper像這樣:
sudo zypper -in -f firefox_57.3

dnf:Red Hat / CentOS / Fedora及其衍生版本

最後,在基於Fedora的發行版上 會使用yum或dnf。 為了還原軟件包更新並降級到以前的版本,可以使用以下命令:

  • 在這種情況下,第一件事就是看 之前的版本 嘗試在DNF存儲庫中安裝的軟件包。 對於我們的示例,您可以使用以下命令來獲取列表:
sudo dnf --showduplicates list firefox

  • 現在,一旦您仔細看了一下 您要安裝的版本, 您只需要從上一個命令的輸出中拋出的數據中復制它,並將其粘貼到下一個命令中即可。 例如:
<pre>sudo dnf install firefox-57.3.fc28</pre>

您也可以使用 快照或快照 返回以前的版本。 為此,您可以使用以下命令,分別執行以下命令:獲取歷史記錄,然後從歷史記錄中獲取其ID(無論您想要使用的是什麼)的關於事務的信息,然後還原為狀態指示ID的交易的金額(在我們的示例32中):

sudo dnf history

sudo dnf history info 32

sudo dnf history undo 32

我希望本教程可以幫助您解決新版本的軟件包在您最喜歡的發行版中引起您的問題。 您已經知道您可以離開您的 有問題或建議的評論...


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   匿名 他說:

    在gentoo中,不再需要的軟件包版本被屏蔽,通過將其顯式放置在/etc/portage/package.mask/package.mask文件中來進行更新。
    例如,如果我們不想要最新的Firefox,即69.0.1,則可以這樣說:

    = www-client / firefox-69.0.1
    或者,如果我們不希望將來的更新版本更高
    > = www-client / firefox-69.0.1

    然後進行降級將是這樣的:
    #出現-av1 firefox
    這些是將按順序合併的軟件包:
    計算依賴關係…完成了!
    [ebuild UD] www-client / firefox-68.1.0
    您要合併這些軟件包嗎? [是/否]和

    UD表示更新降級

    1.    艾薩克 他說:

      您好,非常感謝您的貢獻。 我決定放一些發行版,因為它們使用最多,但是顯然有很棒的發行版,例如Slackware,Gentoo和其他我沒有提到的發行版。 有時很難選擇一個或另一個,而您總是必須選擇並省去一些...
      您好!

  2.   亞歷克斯 他說:

    有沒有辦法一次用很多包做到這一點?