Linux-alternatives命令

简介

在 Linux 系统中,alternatives 命令是一个强大的工具,用于管理系统中多个同功能软件或软件的多个不同版本之间的切换。简单来说,它可以帮助你在不同的版本之间轻松切换,就像是一个“版本切换器”。

alternatives 的主要作用

  • 管理多个版本: 当系统中安装了多个版本的同一软件(例如,多个版本的 Python、GCC 等),alternatives 可以帮助你管理这些版本,并方便地在它们之间切换。
  • 创建符号链接: alternatives 通过创建符号链接来实现版本的切换。这些符号链接指向当前正在使用的版本。
  • 设置默认版本: 你可以指定一个版本作为默认版本,当你在终端中直接输入命令时,系统会自动执行默认版本的命令。

常用命令选项

[root@centOS7 lib]# alternatives
alternatives(备用)版本 1.7.6 - 版权 (C) 2001 红帽公司
在 GNU 公共许可条款下,本软件可被自由地重发行。

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

common options: --verbose --test --help --usage --version --keep-missing
                --altdir <目录> --admindir <目录>
  • alternatives --install <link> <name> <path> <priority>:
    • link: 符号链接的名称,通常是命令的名称。
    • name: 描述,用于区分不同的版本。
    • path: 实际可执行文件的路径。
    • priority: 优先级,数字越大优先级越高。
  • alternatives --config <link>: 配置指定符号链接,显示所有可用的版本并允许你选择默认版本。
  • alternatives --remove <name>: 删除指定的备选方案。
  • alternatives --auto <link>: 自动选择优先级最高的备选方案。
  • alternatives --display <name>: 查询某个软件的全部信息

举例说明

查询某个软件的全部信息,比如 jdk

# 查询全部软件信息
[root@centOS7 lib]# alternatives --list
# 查询某个软件的全部信息,比如java
[root@centOS7 lib]# alternatives --display java
java - 状态为手工。
链接当前指向 /usr/lib/jvm/java-11-openjdk-11.0.15.0.9-2.el7_9.x86_64/bin/java

向alternatives 中加入一个版本的 jdk ,,首先jdk已经安装在/usr/lib/jvm/jdk-13/bin/java目录下。
以下命令的意思是把 /usr/bin/java 这个软连接指向真实的安装目录,并设置优先级为2

[root@centOS7 lib]# alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-13/bin/java 2

选择一个你希望的版本,比如我要切换 jdk 的版本,直接输入选项数字即可,因为我只安装了一个版本,所以只有一个选项。

[root@centOS7 lib]# alternatives --config java

共有 1 个提供“java”的程序。

  选项    命令
-----------------------------------------------
*+ 1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.15.0.9-2.el7_9.x86_64/bin/java)

按 Enter 保留当前选项[+],或者键入选项编号:1

删除某个版本


# 删除一个版本
alternatives --remove java /usr/lib/jvm/jdk-13/bin/java 

根据优先级来自动选择版本


# 选择自动模式,会自动选择优先级最高的作为当前版本
alternatives --auto java
SystemCaller
SystemCaller

https://gravatar.com/noisily745e35dad0

文章: 47

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注