在Debian,Ubuntu中保留或阻止軟件包升級

如您所知,我們可以使用 apt upgrade Debian,Ubuntu和其他基於Debian的系統中的命令。 在此升級過程中,將升級所有已安裝的軟件包,將安裝一些其他軟件包(即依賴項),並刪除一些不必要的軟件包。 Apt軟件包管理器會自動執行所有這些操作,以幫助用戶維護乾淨的系統。 Apt還具有防止在Debian,Ubuntu及其變體中自動安裝,升級或刪除軟件包的選項。 在本指南中,我們將討論在Debian,Ubuntu及其衍生版本(例如Linux Mint和Pop!_OS)中用於保留或阻止軟件包升級的各種方法。

為什麼有人要阻止軟件包升級?

您可能想知道為什麼有人要保留apt升級中的軟件包。 將軟件包更新到最新版本是否可以幫助我們保護系統安全? 當然可以! 但是您在某些情況下不想這樣做。 以下是一些阻止軟件包升級的原因:

  • 軟件包的當前版本運行良好,因此您可能認為沒有必要對其進行升級。
  • 另一個應用程序需要特定版本才能正常運行。
  • 您要更新的軟件包可能有問題。 即使開發人員在將軟件包推送到存儲庫之前對其進行了全面的測試,但有時他們可能會在不知不覺中推送不穩定的軟件包,這將破壞您的系統。
  • 節省帶寬。 您可能不希望更新消耗超過500 MB的軟件包。

因此,無論原因是什麼,如果您想防止軟件包在Debian或Ubuntu系統中發生更改,那麼本教程將對您有所幫助。

在Debian,Ubuntu中保留或阻止軟件包升級

我們可以通過命令行或使用稱為的圖形化軟件包管理實用程序來防止/保留/忽略/排除軟件包的適當升級。 突觸的 包裹經理。

首先,讓我們看看命令行方法!

1.在Debian,Ubuntu中使用apt-mark命令防止軟件包自動安裝,升級或刪除

標記 用於顯示,設置和取消設置軟件包的各種設置,例如將軟件包標記為自動/手動安裝或更改 dpkg 保留,安裝,卸載和清除之類的選擇,例如 apt-get dselect-upgrade 要麼 aptitude

為防止軟件包發生更改(安裝,卸載和升級), apt-mark 命令提供以下三個子命令:

  1. 保持
  2. 解開
  3. 秀場

hold 命令用於將軟件包標記為保留,這將阻止軟件包被自動安裝,升級或刪除。

unhold 命令用於取消對軟件包的先前設置的保留,以再次允許所有操作。

showhold 命令用於顯示保留的軟件包列表。

讓我們來看一個例子。 我要防止包裹(例如 htop)使用以下命令自動安裝,升級或刪除:

$ sudo apt-mark hold htop

樣本輸出:

htop set on hold.

被鎖 htop 即使升級系統後,軟件包仍將保持相同的版本。

要顯示保留的軟件包,請運行:

$ sudo apt-mark showhold

要釋放軟件包,只需運行:

$ sudo apt-mark unhold htop

樣本輸出:

Canceled hold on htop.

防止使用apt-mark命令自動安裝,升級或刪除軟件包

請注意 此方法不會阻止手動拆卸包裝。 您仍然可以使用以下方法刪除鎖定的軟件包 apt-get remove <packagename> 命令。

此方法僅防止在系統升級期間自動安裝,更新,升級或刪除該應用程序。 持有包裹實際上意味着您要告訴包裹管理者 即使有新版本,也無論如何都保持當前版本。 阻止圖形驅動程序時,此技巧非常有用。 如果更新後當前正在運行的程序的最新版本中斷,這也很有用。

每當您嘗試使用命令更新系統時 sudo apt-get update 要麼 sudo apt-get upgrade,標有標籤的軟件包在您持有該軟件包時仍將是相同版本。

Apt-mark並不是阻止Debian或Ubuntu中軟件包更改的唯一CLI實用程序。 還有兩種方法可以將程序包置於保留狀態,然後在以後從命令行取消保留它。

2.在Debian,Ubuntu中使用dpkg防止軟件包升級

公斤 是用於安裝,構建,刪除和管理Debian軟件包的命令行實用程序。

例如放入包裝 停止,使用dpkg暫停,運行:

$ echo "htop hold" | sudo dpkg --set-selections

您可以查看之前擱置的包裹的狀態,運行:

$ dpkg --get-selections | grep "htop"
htop						hold

如您所見,htop被暫停。

要查看所有軟件包的狀態,請運行:

$ dpkg --get-selections

要解壓包裝,請執行以下操作:

$ echo "htop install" | sudo dpkg --set-selections

在Debian,Ubuntu中使用dpkg阻止軟件包升級

3.在Debian,Ubuntu中使用aptitude阻止軟件包升級

才智 是Debian GNU / Linux軟件包系統的基於文本的界面。 它允許用戶執行各種軟件包管理任務,例如安裝,更新,升級,列出和刪除軟件包。

要擱置軟件包並防止其自動升級,請運行:

$ sudo aptitude hold htop

要查看軟件包的狀態,請運行:

$ aptitude show htop

樣本輸出:

Package: htop                            
Version: 2.2.0-2build1
State: installed [held]
Automatically installed: no
Priority: optional
Section: utils
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 225 k
Depends: libc6 (>= 2.15), libncursesw6 (>= 6), libtinfo6 (>= 6)
Suggests: lsof, strace
Description: interactive processes viewer
 Htop is an ncursed-based process viewer similar to top, but it allows
 one to scroll the list vertically and horizontally to see all processes
 and their full command lines. 
 
 Tasks related to processes (killing, renicing) can be done without
 entering their PIDs.
Homepage: https://hisham.hm/htop/

如您在上面的輸出中看到的,htop軟件包正在升級中。

要解壓包裝,只需執行以下操作:

$ sudo aptitude unhold htop

在Debian,Ubuntu中使用aptitude阻止軟件包升級在Debian,Ubuntu中使用aptitude阻止軟件包升級

4.防止在Debian,Ubuntu中使用Synaptic軟件包管理器自動安裝,升級或刪除軟件包

如果你有 突觸的 安裝在系統上的軟件包管理器中,您可以輕鬆地鎖定軟件包以免安裝,更新,升級或刪除軟件包。

打開Synaptic管理器,然後搜索要保存的軟件包。 然後點擊 從菜單欄中,然後單擊 保持

防止使用Synaptic軟件包管理器自動安裝,升級或刪除軟件包防止使用Synaptic軟件包管理器自動安裝,升級或刪除軟件包

而已。 現在,只要您保留它,就不會在系統升級過程中碰到該軟件包。

要取消保留它,請轉到 突觸->包裹->解鎖 版。

如果您的系統中未安裝Synaptic軟件包管理器,則可以使用以下命令進行安裝:

$ sudo apt install synaptic

結論

在本教程中,您學習了如何防止在基於Debian的系統(例如Ubuntu,Linux Mint和Pop!_OS等)中自動安裝,升級和刪除軟件包。雖然保留軟件包在某些情況下可能會有所幫助,在Ubuntu系統中留下安全漏洞。 必須知道何時保留或取消保留包裹。 請謹慎使用此功能。 祝好運!

相關閱讀:

  • 如何忽略軟件包在Arch Linux中的升級

特色圖片 erfouris工作室Pixabay

APTapt-getapt-markDebianLinuxLinux基礎Linux命令包管理突觸包管理器Ubuntu

Sidebar