使用 Composer 的 SilverStripe 3.0 升级到 3.1 失败
SilverStripe 3.0 upgrade to 3.1 failure with Composer
我以前从未升级过 SilverStripe 项目,所以如果我遗漏了任何明显的东西,请原谅我。
我想将我在本地 运行 的这个 3.0.5 SilverStripe 网站升级到最新版本(3.1.6 或类似版本)。我更新了我的 composer.json 文件(位于 [项目名称]/cms/composer.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",
"composer/installers": "*",
"silverstripe/cms": "3.1.*",
"silverstripe/framework": "3.1.*"
},
"autoload": {
"classmap": ["tests/behat/"]
}
}
我还根据终端提示更新了 composer 本身。
我去了 composer.json 文件所在的位置,在终端中 运行 composer update 并得到了这个错误:
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
- Can only install one of: silverstripe/cms[3.1.0, dev-master].
- Can only install one of: silverstripe/cms[3.1.1, dev-master].
- Can only install one of: silverstripe/cms[3.1.10, dev-master].
- Can only install one of: silverstripe/cms[3.1.11, dev-master].
- Can only install one of: silverstripe/cms[3.1.12, dev-master].
- Can only install one of: silverstripe/cms[3.1.13, dev-master].
- Can only install one of: silverstripe/cms[3.1.14, dev-master].
- Can only install one of: silverstripe/cms[3.1.15, dev-master].
- Can only install one of: silverstripe/cms[3.1.2, dev-master].
- Can only install one of: silverstripe/cms[3.1.3, dev-master].
- Can only install one of: silverstripe/cms[3.1.4, dev-master].
- Can only install one of: silverstripe/cms[3.1.5, dev-master].
- Can only install one of: silverstripe/cms[3.1.6, dev-master].
- Can only install one of: silverstripe/cms[3.1.7, dev-master].
- Can only install one of: silverstripe/cms[3.1.8, dev-master].
- Can only install one of: silverstripe/cms[3.1.9, dev-master].
- Installation request for silverstripe/cms dev-master -> satisfiable by silverstripe/cms[dev-master].
- Installation request for silverstripe/cms 3.1.* -> satisfiable by silverstripe/cms[3.1.0, 3.1.1, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.1.15, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9].
我需要具体说明我需要更新到哪个版本的 SilverStripe 吗?我没有在项目中看到 composer.lock 文件,但我确实删除了 web.config 中调用一个的行:
<add segment="composer.lock" />
composer.json 文件是否应该位于项目的其他位置(而不是 [项目名称]/cms)?
更新:在根目录中安装了 composer 并且那里有一个 composure.json 文件,我在尝试将站点升级到 SilverStripe 3.1 时仍然遇到错误:
composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Updating composer/installers dev-master (v1.0.2 => e420b53)
[RuntimeException]
The .git directory is missing from /Projects/[project name]/vendor/composer/installers, see https://getcomposer.org/commit-deps for more information
update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [packages1] ... [packagesN]
~/Projects/[project name] $ php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Updating silverstripe/framework (3.0.x-dev 29de643 => 3.1.x-dev 92970f8)
[RuntimeException]
The .git directory is missing from framework/, see https://getcomposer.org/commit-deps for more information
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [packages1] ... [packagesN]
您不应该编辑 cms/composer.json,您应该编辑项目根目录下的 composer.json(如果存在 - 可能不存在) a composer.json 如果之前的开发者没有使用 composer 安装)。
我以前从未升级过 SilverStripe 项目,所以如果我遗漏了任何明显的东西,请原谅我。
我想将我在本地 运行 的这个 3.0.5 SilverStripe 网站升级到最新版本(3.1.6 或类似版本)。我更新了我的 composer.json 文件(位于 [项目名称]/cms/composer.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",
"composer/installers": "*",
"silverstripe/cms": "3.1.*",
"silverstripe/framework": "3.1.*"
},
"autoload": {
"classmap": ["tests/behat/"]
}
}
我还根据终端提示更新了 composer 本身。
我去了 composer.json 文件所在的位置,在终端中 运行 composer update 并得到了这个错误:
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
- Can only install one of: silverstripe/cms[3.1.0, dev-master].
- Can only install one of: silverstripe/cms[3.1.1, dev-master].
- Can only install one of: silverstripe/cms[3.1.10, dev-master].
- Can only install one of: silverstripe/cms[3.1.11, dev-master].
- Can only install one of: silverstripe/cms[3.1.12, dev-master].
- Can only install one of: silverstripe/cms[3.1.13, dev-master].
- Can only install one of: silverstripe/cms[3.1.14, dev-master].
- Can only install one of: silverstripe/cms[3.1.15, dev-master].
- Can only install one of: silverstripe/cms[3.1.2, dev-master].
- Can only install one of: silverstripe/cms[3.1.3, dev-master].
- Can only install one of: silverstripe/cms[3.1.4, dev-master].
- Can only install one of: silverstripe/cms[3.1.5, dev-master].
- Can only install one of: silverstripe/cms[3.1.6, dev-master].
- Can only install one of: silverstripe/cms[3.1.7, dev-master].
- Can only install one of: silverstripe/cms[3.1.8, dev-master].
- Can only install one of: silverstripe/cms[3.1.9, dev-master].
- Installation request for silverstripe/cms dev-master -> satisfiable by silverstripe/cms[dev-master].
- Installation request for silverstripe/cms 3.1.* -> satisfiable by silverstripe/cms[3.1.0, 3.1.1, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.1.15, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9].
我需要具体说明我需要更新到哪个版本的 SilverStripe 吗?我没有在项目中看到 composer.lock 文件,但我确实删除了 web.config 中调用一个的行:
<add segment="composer.lock" />
composer.json 文件是否应该位于项目的其他位置(而不是 [项目名称]/cms)?
更新:在根目录中安装了 composer 并且那里有一个 composure.json 文件,我在尝试将站点升级到 SilverStripe 3.1 时仍然遇到错误:
composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Updating composer/installers dev-master (v1.0.2 => e420b53)
[RuntimeException]
The .git directory is missing from /Projects/[project name]/vendor/composer/installers, see https://getcomposer.org/commit-deps for more information
update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [packages1] ... [packagesN]
~/Projects/[project name] $ php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Updating silverstripe/framework (3.0.x-dev 29de643 => 3.1.x-dev 92970f8)
[RuntimeException]
The .git directory is missing from framework/, see https://getcomposer.org/commit-deps for more information
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [packages1] ... [packagesN]
您不应该编辑 cms/composer.json,您应该编辑项目根目录下的 composer.json(如果存在 - 可能不存在) a composer.json 如果之前的开发者没有使用 composer 安装)。