alternatives命令用法

本文详细介绍了Linux下的alternatives命令,一个用于管理多个版本软件的全局设置工具。通过update-alternatives命令,可以轻松地在不同版本间切换,如JDK10和JDK8。文章解释了install、remove、auto、config和display等选项的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


alternatives是Linux下的一个功能强大的命令。只能在root权限下执行。如系统中有几个命令功能十分类似,却又不能随意删除,那么可以用 alternatives 来指定一个全局的设置。

alternatives常用于同一个系统中安装同一软件的多个版本。比如为了开发需要,我需要安装JDK10,同时还需要JDK8,我怎么样才能忽略安装路径,按照我自己的意思,使用我想要的java版本呢?
命令格式:
update-alternatives [options] command

deepin@deepin-PC:~$ update-alternatives
用法:alternatives --install <链接> <名称> <路径> <优先度>
                    [--initscript <服务>]
                    [--slave <链接> <名称> <路径>]*
       alternatives --remove <名称> <路径>
       alternatives --auto <名称>
       alternatives --config <名称>
       alternatives --display <名称>
       alternatives --set <名称> <路径>
       alternatives --list

公用选项:–verbose --test --help --usage --version
–altdir <目录> --admindir <目录>

1、install选项

install选项的功能就是增加一组新的系统命令链接符
使用语法:
update-alternatives --install link name path priority [–slave link name path]…
其中link为系统中功能相同软件的 公共链接目录,比如/usr/bin/java(需绝对目录);

name为命令链接符名称,如java;

path为你所要使用新命令、新软件的所在目录;

priority为优先级, 当命令链接已存在时,需高于当前值,因为当alternative为自动模式时,系统默认启用priority高的链接;

–slave为从alternative。

alternative有两种模式:auto和manual,默认都为auto模式,因为大多数情况下update-alternatives命令都被postinst (configure) or prerm (install)调用的,如果将其更改成手动的话安装脚本将不会更新它了。

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-13/bin/java 2

/usr/bin/java -----------> java link所在的路径
java -----------> 创建link的名称
/usr/lib/jvm/jdk-13/bin/java-----------> java链接指向的路径
2-----------> 根据版本号设置的优先级(更改的优先级需要大于当前的)

2、remove选项

remove选项的功能是删除一个alternative及相关从alternative
使用语法:
update-alternatives --remove name path

其中name与path与install中的一致,如果所删除的链接组中还有其他链接的话,系统将会自动从其他中选择一个priority高的链接作为默认为链接。
例如:update-alternatives --remove unpack200 /usr/lib/jvm/jdk-13/bin/pack200

3、auto选项

auto选项用于修改命令的模式

语法如下:

update-alternatives --auto name #只有auto和manual两个模式,默认都为auto模式

4、config选项

config选项功能为在现有的命令链接选择一个作为系统默认的

使用语法为:
update-alternatives --config name

deepin@deepin-PC:~$  update-alternatives --config java
有 3 个候选项可用于替换 java (提供 /usr/bin/java)。

  选择       路径                          优先级  状态
------------------------------------------------------------
* 0            /usr/lib/jvm/jdk-13/bin/java     170051    自动模式
  1            /opt/jdk/jdk-9.0.4/bin/java      1         手动模式
  2            /opt/jdk/jdk1.8.0_221/bin/java   0         手动模式
  3            /usr/lib/jvm/jdk-13/bin/java     170051    手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:2

这里才是配置版本的重点,当系统中有多个版本时,可以通过该命令设置默认版本,类似于默认程序
星号表示当前系统使用的,加号表示优先级最高的。输入数值可修改默认配置,直接按回车保持原来状态。

5、display选项

display选项的功能就是查看一个命令链接组的所有信息,包括链接的模式(自动还是手动)、链接priority值、所有可 用的链接命令等等。

使用语法:
update-alternatives --display name

deepin@deepin-PC:~$ update-alternatives --display java
java - 自动模式
  最佳链接版本为 /usr/lib/jvm/jdk-13/bin/java
 链接目前指向 /usr/lib/jvm/jdk-13/bin/java
  链接 java 指向 /usr/bin/java
/opt/jdk/jdk-9.0.4/bin/java - 优先级 1
/opt/jdk/jdk1.8.0_221/bin/java - 优先级 0
/usr/lib/jvm/jdk-13/bin/java - 优先级 170051
`update-alternatives --install` 是一个用于在多个版本的相同程序之间切换的命令。它允许系统管理员设置不同程序的优先级,并让用户选择默认使用哪个版本。具体用法如下: ### 命令格式 ```bash sudo update-alternatives --install <link> <name> <path> <priority> ``` ### 参数说明 - `<link>`: 目标链接文件的路径(通常是 `/usr/bin` 下的可执行文件)。 - `<name>`: 交替项的名称(例如 `gcc`)。 - `<path>`: 实际可执行文件的路径(例如 `/usr/bin/gcc-9`)。 - `<priority>`: 设置该版本的优先级,数值越大优先级越高。 ### 示例 假设你想安装两个版本的 GCC 并设置它们的优先级: 1. **安装 GCC 11 和 GCC 9** ```bash sudo apt-get install gcc-11 sudo apt-get install gcc-9 ``` 2. **添加到 alternatives 系统** ```bash sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 40 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50 ``` 3. **配置默认版本** ```bash sudo update-alternatives --config gcc ``` 运行 `--config` 命令后,系统会提示你选择默认使用的 GCC 版本。 ### 文档中的示例 在提供的文档中,有以下几个 `update-alternatives --install` 命令: 1. **安装 GCC 编译器** ```bash sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 40 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50 ``` 2. **安装 G++ 编译器** ```bash sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 40 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 50 ``` 3. **安装 GFortran 编译器** ```bash sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-11 40 sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-9 50 ``` 这些命令将不同的编译器版本添加到 `alternatives` 系统中,并设置了各自的优先级。你可以通过 `--config` 命令来选择默认使用的版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值