【问题标题】:Can't install symfony/maker-bundle无法安装 symfony/maker-bundle
【发布时间】:2021-04-25 03:32:30
【问题描述】:

我是 Symfony 的新手,我尝试安装 symfony/maker-bundle,但它给了我以下错误:

Using version ^1.22 for symfony/maker-bundle
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Restricting packages listed in "symfony/symfony" to "4.4.*"
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - ocramius/proxy-manager 2.9.0 requires composer-runtime-api ^2.0.0 -> no matching package found.
    - ocramius/proxy-manager 2.9.0 requires composer-runtime-api ^2.0.0 -> no matching package found.
    - ocramius/proxy-manager 2.9.0 requires composer-runtime-api ^2.0.0 -> no matching package found.
    - Installation request for ocramius/proxy-manager (locked at 2.9.0) -> satisfiable by 
ocramius/proxy-manager[2.9.0].

我搜索了类似的问题,他们经常在composer.json中更改一个包版本作为解决方案,但我在其中既找不到ocramius/proxy-manager也找不到composer-runtime-api

{
"type": "project",
"license": "proprietary",
"require": {
    "php": "^7.1.3",
    "ext-ctype": "*",
    "ext-iconv": "*",
    "ext-simplexml": "*",
    "bluetel-solutions/twig-truncate-extension": "^0.1.3",
    "friendsofsymfony/rest-bundle": "^2.7",
    "jms/serializer-bundle": "^3.5",
    "liip/imagine-bundle": "^2.2",
    "sensio/framework-extra-bundle": "^5.4",
    "symfony/apache-pack": "^1.0",
    "symfony/asset": "4.4.*",
    "symfony/console": "4.4.*",
    "symfony/dotenv": "4.4.*",
    "symfony/flex": "^1.3",
    "symfony/form": "4.4.*",
    "symfony/framework-bundle": "4.4.*",
    "symfony/mailer": "4.4.*",
    "symfony/monolog-bundle": "^3.4",
    "symfony/orm-pack": "^1.0",
    "symfony/security-bundle": "4.4.*",
    "symfony/security-csrf": "4.4.*",
    "symfony/serializer": "4.4.*",
    "symfony/swiftmailer-bundle": "^3.4",
    "symfony/translation": "4.4.*",
    "symfony/twig-bundle": "4.4.*",
    "symfony/validator": "4.4.*",
    "symfony/webpack-encore-bundle": "^1.7",
    "symfony/yaml": "4.4.*",
    "twig/extensions": "^1.5",
    "vich/uploader-bundle": "^1.12",
    "whatwedo/core-bundle": "dev-symfony5",
    "whatwedo/search-bundle": "dev-symfony5"
},
"require-dev": {
    "symfony/maker-bundle": "^1.12",
    "symfony/web-server-bundle": "4.4.*"
},
"config": {
    "preferred-install": {
        "*": "dist"
    },
    "sort-packages": true
},
"autoload": {
    "psr-4": {
        "App\\": "src/"
    }
},
"autoload-dev": {
    "psr-4": {
        "App\\Tests\\": "tests/"
    }
},
"replace": {
    "paragonie/random_compat": "2.*",
    "symfony/polyfill-ctype": "*",
    "symfony/polyfill-iconv": "*",
    "symfony/polyfill-php71": "*",
    "symfony/polyfill-php70": "*",
    "symfony/polyfill-php56": "*"
},
"scripts": {
    "auto-scripts": {
        "cache:clear": "symfony-cmd",
        "assets:install %PUBLIC_DIR%": "symfony-cmd"
    },
    "post-install-cmd": [
        "@auto-scripts"
    ],
    "post-update-cmd": [
        "@auto-scripts"
    ]
},
"conflict": {
    "symfony/symfony": "*"
},
"extra": {
    "symfony": {
        "allow-contrib": false,
        "require": "4.4.*"
    }
}

我可能需要其他版本的symfony/maker-bundle

【问题讨论】:

  • 只是为了好玩,做一个“作曲家自我更新”,它应该安装作曲家的第 2 版,然后再次尝试你的“作曲家安装制造商”。这只是一个猜测,但“需要 composer-runtime-api ^2.0.0”可能表明需要 composer 2。我在一个框架项目上尝试过它并且它有效。

标签: php symfony composer-php


【解决方案1】:

Ocramius 以其在保持向后兼容性方面的严厉立场而闻名。

在这种情况下,release 2.9.0 说:

此版本升级ocramius/proxy-manager 以使用composer-runtime-api:^2:这个 表示您将需要composer:^2 来安装此版本的 ProxyManager。

为了升级到 composer v2,您可以在您的电脑上运行 composer self-update --2 开发或 CI/CD 系统。

所以你的选择是:

  • 将作曲家升级到版本 2 (composer self-update --2),这确实是推荐的方式,除非您有一些您真正需要的特定作曲家插件并且尚未更新以适应新版本。

  • 找到您正在安装的软件包是需要代理管理器 (composer why ocramius/proxy-manager) 的软件包,并查看您是否可以调整对该软件包的版本限制,使其依赖于较旧 (

【讨论】:

  • 我遇到了composer self-update --2 的问题,它无法写入某些文件夹,我通过sudo chmod 775 /bin/console 解决了它(如果其他人有这个问题)。最后composer self-update --2 工作了,现在我可以使用了。 maker-bundle。谢谢!
猜你喜欢
  • 2022-11-08
  • 2019-06-02
  • 2018-10-13
  • 2021-03-25
  • 1970-01-01
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
相关资源
最近更新 更多