SilverStripe作曲家版本问题与silverstripe/cms
-
21-12-2019 - |
题
我想使用SilverStripe模块"sheadawson/silverstripe-blocks dev-master"。当我用composer安装它时,我被要求安装一些模块,如multivaluefield等。我安装它们没有问题。现在我得到以下终端输出:
Pascal@Nemesis:~/Sites/xyz$ composer require sheadawson/silverstripe-blocks dev-master
./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
- Installation request for silverstripe/cms 1.0.0 -> satisfiable by silverstripe/cms[1.0.0].
- sheadawson/silverstripe-blocks dev-master requires silverstripe/cms 3.1.* -> satisfiable by silverstripe/cms[3.1.0, 3.1.1, 3.1.2].
- Can only install one of: silverstripe/cms[3.1.0, 1.0.0].
- Can only install one of: silverstripe/cms[3.1.1, 1.0.0].
- Can only install one of: silverstripe/cms[3.1.2, 1.0.0].
- Installation request for sheadawson/silverstripe-blocks dev-master -> satisfiable by sheadawson/silverstripe-blocks[dev-master].
我看得出来,3.1。*依赖导致3个可能的版本。但是cms的1.0.0版本让我有点纠结,因为我对这个版本没有任何依赖。
当我想安装版本3.1.2与
composer require silverstripe/cms 3.1.2
我得到以下输出:
Pascal@Nemesis:~/Sites/xyz$ composer require silverstripe/cms 3.1.2
./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
- Installation request for silverstripe/cms 1.0.0 -> satisfiable by silverstripe/cms[1.0.0].
- Can only install one of: silverstripe/cms[3.1.2, 1.0.0].
- Installation request for silverstripe/cms 3.1.2 -> satisfiable by silverstripe/cms[3.1.2].
我的作曲家的内容。json文件看起来像这样:
{
"name": "silverstripe/cms",
"type": "silverstripe-module",
"description": "The SilverStripe Content Management System",
"homepage": "http://silverstripe.org",
"license": "BSD-3-Clause",
"keywords": ["silverstripe", "cms"],
"authors": [
{
"name": "SilverStripe",
"homepage": "http://silverstripe.com"
},
{
"name": "The SilverStripe Community",
"homepage": "http://silverstripe.org"
}
],
"require": {
"php": ">=5.3.2",
"ajshort/silverstripe-gridfieldextensions": "dev-master",
"silverstripe/multivaluefield": "dev-master"
}
}
有谁知道为什么composer也要安装cms的1.0.0版本?我已经尝试删除所有模块,清理作曲家。json,删除作曲家。锁,作曲家更新和其他一切来到我的脑海.
解决方案
那个作曲家。你的json确实看起来像是来自该CMS的文件,而不是来自你自己的软件。
如果是这样的话,作曲家感到困惑并不让我感到惊讶。在那个作曲家里。如果您声明"silverstripe/cms"是您的软件。如果您将软件标记为版本1.0.0,则创建了"silverstripe/cms1.0.0"-任何需要更高版本的所需软件现在都无法工作。
通常,如果您开始使用Composer,运行它是个好主意 composer init
在您的软件的主目录中,然后以交互方式回答有关您的软件的一些问题。
在最基本的情况下,您创建一个空文件 composer.json
, ,并添加一对花括号,然后填写一个"require"键和所需的软件。
你永远不应该做的事:复制作曲家。json来自其他任何人,而无需修复所有问题。不知道你做了什么来获取当前版本,但我想你可能克隆了一些存储库来启动你的项目。这并不是完全错误的-但有人应该改进工作流程,以避免与Composer陷入困境。