在 Linux 系統中,為了軟體的相容性或編譯的需求,時常會需要切換使用不同的軟體版本。update-alternatives
是一個在 Debian 及其衍生發行版(例如 Ubuntu)中用來管理與切換軟體版本的工具;而紅帽 Red Hat 家族的 Fedora、RHEL 與 CentOS 對應的指令則為 alternatives
。
例如,若系統中安裝數個版本的 gcc/g++,我們可以透過
update-alternatives --install <link> <name> <path> <priority>
的方式來指定版本與對應的優先序。筆者習慣將 gcc/g++ 版本號乘以 10 作為優先序,當然您可以自行決定。
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 47
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 47
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 49
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 49
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
若要選取版本,則利用以下指令,就可以輸入數字編號來做選擇
$ sudo update-alternatives --config gcc
$ sudo update-alternatives --config g++
There are 4 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/gcc-9 90 auto mode
* 1 /usr/bin/gcc-4.7 47 manual mode
2 /usr/bin/gcc-4.8 48 manual mode
3 /usr/bin/gcc-4.9 49 manual mode
4 /usr/bin/gcc-9 90 manual mode
Press <enter> to keep the current choice[*], or type selection number:
如此一來就可以隨心選擇我們所需的 gcc/g++ 版本了。