Linux使用update-alternatives进行软件版本切换

本文介绍了如何使用update-alternatives命令在Linux系统中轻松切换不同的Java版本。通过具体实例展示了命令的使用方法,包括安装、删除、配置和显示现有Java版本。

1.update-alternatives命令介绍

update-alternatives是Linux系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个版本。比如,系统中国同时安装了open jdk和sun jdk两个版本,默认希望使用sun jdk,这时update-alternatives命令可以在不必卸载open jdk同时使用sun jdk。

查看update-alternatives命令选项

[root]# update-alternatives
alternatives version 1.3.49.3 - Copyright (C) 2001 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.

usage: alternatives --install <link> <name> <path> <priority>
                    [--initscript <service>]
                    [--slave <link> <name> <path>]*
       alternatives --remove <name> <path>
       alternatives --auto <name>
       alternatives --config <name>
       alternatives --display <name>
       alternatives --set <name> <path>

common options: --verbose --test --help --usage --version
                --altdir <directory> --admindir <directory>
  • install 选项

    表示新增一组新的系统命令链接符。

    update-alternatives --install /usr/bin/java  java /usr/lib/jvm/jdk8/bin/java 300
    
    #/usr/bin/java  java link所在的路径
    
    
    #java 创建链接符的名称
    
    
    #/usr/lib/jvm/jdk8/bin/java 要使用新命令、新软件所在的目录
    
    
    #300 设置优先级
    
  • remove选项

    表示删除一个alternative的命令或软件目录

    update-alternatives --remove java /usr/lib/jvm/jdk8/bin/java
  • auto选项

    用于修改命令的模式

    update-alternatives --auto name
    
    #提供auto和manual两种模式,默认为auto
    
  • config选项

    为现有的命令链接符选择一个默认的选项

    update-alternatives --config name
    
    [root]# update-alternatives --config java
    
    There are 3 programs which provide 'java'.
    
    Selection    Command
    <hr />
    
     1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
    *  2           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
    + 3           /usr/lib/jvm/jdk8/bin/java
    

    注意: 当系统中存在多个版本的是时候,可以根据命令的提示设置默认使用的版本。

  • display选项

    用来查看命令链接符上所有信息,包括链接模式等信息。

    [root]# update-alternatives --display javac
    javac - status is auto.
    link currently points to /usr/lib/jvm/jdk8/bin/javac
    /usr/lib/jvm/jdk8/bin/javac - priority 300
    Current `best' version is /usr/lib/jvm/jdk8/bin/javac.

2.设置默认的java为sun jdk的步骤

1.查看当前java版本

[root]# java -version
java version "1.7.0_09-icedtea"
OpenJDK Runtime Environment (rhel-2.3.7.1.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

2.执行“update-alternatives –display java查看可供选择的信息。

3.执行`update-alternatives --config java根据提示设置默认版本。

4.再次查看Java版本,确认修改是否成功。

[root]# java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
### 如何使用 `update-alternatives` 切换 Python 版本Linux 系统中,`update-alternatives` 是一个强大的工具,用于管理多个版本软件。通过该工具,可以轻松地切换 Python 的默认版本。以下是具体方法: #### 1. 安装多个 Python 版本 确保系统中已安装多个 Python 版本。例如,在 Ubuntu 16.04 中,默认可能已经安装了 Python 2.7 和 Python 3.5[^2]。如果需要安装其他版本(如 Python 3.6 或 Python 3.9),可以通过以下命令完成: ```bash sudo apt-get update sudo apt-get install python3.6 ``` #### 2. 添加 Python 版本到 `update-alternatives` 将每个 Python 版本添加到 `update-alternatives` 系统中。例如,假设需要管理 Python 3.5 和 Python 3.6,执行以下命令: ```bash sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2 ``` 上述命令中的数字(如 `1` 和 `2`)表示优先级,数值越高优先级越高[^3]。 #### 3. 查看可用的 Python 版本 使用以下命令查看当前系统中所有可用的 Python 版本: ```bash update-alternatives --list python3 ``` 如果未正确配置,可能会出现错误提示 `update-alternatives: error: no alternatives for python`[^1]。此时需要重新检查是否已正确添加版本。 #### 4. 切换 Python 版本 通过交互式方式选择所需的 Python 版本: ```bash sudo update-alternatives --config python3 ``` 系统会列出所有可用的 Python 版本,并提示用户输入编号进行选择。 #### 5. 验证当前 Python 版本 切换完成后,验证当前使用的 Python 版本: ```bash python3 --version ``` #### 注意事项 - 如果需要切换全局默认的 Python 版本,请确保新版本与系统兼容,避免影响依赖旧版本 Python 的系统组件。 - 使用 `update-alternatives` 可以避免直接修改符号链接,从而减少手动操作带来的错误风险[^4]。 ```python # 示例代码:验证 Python 版本 import sys print(sys.version) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值