如何防止軟件包在 Ubuntu、Debian 或 Linux Mint 中被更新 [APT]

有多種方法可以防止包被更新德比安,Ubuntu、Linux Mint、基本操作系統和其他基於 Debian/Ubuntu 的 Linux 發行版。 本文介紹了三種排除升級存儲庫軟件包的方法。
為什麼要阻止包更新? 假設您安裝的軟件包版本早於 Debian、Ubuntu 或 Linux Mint 存儲庫中可用的版本,或者您知道某些更新會導致問題,並且您想減去所有軟件包(一個或兩個、三個)……) .
這是一個例子。 我在 Chromium 瀏覽器中使用來自 Saiarcot895-dev PPA(在 Ubuntu 18.10 中)的硬件加速補丁。 為了使用 Nvidia 驅動程序的硬件加速,需要一個打過補丁的 vdpau-va-driver 包,而最新的 Ubuntu 18.10 在這個 PPA 中還不可用。 幸運的是,Ubuntu 18.04 包可以安裝在 Ubuntu 18.10 中,但是任何通過“apt upgrade”或使用 Software Updater 的升級都會升級這個包,我不想這樣做。 因此,在這種情況下,讓這個包不被升級將使我可以毫無顧慮地升級所有其他包。
請注意,如果您持有的包被用作另一個可以升級的包的依賴項,在某些情況下,阻止將來升級該包可能會導致問題。 因此,請盡量不要阻止過多的軟件包升級,尤其是庫。 同一系列:如何在Debian、Ubuntu或Linux Mint中通過命令行搜索可用包[APT]
這是Debian、Ubuntu、Linux Mint.1中防止軟件包更新的三種方法。 使用 GUI 來防止包更新:新立得包管理器
Synaptic Package Manager 是 apt 的 Gtk 圖形包管理程序。 它可以鎖定包以防止它們被更新。 重要的是要注意,使用 Synaptic 鎖包不會阻止它們從命令行更新 - 運行 apt upgrade 金子 apt-get upgrade 鎖定在 Synaptic 中的軟件包仍將升級。 在 Synaptic 中鎖定包將阻止使用 Ubuntu 的軟件更新程序應用程序和其他圖形包管理器進行包升級。 但是,它不會阻止使用 Linux Mint 更新管理器應用程序更新軟件包。 因此,我建議使用 apt-mark 金子 dpkg (見下文)以防止軟件包更新。
您可以使用以下命令安裝 Synaptic Package Manager:

                      
                        sudo apt install synaptic
                      
                    

要阻止某個包使用 Synaptic 更新,請搜索它,選擇該包,然後從 Synaptic 菜單中單擊 Package -> Lock Version :

同樣,您也可以解鎖包裹。
要查看 Synaptic 中所有鎖定的包,請單擊 Status 在左下角並點擊 Pinned 以上 Status 部分: Synapse display lock (fixed) package2.防止更新軟件包 apt-mark
禁止使用apt-mark更新軟件包,這樣會阻止他們使用Ubuntu的Software Updater和命令行升級來更新( apt upgrade / apt-get upgrade ).
您可以通過以下方式保留軟件包,以防以後升級(不會自動刪除) apt-mark 通過使用以下命令:

                      
                        sudo apt-mark hold PACKAGE
                      
                    

代替 PACKAGE 使用您要保留的軟件包進行更新。
您可以檢查哪些包被標記為 hold (這樣他們就不會被更新了),方法是:

                      
                        apt-mark showhold
                      
                    

要刪除預訂(以便更新包),請使用:

                      
                        sudo apt-mark unhold PACKAGE
                      
                    

對於彼此 hold unhold 您可以像使用一樣指定多個包 apt (用空格分隔包) 3.阻止包更新 dpkg
不久前,一些圖形包管理器忽略了 apt-mark 保留狀態。 我不確定情況是否仍然如此,但出於安全原因(如果您使用舊的 Debian/Ubuntu/Linux Mint 版本),這是另一種防止 Ubuntu、Linux Mint 或 Debian 中的軟件包更新的方法:dpkg。
要防止使用 dpkg 升級軟件包,請使用:

                      
                        echo "PACKAGE hold" | sudo dpkg --set-selections
                      
                    

代替 PACKAGE 使用您要保留的軟件包進行更新。
您可以使用以下命令查看所有包的安全性:

                      
                        dpkg --get-selections | grep hold
                      
                    

要刪除保留(允許軟件包升級),請使用:

                      
                        echo "PACKAGE install" | sudo dpkg --set-selections
                      
                    

不像 apt-mark ,此解決方案不允許一次指定多個包。

資源

相關文章