如何恢复作曲家更新



今天我运行了composer update,更新完全破坏了我的网站。我在php中找到了以下信息.log:

72.15.153.139 - - [11/Nov/2015:21:01:45 -0500] "GET/HTTP/1.1" 500 - "-" "Mozilla/5.0 (Windows NT 6.1;哇64;rv:42.0( 壁虎/20100101火狐/42.0" [2015年11月11日星期三21:01:48][错误][客户端 127.7.179.129]PHP 解析错误:语法错误、意外的"函数"(T_FUNCTION(、第 5 行的/var/lib/openshift/55c481747628e14556000188/app-root/runtime/repo/config/vendor/danielstjules/stringy/tests/CreateTest.php 中的预期标识符 (T_STRING( 或 \\ (T_NS_SEPARATOR( 72.15.153.139 - - [11/Nov/2015:21:01:48 -0500] "GET/HTTP/1.1" 500 - "-" "Mozilla/5.0 (Windows NT 6.1;哇64;rv:42.0( 壁虎/20100101火狐/42.0">

似乎"danielstjules/stringy"是罪魁祸首。但是,我怎样才能恢复到这个软件包的旧版本(或使用新闻版本?我尝试修改作曲家.lock文件,并更改了

            "require": {
            "danielstjules/stringy": "~1.8",

        "require": {
            "danielstjules/stringy": "~1.9",

并再次运行composer update,但它提供了信息:

加载包含包信息的作曲家存储库 更新依赖项(包括需求开发( 无需安装或更新 写入锁定文件 生成自动加载文件 PHP 解析错误:语法错误、意外的"函数"(T_FUNCTION(、第 5 行的/var/lib/openshift/55c481747628e14556000188/app-root/runtime/repo/config/vendor/danielstjules/stringy/tests/CreateTest.php 中的预期标识符 (T_STRING( 或 \ (T_NS_SEPARATOR( 脚本 php 工匠清除编译处理返回的 post-update-cmd 事件并返回错误

[运行时异常] 错误输出:PHP 解析错误:语法错误、意外的"函数"(T_FUNC TION(,期望/var/lib/o 中的标识符 (T_STRING( 或 \ (T_NS_SEPARATOR( Penshift/55C481747628E14556000188/app-root/runtime/repo/config/vendor/danie lstjules/stringy/tests/CreateTest.php在第5行

如何回滚此包?谢谢。

编辑2:

composer install将自动修改composer.lock。我修改了composer.json,它成功获取了旧版本 1.8。

但是构建仍然失败。此问题描述是有原因的。但是在我rm -rf test/之后,问题仍然存在。

编辑3:

我尝试了以下方法:

  1. rm -rf vendor/
  2. composer update

问题消失了。

如何还原更新?简单:从更新之前使用的版本控制系统还原composer.lock文件。

composer.lock准确记录安装了哪个软件。因此,将此文件提交到版本控制中至关重要,以便在更新失败时能够返回到工作版本。

运行composer install将始终安装composer.lock中记录的软件版本,如果该文件不存在,它只会像update一样运行。

如果查看作曲家版本规范文档,~运算符会根据语义版本控制的原则获得向后兼容的最新版本。这意味着~1.8等同于>=1.8 <2.0.0,同样~1.9也等同于>=1.9 <2.0.0。换句话说,如果最新版本>=1.9~1.8将返回与~1.9相同的内容。如果你真的想使用版本 1.8 ,只需这样做:

"danielstjules/stringy": "1.8",

这将得到确切的版本1.8.当然,之后你需要运行composer update

我发现作曲家版本控制语法很难记住自己。

相关内容

  • 没有找到相关文章

最新更新