從 apt 升級中排除/保留/阻止特定軟體包的三種方法
有時,由於某些應用依賴性,你可能會意外更新不想更新的軟體包。這在全系統更新或自動包升級時經常會發生。如果發生這種情況,可能會破壞應用的功能。這會造成嚴重的問題,你需要花費大量時間來解決問題。
如何避免這種情況?如何從 apt-get
更新中排除軟體包?
如果你要從 Yum Update 中排除特定軟體包,請參考這篇。
是的,可以在 Debian 和 Ubuntu 系統上使用以下三種方法來完成。
- apt-mark 命令
- dpkg 命令
- aptitude 命令
我們將分別詳細展示。
方法 1:如何使用 apt-mark 命令排除 Debian/Ubuntu 系統上的軟體包更新
apt-mark
用於將軟體包標記/取消標記為自動安裝。
hold
選項用於將軟體包標記為保留,以防止軟體包被自動安裝、升級或刪除。
unhold
選項用於取消先前面的設定,以允許重複執行所有操作。
執行以下命令以使用 apt-mark
命令保留指定的軟體包。
$ sudo apt-mark hold nano
nano set on hold.
保留軟體包後,請執行以下 apt-mark
命令檢視它們。
$ sudo apt-mark showhold
nano
這表明在執行完整的系統更新時,不會升級 nano 包。
$ sudo apt update
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages have been kept back:
nano
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
執行以下命令,使用 apt-mark
命令取消保留 nano 包。
$ sudo apt-mark unhold nano
Canceled hold on nano.
方法 2:如何使用 dpkg 命令在 Debian/Ubuntu 系統上排除軟體包更新
dpkg
命令是一個 CLI 工具,用於安裝、構建、刪除和管理 Debian 軟體包。dpkg
的主要且更使用者友好的前端是 aptitude
。
執行以下命令使用 dpkg
命令阻止給定的軟體包。
語法:
$ echo "package_name hold" | sudo dpkg --set-selections
執行以下 dpkg
命令以保留 apache2 包。
$ echo "apache2 hold" | sudo dpkg --set-selections
保留軟體包後,請執行以下命令檢視它們。
$ sudo dpkg --get-selections | grep "hold"
apache2 hold
它會顯示在執行完整的系統更新時,不會升級 apache2包。
$ sudo apt update
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages have been kept back:
apache2
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
執行以下命令,使用 dpkg
命令取消對指定軟體包的保留。
語法:
$ echo "package_name install" | sudo dpkg --set-selections
執行以下命令,使用 dpkg
命令取消保留 apache2 包。
$ echo "apache2 install" | sudo dpkg --set-selections
方法 3:如何使用 aptitude 命令排除 Debian/Ubuntu 系統上的軟體包更新
aptitude
命令是 Debian 及其衍生版本的基於文本的軟體包管理介面。
它允許使用者檢視軟體包列表並執行軟體包管理任務,例如安裝、升級和刪除軟體包。它可以從可視介面或命令列執行操作。
執行以下命令,使用 aptitude
命令保留指定的軟體包。
$ sudo aptitude hold python3
保留某些軟體包後,請執行以下命令檢視它們。
$ sudo dpkg --get-selections | grep "hold"
或者
$ sudo apt-mark showhold
python3
這表明在執行完整的系統更新時,不會升級 python3 軟體包。
$ sudo apt update
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages have been kept back:
python3
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
使用 aptitude
命令執行以下命令以解除對 python3 軟體包的保留。
$ sudo aptitude unhold python3
via: https://www.2daygeek.com/debian-ubuntu-exclude-hold-prevent-packages-from-apt-get-upgrade/
作者:Magesh Maruthamuthu 選題:lujun9972 譯者:geekpi 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- 從Yum中排除特定包
- Ubuntu 20.04中建立本地APT軟體包倉庫UbuntuAPT
- 【slam】ubuntu中各種型別軟體包的安裝方法SLAMUbuntu型別
- 從電腦中刪除勒索軟體的5種方法
- 建立本地APT軟體包倉庫APT
- Ubuntu 系統下 apt-get 徹底解除安裝軟體包的方法Ubuntuapt-get
- 在Linux中,如何升級系統內所有已安裝軟體包?Linux
- 如何阻止電腦下載安裝垃圾軟體?阻止電腦下載垃圾軟體方法
- 如何在 Arch Linux 中降級軟體包Linux
- win10升級後軟體不能用怎麼辦_win10升級後軟體不能用恢復方法Win10
- 靜默方式安裝、升級oracle(三): 升級資料庫軟體及資料庫Oracle資料庫
- 軟體升級配置清單
- Go 中的三種排序方法Go排序
- Hive勒索軟體升級為Rust,採用更復雜的加密方法HiveRust加密
- apt-get——Debian Linux發行版中的APT軟體包管理工具apt-getLinux
- MySQL保留幾位小數的4種方法MySql
- win10系統阻止安裝軟體怎麼辦 win10安裝軟體被阻止解決方法Win10
- Linux 軟體安裝的三種方式Linux
- laravel 區域性排除中介軟體Laravel
- Go 函式的三種用法:方法、閉包、實參Go函式
- Linux下軟體包的多種安裝方式Linux
- 走向自主可控,從國產化軟硬體升級替換開始
- Python保留兩位小數五種常用的方法!Python
- RPM包的安裝與升級
- apt-key ——管理Debian Linux系統中的軟體包金鑰APTLinux
- apt-sortpkgs ——Debian Linux下對軟體包索引檔案進行排序的工具APTLinux索引排序
- 幾種軟體測試方法
- Ubuntu 軟體安裝命令:aptUbuntuAPT
- go fiber:全域性中介軟體新增排除的pathGo
- Fedora 30的升級方法
- 基於Http協議的軟體自動升級HTTP協議
- Linux centOS軟體安裝的三種方式LinuxCentOS
- Spring Boot中從自定義Logback訪問Spring Bean三種方法Spring BootBean
- win10如何攔截各種軟體的廣告彈窗_win10阻止各種軟體廣告視窗的步驟Win10
- Ubuntu學習之apt-get update 升級錯誤Ubuntuapt-get
- 故障排除-丟包嚴重的抓包解決
- ubutnu:apt安裝時報下列軟體包有未滿足的依賴關係APT
- Kimsuky APT組織使用新型的AppleSeed Android元件偽裝成安全軟體對韓特定目標進行攻擊APTAPPAndroid元件