update-alternatives 命令的更改未生效

update-alternatives 命令的更改未生效

我尝试使用以下命令更改 PHP CLI 版本sudo update-alternatives --config php

There are 2 choices for the alternative php (providing /usr/bin/php).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/php8.1      81        auto mode
* 1            /usr/bin/php8.0.15   1         manual mode
  2            /usr/bin/php8.1      81        manual mode

我将其设置为 0 并使用以下命令进行检查update-alternatives --display php

php - auto mode
  link best version is /usr/bin/php8.1
  link currently points to /usr/bin/php8.1
  link php is /usr/bin/php
  slave php.1.gz is /usr/share/man/man1/php.1.gz
/usr/bin/php8.0.15 - priority 1
/usr/bin/php8.1 - priority 81
  slave php.1.gz: /usr/share/man/man1/php8.1.1.gz

看起来它有效,但如果我检查它php -v然后我得到:

PHP 8.0.15 (cli) (built: Jun  7 2022 10:21:21) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.15, Copyright (c) Zend Technologies

command -v php输出/usr/local/bin/php


我正在使用 Ubuntu 22.04 LTS

答案1

您可能已经在您的 中/usr/local/bin提前了,并且由于 中 有一个二进制文件,因此您的 shell 使用它。配置的替代方案最终没有任何效果——至少对基于该的任何东西都是没有效果的。/usr/binPATHphp/usr/local/binphpupdate-alternativesPATH

要解决此问题,对于您的情况,我建议删除/usr/local.一种更简单的方法是重新排序您的PATH,但这可能会影响您依赖于 的其他二进制文件/usr/local/bin

相关内容