Laravel composer安装给出错误“您的锁定文件不包含兼容的包集,请运行composer更新”

wfveoks0  于 2023-01-21  发布在  其他
关注(0)|答案(9)|浏览(421)

我写laravel代码已经有一段时间了。目前,我尝试从github克隆一个项目并在本地编辑。我在我的项目目录中安装了composer,但没有包含vendor文件夹。我尝试运行composer install,但我得到了这个错误

Your lock file does not contain a compatible set of packages. Please run composer update

我该如何解决这个问题?
注意:我试过在以前的克隆上运行composer update,但没有成功。

omvjsjqw

omvjsjqw1#

运行此命令:

composer install --ignore-platform-reqs

composer update --ignore-platform-reqs
hwamh0ep

hwamh0ep2#

免责声明,此解决方案不会修复PHP 8项目的问题。
在大多数情况下,这是因为PHP 8(在我的例子中,它是GitHub CI操作自动启动使用PHP 8,即使我的项目是php 7. 4)
如果您安装了多个PHP(例如在同一服务器上安装了7.4和8),您可以使用以下方法来修复它。
在composer.json文件中指定php版本

"config": {
        "platform": {
            "php": "7.3"
        }
    },

如果您已经提交了锁定文件,请在将以上行添加到composer.json后运行composer update,然后提交新的锁定文件。(请注意,composer update会将您的包升级到最新版本)

xqkwcwgp

xqkwcwgp3#

我用这个命令解决了这个问题:

composer self-update --1

这可能是因为在项目开发时,composer在另一个版本上,当将主版本从1更改为2时,兼容性被破坏。使用此命令,您可以降级composer,并可能解决此问题

sc4hvdpw

sc4hvdpw4#

您应该尝试运行composer update --lock,它将更新所有包并重新创建compose.lock文件。
您可以删除composer.lock文件,然后运行composer install,这也将重新创建.lock文件。
这解决了我的问题。

knpiaxh1

knpiaxh15#

我在Github Action尝试部署Laravel应用时遇到了这个错误,这可能与OP的情况不同,但没有一个建议对我有效。在这里添加我的答案,以防有人遇到类似的问题。
我不得不在Github操作中禁用-q,然后看到它在抱怨没有安装扩展。
确保composer的php扩展中的require部分与github操作文件中的shivammathur/setup-php@v2匹配,它将再次部署

ht4b089n

ht4b089n6#

我在Garuda Linux(基于arch)的cakephp项目中遇到过这个问题

修复:

1.使用sudo pacman -S php-intl安装php-intl
1.通过编辑php配置来启用php intl(在我的例子中是/etc/php/php.ini)。添加extension=intl或取消注解现有的
1.重新启动apache或任何你正在使用的

ev7lccsx

ev7lccsx7#

我用composer部署另一个项目时也遇到了同样的错误,但问题是缺少php扩展。
我知道你解决了你的问题,但对于任何人看到同样的错误消息,这里是一个一般指导:
在composer安装的依赖性解决步骤中,每次出现冲突时都会显示错误消息Your lock file does not contain a compatible set of packages. Please run composer update。(请参阅composer源代码中的相关部分)
不过,它并没有揭示真实的的问题,而且很难猜测。
要获得确切的解释,您可以将--verbose选项添加到composer install命令(该选项可用于任何composer命令(请参阅文档)):composer install --verbose
它会给予你完整的消息解释什么是阻止composer安装完成(包版本冲突,缺少php扩展等),然后你就可以解决这个问题。
希望这能帮上忙。

798qvoo8

798qvoo88#

在我的例子中,这个问题发生在Ubuntu 20. 04桌面上。这是由于一些包丢失。
我运行了以下命令来安装一些包,然后重新运行Composer install,它工作正常。这些命令是:

sudo apt-get install php-mbstring

sudo apt-get install php-xml

然后重新运行composer安装

vbopmzt1

vbopmzt19#

最近我刚刚遇到这个错误,当我试图运行我的Laravel 7项目,需要**php v7.php v8*.由于我忘记了我的php版本,我只是尝试了一堆 composer 命令,但只是得到错误后的错误.
无论如何,要解决这个问题,只需根据需要降级/升级php版本。只需在youtube中搜索如何做到这一点。你可以在composer.json文件中看到你的项目所需的php版本(只是如果你想知道)
你也可以尝试以下方式(但虽然它没有为我工作,似乎它帮助了不少人)
--打开composer.json文件并更改php版本如下:"php": "^7.3|^8.1"
--然后运行composer update

相关问题