Laravel 安装程序 v1.4.1 与 PHP 7.1 包不兼容?

Posted

技术标签:

【中文标题】Laravel 安装程序 v1.4.1 与 PHP 7.1 包不兼容?【英文标题】:Laravel installer v1.4.1 not compatible with PHP 7.1 packages? 【发布时间】:2018-05-20 05:25:23 【问题描述】:

我无法在新的“Pop!_OS”(基于 Ubuntu 17.10 by system76)linux 上安装 'laravel 5.5'安装。

找不到如何“删除 symfony/console v4.0.1”。 那么任何人都可以帮我解决这个烦恼吗?

我按照 https://www.youtube.com/watch?v=b38mUODC1l4 这个教程进行操作,一切都很完美,直到 composer global require "laravel/installer" 命令。

输入此命令后,终端结果为:

    Changed current directory to /home/chakra/.config/composer
Using version ^1.4 for laravel/installer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: don't install laravel/installer v1.4.1
    - Conclusion: remove symfony/console v4.0.1
    - Installation request for laravel/installer ^1.4 -> satisfiable by laravel/installer[v1.4.0, v1.4.1].
    - Conclusion: don't install symfony/console v4.0.1
    - laravel/installer v1.4.0 requires symfony/console ~2.3|~3.0 -> satisfiable by symfony/console[v2.3.0, ..., v3.4.1].
    - Can only install one of: symfony/console[v3.0.0, v4.0.1].
    ...
    - Can only install one of: symfony/console[v2.8.9, v4.0.1].
    - Installation request for symfony/console (locked at v4.0.1) -> satisfiable by symfony/console[v4.0.1].


Installation failed, reverting ./composer.json to its original content.
➜  Sites 

composer.json /home/chakra/.config/composer(一切都是默认的,没有像视频教程中那样改变任何东西)

sudo nano composer.json之后:


    "require": 
        "cpriego/valet-linux": "^2.0"
        

Composer、npm、nginx 版本:

➜  ~ which composer
/usr/local/bin/composer
➜  ~ composer --version
Composer version 1.5.5 2017-12-01 14:42:57
➜  ~ npm --version
5.5.1
➜  ~ nginx -v
nginx version: nginx/1.12.1 (Ubuntu)
➜  ~ 

【问题讨论】:

请出示您的 composer.json。我不认为你的 php 模块是相关的,你可以从你的问题中删除它恕我直言。 感谢您的评论 :) OK 将添加 composer.json 内容。 【参考方案1】:

所以在 Nico Haase 的帮助下,我想通了。

而问题的解决方法是:

composer global remove cpriego/valet-linux (这也将删除麻烦的 symfony/console v4.0.1)删除此安装 laravel 后:

composer global require "laravel/installer"(它安装了所有必需的软件包,没有任何错误)在重新安装 'Valet Linux'

composer global require cpriego/valet-linux

现在一切正常。我可以通过laravel new application 创建 laravel 应用程序,并且 valet 也可以正常工作。 :)

【讨论】:

【参考方案2】:

查看https://***.com/a/27754096 以查看已安装软件包的列表 - symfony/console 是否与版本 4.0.1 一起列出? Lavarel 安装程序明确要求 symfony/console 的 v2.3 或 v3.x,因此您可能必须首先通过 composer global remove symfony/console 手动删除 symfony/console

【讨论】:

感谢您的回复。 paste.org/88968 这就是我在终端中得到的。我不知道为什么,但它没有删除 symfony/console 包:| 好的,请执行composer global why symfony/console,看看是哪个包负责添加symfony/console 结果是:mnapoli/silly 1.7.0 requires symfony/console (~3.0|~4.0)composer global why mnapoli/silly 之后结果是:cpriego/valet-linux v2.0.22 requires mnapoli/silly (~1.1)

以上是关于Laravel 安装程序 v1.4.1 与 PHP 7.1 包不兼容?的主要内容,如果未能解决你的问题,请参考以下文章

php laravel 框架搭建与运行

Laravel5.5配置使用redis

Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel

与 PHP 共享 Laravel 身份验证/会话

php Laravel安装教程学习笔记

nacos 配置中心 V1.4.1