依赖地狱:安装奏鸣曲用户
Posted
技术标签:
【中文标题】依赖地狱:安装奏鸣曲用户【英文标题】:dependency hell: installing Sonata User 【发布时间】:2016-02-19 18:18:32 【问题描述】:大家好,恐怕还有一个新手被困在试图将所有部分粘在一起。至少可以说,这相当令人沮丧:(
我搜索了这些论坛,看到了无数可能的解决方案,但到目前为止都没有奏效。大多数也很老,版本已经更新。
我们开始吧:
https://sonata-project.org/bundles/user/2-2/doc/reference/installation.html
当我尝试这个时:composer require sonata-project/easy-extends-bundle
我明白了:
对 sonata-project/easy-extends-bundle 使用版本 ^2.1 ./composer.json 已更新 包信息更新依赖(包括require-dev)你的 需求无法解析为一组可安装的软件包。
问题 1 - 找不到请求的包 sonata-project/admin-bundle == 2.3.7.0。问题 2 - 只能安装其中之一:sonata-project/block-bundle[2.3.8, 2.2.13]。 - 只能安装其中之一:sonata-project/block-bundle[2.3.8, 2.2.13]。 - 只能安装其中之一:sonata-project/block-bundle[2.3.8, 2.2.13]。 - sonata-project/admin-bundle dev-master 需要 sonata-project/block-bundle ^2.3.8 -> 可满足 奏鸣曲项目/块捆绑[2.3.8]。 - sonata-project/admin-bundle dev-master 的安装请求 -> 可由 sonata-project/admin-bundle[dev-master] 满足。 - sonata-project/block-bundle == 2.2.13.0 的安装请求 -> 可满足 sonata-project/block-bundle[2.2.13]。
潜在原因:- 包名中的拼写错误 - 根据您的要求,软件包在足够稳定的版本中不可用 最小稳定性设置
安装失败,正在将 ./composer.json 还原为原始文件 内容。
我只是按照说明进行操作,简单明了!我阅读了这些文章,并在此处通过 Google 搜索尝试了一些解决方案。
不管怎样,我从前就是一个老 Unix 黑客,我不记得开源构建这么难......
有什么线索吗?非常感谢!
附言我正在使用 Debian 虚拟机,因为我认为它比在我的 Windows 8 PC 上尝试更容易。
这是 composer.json 中唯一更改的部分:
"require":
"php": ">=5.3.9",
"symfony/symfony": "2.7.*",
"doctrine/orm": "~2.2,>=2.2.3,<2.5",
"doctrine/dbal": "<2.5",
"doctrine/doctrine-bundle": "~1.4",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~4.0",
"sensio/framework-extra-bundle": "~3.0,>=3.0.2",
"incenteev/composer-parameter-handler": "~2.0",
"friendsofsymfony/user-bundle": "~2.0@dev",
"sonata-project/admin-bundle": "2.3.*",
"sonata-project/doctrine-orm-admin-bundle": "^2.3",
"sonata-project/easy-extends-bundle": "^2.1",
"sonata-project/user-bundle": "^2.2",
"sonata-project/easy-extends-bundle": "dev-master"
,
【问题讨论】:
您是否在空目录中运行此命令? 我只是按照奏鸣曲网站上的说明进行操作。这就是为什么我很困惑。我什至没有编写任何自定义代码。在开始编写我的应用程序之前,我只想让基础知识发挥作用。 您能用composer.json
文件的内容更新您的问题吗?也许您需要指定包的替代版本。
查看您的描述:Problem 1 - The requested package sonata-project/admin-bundle == 2.3.7.0 could not be found.
可能相关的composer.json
文件中有错字。 SonataAdminBundle 不能是 2.3.7.0 版本,而是 2.3.7 或 2.3.0
好的,有道理。这是我唯一更改的部分,按照说明:
【参考方案1】:
1.清空vendor
文件夹:删除其中的所有内容,但不要删除自身。可能是损坏的下载依赖项导致您出现问题。
2.将composer.json
中的require
部分替换为以下内容:
"require":
"php": ">=5.3.9",
"symfony/symfony": "2.7.*",
"doctrine/orm": "~2.2,>=2.2.3,<2.5",
"doctrine/dbal": "<2.5",
"doctrine/doctrine-bundle": "~1.4",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~4.0",
"sensio/framework-extra-bundle": "~3.0,>=3.0.2",
"incenteev/composer-parameter-handler": "~2.0",
"friendsofsymfony/user-bundle": "~1.3",
"sonata-project/admin-bundle": "2.3.*",
"sonata-project/doctrine-orm-admin-bundle": "^2.3",
"sonata-project/easy-extends-bundle": "^2.1",
"sonata-project/user-bundle": "^2.2"
,
注意"friendsofsymfony/user-bundle"
版本的区别。
现在应该可以了!如果它仍然给您带来问题,请告诉我。
【讨论】:
谢谢!试过了,通过浏览器运行时得到了这个: InvalidConfigurationException in ArrayNode.php line 309: Unrecognized options "naming_strategy, auto_mapping" under "doctrine.orm" 这与您在app/config.yml
中编写的内容有关,与依赖关系无关,与composer
无关。如果我的回答对你有帮助,请采纳。然后,我们可以打开另一个单独的问题来解决其他问题。以上是关于依赖地狱:安装奏鸣曲用户的主要内容,如果未能解决你的问题,请参考以下文章