Composer php 通过Composer提取silverstripe/upgrader的zip文件时出错

Composer php 通过Composer提取silverstripe/upgrader的zip文件时出错,composer-php,silverstripe,Composer Php,Silverstripe,我正在将SilverStripe 3.6.5的一个实例升级到SS4.x,并且一直按照建议安装 但在“我的Windows开发”对话框上运行“composer global Required silverstripe/upgrader”会产生以下结果: Using version ^1.4 for silverstripe/upgrader ./composer.json has been updated Loading composer repositories with package info

我正在将SilverStripe 3.6.5的一个实例升级到SS4.x,并且一直按照建议安装

但在“我的Windows开发”对话框上运行“composer global Required silverstripe/upgrader”会产生以下结果:

Using version ^1.4 for silverstripe/upgrader
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing silverstripe/upgrader (1.4.1): Downloading (100%)
    Failed to download silverstripe/upgrader from dist: There was an error extracting the ZIP file, it is either corrupted or using an invalid format.
    Now trying to download from source
  - Installing silverstripe/upgrader (1.4.1): Cloning 84226286c8 from cache

Installation failed, reverting ./composer.json to its original content.
我正在使用此堆栈:

  • Windows 8.1
  • PHP 7.1.26
  • 作曲家1.8.5
  • git版本2.21.0.windows.1
目前,我在全球范围内没有Composer软件包

我也尝试过卸载composer,清除所有缓存和文件夹,重新开始下载composer-Setup.exe。安装完成后,请在命令行上重试
composer global require silverstripe/upgrader
。结果与silverstripe/upgrader相同,尽管所有其他软件包(我猜它的依赖项)都下载并安装得很好。例如,这是重新启动后命令行输出的摘录:

Changed current directory to C:/Users/Amenel/AppData/Roaming/Composer
Using version ^1.4 for silverstripe/upgrader
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 35 installs, 0 updates, 0 removals
  - Installing ocramius/package-versions (1.4.0): Downloading (100%)
  - Installing composer/ca-bundle (1.1.4): Downloading (100%)
  - Installing padraic/humbug_get_contents (1.1.2): Downloading (100%)
  - Installing padraic/phar-updater (v1.0.6): Downloading (100%)
  - Installing symfony/polyfill-ctype (v1.11.0): Downloading (100%)
  - Installing symfony/filesystem (v4.3.1): Downloading (100%)
...
当我在上面执行web搜索时,我似乎找不到与此特定错误相关的任何内容

同样值得注意的是:当我指定silverstripe/upgrader的早期版本(例如1.3.0)时,也会报告此错误


总而言之,我的问题是无法启动升级过程,因为通过composer安装升级程序失败。

这就是我规避此问题的方法

我的目标是运行升级程序。如文档所述,实现此目的的途径是在Windows上使用Composer。但通过Composer的路径似乎被阻塞。我问自己有什么选择。在虚拟机中重新安装整个堆栈是可能的,但繁琐。我一直在想,但没有什么能吸引我

最后,我将phar文件下载到
D:\Programs\SilverStripe upgrader
,并将其重命名为
upgrade-code-1.4.1.phar
。鉴于
D:\Programs
已经在我的
PATH
envvar中,我创建了一个文件
D:\Programs\upgrade code.bat
,包含以下内容:

@ECHO OFF
php %~dp0\SilverStripe-upgrader\upgrade-code-1.4.1.phar %*
我还没有运行迁移,但是
升级代码帮助
工作正常。嗯