如何鎖定APT軟件包 apt-mark hold防止升級(jí)

apt-mark hold 是 apt 包管理器用于鎖定特定軟件包、防止其被自動(dòng)升級(jí)的命令。1. 使用 sudo apt-mark hold 包名 可鎖定指定包,如 sudo apt-mark hold nginx;2. 執(zhí)行后該包在 apt upgrade 時(shí)將保持原版本;3. 用 apt-mark showhold 可查看已鎖定的包;4. 若要恢復(fù)升級(jí),使用 sudo apt-mark unhold 包名;5. 注意需準(zhǔn)確指定包名,部分自動(dòng)更新機(jī)制仍需額外配置,且長期鎖定可能引發(fā)依賴或安全問題。

如何鎖定APT軟件包 apt-mark hold防止升級(jí)

有時(shí)候你不想讓某些軟件包自動(dòng)升級(jí),比如因?yàn)榧嫒菪詥栴}或特定版本需求。這時(shí)候可以用 apt-mark hold 命令來鎖定 APT 包,防止它被意外更新。

如何鎖定APT軟件包 apt-mark hold防止升級(jí)


什么是 apt-mark hold?

apt-mark hold 是 APT 包管理器提供的一項(xiàng)功能,用于將某個(gè)已安裝的軟件包標(biāo)記為“保持當(dāng)前狀態(tài)”,也就是阻止它通過 apt upgrade 或系統(tǒng)更新機(jī)制進(jìn)行升級(jí)。

如何鎖定APT軟件包 apt-mark hold防止升級(jí)

使用這個(gè)命令不會(huì)影響其他包的升級(jí),只會(huì)影響你指定的那個(gè)包。

舉個(gè)例子:如果你正在運(yùn)行 mysql 5.7,并且不希望系統(tǒng)自動(dòng)升級(jí)到 MySQL 8.0,就可以用這個(gè)方法鎖定 MySQL 的相關(guān)包。

如何鎖定APT軟件包 apt-mark hold防止升級(jí)


如何使用 apt-mark hold 鎖定包

操作非常簡單,只需要一條命令:

sudo apt-mark hold 包名

比如你想鎖定 nginx

sudo apt-mark hold nginx

執(zhí)行完后,你會(huì)看到輸出類似:

nginx set on hold.

這樣之后,即使有新版本可用,在執(zhí)行 apt upgrade 時(shí)也不會(huì)升級(jí)這個(gè)包。

如果你想確認(rèn)哪些包已經(jīng)被鎖定,可以運(yùn)行:

apt-mark showhold

這條命令會(huì)列出所有當(dāng)前被“hold”的包。


如果想恢復(fù)升級(jí)怎么辦?

如果你后來決定放開限制,允許這個(gè)包繼續(xù)升級(jí),可以用:

sudo apt-mark unhold 包名

例如解除對(duì) nginx 的鎖定:

sudo apt-mark unhold nginx

同樣你會(huì)看到提示:

Canceled hold on nginx.

注意事項(xiàng)和常見問題

  • 并不是所有情況都適用:在一些自動(dòng)更新機(jī)制(如 unattended-upgrades)中,可能還需要額外配置才能完全阻止升級(jí)。
  • 包名要準(zhǔn)確:有些軟件可能會(huì)有多個(gè)相關(guān)的包名,比如 nginx, nginx-core, nginx-full 等,記得檢查清楚你要鎖定的是哪個(gè)具體包。
  • 不要濫用:長期鎖定太多包可能導(dǎo)致依賴沖突或安全漏洞無法修復(fù),建議只在必要時(shí)使用。

基本上就這些。這個(gè)功能雖然簡單,但在控制服務(wù)器環(huán)境版本一致性上非常實(shí)用。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享