在linux中经常会遇到需要多个版本的php或者多版本jdk等情况,如何使它们和平共处呢??

命令

# update-alternatives 
update-alternatives: need --display, --query, --list, --get-selections, --config, --set, --set-selections, --install, --remove, --all, --remove-all or --auto

# update-alternatives --list php
/usr/local/php/bin/php
/usr/local/php8.0/bin/php
/usr/local/php8.1/bin/php
/usr/local/php8.2/bin/php

安装

该命令可以帮助我们更快的切换环境,但是使用前需要先“安装”。

//                      安装↓     需要被切换的命令↓    命名↓   对应软件版本的执行文件↓   权重↓
# update-alternatives --install /etc/bin/php            php    /usr/local/php8.0/bin/php 200
# update-alternatives --install /etc/bin/php            php    /usr/local/php8.1/bin/php 200
# update-alternatives --install /etc/bin/php            php    /usr/local/php8.3/bin/php 200

如果有3个版本,那么需要执行3次。

查看

# update-alternatives --list php
/usr/local/php/bin/php
/usr/local/php8.0/bin/php
/usr/local/php8.1/bin/php
/usr/local/php8.2/bin/php

可以看到成功添加了几个版本。

切换

# update-alternatives --config php
There are 4 choices for the alternative php (providing /bin/php).

  Selection    Path                       Priority   Status
------------------------------------------------------------
  0            /usr/local/php8.2/bin/php   300       auto mode
  1            /usr/local/php/bin/php      100       manual mode
  2            /usr/local/php8.0/bin/php   200       manual mode
  3            /usr/local/php8.1/bin/php   200       manual mode
* 4            /usr/local/php8.2/bin/php   300       manual mode

Press <enter> to keep the current choice[*], or type selection number: 2  // 输入要切换的版本

更多用法,请自行百度哦。