我这里出了点小问题。
我使用Ubuntu 22.04,在本地使用php 8.1和Composer 2.2.6,一切运行良好,但现在我有一个需要php 7.4的项目,所以我安装了php v7.4,并将其更改为我的系统的全局版本。
现在的问题是,它找不到 composer 。
当我运行Composer、Composer Install、Composer-v或类似命令时,它给我这个错误。
PHP分析错误:语法错误,意外的‘|’,163行的/usr/Share/php/Composer/IO/BaseIO.php中的预期变量(T_Variable)。分析错误:语法错误,意外的‘|’,第163行的/usr/Share/php/Composer/IO/BaseIO.php中的预期变量(T_Variable)
你们中的一些人知道问题可能是什么吗?我应该为php v7.4安装Composer吗?
2条答案
按热度按时间hfwmuf9z1#
我有几乎与OP相同的设置:Ubuntu 22.04.1 LTS和一个需要PHP 7.4.x的项目,当我试图使用任何类型的参数运行Composer时,我得到了完全相同的错误消息,无论是在项目文件夹内还是在项目文件夹外。我安装了Composer和
sudo apt-get install composer
,apt show composer -a
给了我2.2.6作为存储库版本。主要区别在于,我没有安装PHP8.x,因为我不需要它(我使用ppa:ondrej/php存储库安装了php7.4和扩展),所以我无法切换我的PHP版本。
对我有效的是用
sudo apt-get remove composer
删除Composer,然后按照Composer官方网站的下载指南:https://getcomposer.org/download/警告:他们明确表示不要重新分发安装代码,因为每个版本都会有所不同,但会链接到下载页面(完成)。无论如何,我都会这样做,因为当前的最新版本(在本文发布时为2.4.2)适用于业务处问题中规定的相同情况,并用于文件编制目的。
如何在本地安装Composer(可能需要sudo,如果版本变化,第二行hash会有所不同):
在此之后,如果您想要全局使用它,请将其放在路径中的某个位置,例如:
composer --version
和同时运行安装/更新现在应该可以工作了nbewdwxp2#
我解决了这个问题,只需重新安装Composer,但使用php 7.4作为全局php版本,现在它可以同时支持两者(php 7.4和php 8.1)。