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 # 跳出選擇手動挑選