update-alternatives

What’s the problem

有时在你的系统上可能已经安装了多个gcc版本(gcc-4.8, gcc-8, gcc-9)或Python版本(Python, Python 2.7, Python 3.8), 那么当你执行gcc或python命令时,到底用的是哪个gcc或python版本呢?而且如何方便地指定我们期望使用的版本呢?在大多数Linux发行版都有一个update-alternatives命令专门处理这种情况。

How to solve it

update-alternatives通过在/etc/alternatives/目录下创建一个符号链接文件,通过修改这个文件的指向达到轻松更换像gcc或Python这类系统软件的版本的目的。

Synopsis

update-alternatives [option…] command

Commands

–install link name path priority

–set name path

–remove name path

–display name

update-alternatives --display python
1
2
3
4
5
python - auto mode
link best version is /usr/bin/python3
link currently points to /usr/bin/python3
link python is /usr/bin/python
/usr/bin/python3 - priority 5
sudo update-alternatives --installpython /usr/bin/python3 3
1
update-alternatives: 使用 /usr/bin/python3 来在自动模式中提供 /usr/bin/python (python)
python -V
1
Python 3.12.2