update-alternatives
是一个在 Linux 系统(尤其是 Debian 系列,包括 Ubuntu)上用于管理多个相同功能的软件版本的命令。它让你可以在系统中安装多个版本的同一个程序(例如多个版本的 GCC),并通过 优先级 和 符号链接 来控制默认使用哪个版本。
让我们详细解释一下以下命令的作用:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 60
1. update-alternatives
这是主命令,用于管理多个可替代版本的工具。它管理的是系统中的符号链接,帮助用户在多个版本之间轻松切换。
2. --install
这是 update-alternatives
的一个选项,用来注册一个新版本的可选项。此命令告诉系统将指定的程序(如 /usr/bin/gcc-13
)添加到 alternatives
系统中,并为其设置一个别名(如 gcc
)。
3. /usr/bin/gcc
这是符号链接的目标路径。这个路径通常是用户在终端中输入 gcc
时实际执行的文件。通过 update-alternatives
管理的符号链接会指向不同版本的可执行文件。
在这里,/usr/bin/gcc
是你在终端输入 gcc
时执行的默认程序位置。这个路径将会被 update-alternatives
重新指向 /usr/bin/gcc-13
(在本例中),根据优先级来决定使用哪个版本的 GCC。
4. gcc
这个参数是组名,表示这是一个与 gcc
相关的 "替代项组"。update-alternatives
使用组名来管理多个与同一个工具(这里是 GCC 编译器)相关的版本。
5. /usr/bin/gcc-13
这是实际的可执行文件的路径,即你希望系统选择的某个版本的 GCC。在这个命令中,/usr/bin/gcc-13
是具体的 GCC 13 版本的可执行文件路径。
6. 60
这个数字表示优先级。当系统有多个版本的同一个程序时,update-alternatives
会根据优先级来决定使用哪个版本。数字越大,优先级越高。
例如:
- 如果你有
gcc-10
和gcc-13
两个版本,分别设置了优先级为 40 和 60,系统将使用优先级为 60 的gcc-13
作为默认版本。
命令的整体作用:
- 注册
/usr/bin/gcc-13
作为 GCC 的一个版本。 - 创建或更新符号链接
/usr/bin/gcc
,并将它指向/usr/bin/gcc-13
,如果当前其他版本的 GCC 优先级更低(例如gcc-10
的优先级为 40,而gcc-13
是 60),那么/usr/bin/gcc
将指向gcc-13
。 - 优先级设定:
60
代表优先级为 60,意味着如果没有其他版本的 GCC 具有更高的优先级,系统将使用gcc-13
作为默认 GCC 版本。
切换版本的使用方法:
在注册多个版本的 GCC 后,你可以使用 update-alternatives
手动切换默认的 GCC 版本:
sudo update-alternatives --config gcc
执行此命令后,系统将显示所有已注册的 GCC 版本,供你选择。你可以选择所需的版本,并将其设为默认。
总结:
该命令的作用是将 /usr/bin/gcc-13
作为 GCC 编译器的一个版本注册到 update-alternatives
系统中,并设置优先级为 60。如果没有更高优先级的其他 GCC 版本,/usr/bin/gcc
将指向 gcc-13
,从而使得 GCC 13 成为系统中的默认版本。