APT 鎖定 與 解除套件指定版本 (Hold)

Debian、Ubuntu Linux 使用 APT 來管理系統套件,系統一直升級上來,總會遇到某些套件想要先鎖定在某些指定版本的問題,或者系統內有多個版本,要怎麼用系統的命令切換呢?

  • 註:建議使用 apt-mark 和 update-alternatives 來設定

APT 鎖定 與 解除套件指定版本 (Hold)

APT 可以新增 /etc/apt/preferences 此檔案,內容參考可見此篇:Debian Linux 完整移除套件 / 重新安裝套件 / 鎖定套件版本(apt)

  • vim /etc/apt/preferences # 內容如下, 把版本編號寫死.

Package: gaim
Pin: version 0.58

Package: php
Pin: version 7.2
Pin-Priority: 550

另外可以靠 apt-mark 來做鎖定的操作 (apt-mark 操作起來比較直覺)

apt-mark 的操作方式很簡單,看下面指令就可以理解

  • sudo apt-mark hold php7 # 若想鎖定在 php 7.2,就寫 php7.2
  • sudo apt-mark unhold php7
  • sudo apt-mark showhold

在系統裡面有多個版本都裝在一起,ex: php5.6、php7.0 .. 等等,要切換可以靠 update-alternatives,如下述:

  • sudo update-alternatives
  • sudo update-alternatives --set php /usr/bin/php5.6 # 指定要使用 php5.6
  • sudo update-alternatives --config php # 跳出選擇手動挑選

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料