Symfony Composer更新成功,但Composer安装在创建的锁文件上失败
当我在symfony 3.4.30安装上执行composer更新时,它会毫无问题地完成,但是当我尝试在创建的锁文件上运行composer安装时,它会抛出一个错误 这在我的CentOS服务器和MacOS笔记本电脑上都会发生。我已安装最新的composer: 有人知道发生了什么吗 我已尝试完全删除供应商目录和composer.lock文件,但没有成功。我还更新了我的composer版本,并清除了我的composer缓存:Symfony Composer更新成功,但Composer安装在创建的锁文件上失败,symfony,composer-php,Symfony,Composer Php,当我在symfony 3.4.30安装上执行composer更新时,它会毫无问题地完成,但是当我尝试在创建的锁文件上运行composer安装时,它会抛出一个错误 这在我的CentOS服务器和MacOS笔记本电脑上都会发生。我已安装最新的composer: 有人知道发生了什么吗 我已尝试完全删除供应商目录和composer.lock文件,但没有成功。我还更新了我的composer版本,并清除了我的composer缓存: composer clearcache Cache directory doe
composer clearcache
Cache directory does not exist (cache-vcs-dir):
Clearing cache (cache-repo-dir): /home/<user>/.composer/cache/repo
Clearing cache (cache-files-dir): /home/<user>/.composer/cache/files
Clearing cache (cache-dir): /home/<user>/.composer/cache
All caches cleared.
composer --version
Composer version 1.9.0 2019-08-02 20:55:32
这是我的composer.json:
{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-4": {
"AppBundle\\": "src/AppBundle"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
},
"files": [
"vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
]
},
"require": {
"php": ">=7.1.18",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"friendsofsymfony/user-bundle": "^2.0",
"incenteev/composer-parameter-handler": "^2.0",
"sensio/distribution-bundle": "^5.0.19",
"sensio/framework-extra-bundle": "^5.0.0",
"symfony/monolog-bundle": "^3.1.0",
"symfony/polyfill-apcu": "^1.0",
"symfony/swiftmailer-bundle": "^2.6.4",
"symfony/symfony": "^3.0",
"twig/twig": "^1.0||^2.0",
"guzzlehttp/guzzle": "^6.3",
"symfony/templating": "^4.1",
"sendgrid/sendgrid": "~7",
"excelwebzone/recaptcha-bundle": "~1.5",
"paragonie/random_compat": "^2.0"
},
"require-dev": {
"sensio/generator-bundle": "^3.0",
"symfony/phpunit-bridge": "^3.0",
"fzaninotto/faker": "~1.2",
"mockery/mockery": "~1.1",
"steevanb/doctrine-stats": "^1.3",
"steevanb/php-backtrace": "^2.0"
},
"scripts": {
"symfony-scripts": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
],
"post-install-cmd": [
"@symfony-scripts"
],
"post-update-cmd": [
"@symfony-scripts"
]
},
"config": {
"platform": {
"php": "7.1.18"
},
"sort-packages": true
},
"extra": {
"symfony-app-dir": "app",
"symfony-bin-dir": "bin",
"symfony-var-dir": "var",
"symfony-web-dir": "web",
"symfony-tests-dir": "tests",
"symfony-assets-install": "relative",
"incenteev-parameters": {
"file": "app/config/parameters.yml"
},
"branch-alias": {
"dev-master": "3.4-dev"
}
}
}
TL;博士
你解决问题的办法是放下电话线
"symfony/templating": "^4.1",
从您的composer.json
,然后重试整个过程
注意它会将您的symfony/templating
版本降级为3.4.x
,并可能会给您带来副作用
为什么?您的问题实际上来自这里:symfony/symfony的composer.json的那一行: 并解释为 因此,事实上,当您安装
symfony/symfony
时,它将取代同一版本的symfony/templating
(在您的情况下是这样的3.4.30
),但是,您的composer.json
中也有在^4.3
版本安装它的说明
这也是那些台词告诉你的:
- don't install symfony/symfony v3.4.30|remove symfony/templating v4.3.3
- don't install symfony/templating v4.3.3|don't install symfony/symfony v3.4.30
它实际上指示您要么安装symfony/symfony v3.4.30
要么安装symfony/templating v4.3.3
,但不能同时安装两者,因为symfony/symfony
包的replace
指令使其与symfony/templating
包完全相同,但在你的情况下,不同的版本
实际上,composer文档也准确地告诉您:
这对于包含子包的包也很有用,例如
示例主symfony/symfony包包含所有symfony
组件也可作为单独的软件包提供。如果你
需要主包,它将自动满足任何要求
一个单独的组件,因为它取代了它们
来源:你的composer update真的什么都没做(注意从缓存加载的
)。在重新运行更新之前,您可能应该尝试使用composer clearcache
。是的,对不起。我忘了说我也试过了。我将更新问题以反映这一点。这确实是问题所在。为什么composer更新可以正常工作,而不是安装,这让我非常困惑。我感谢你的解释。
"symfony/templating": "^4.1",
- don't install symfony/symfony v3.4.30|remove symfony/templating v4.3.3
- don't install symfony/templating v4.3.3|don't install symfony/symfony v3.4.30