通过 Composer 提取 silverstripe/upgrader 的 zip 文件时出错
Error extracting zip file of silverstripe/upgrader via Composer
我正在将 SilverStripe 3.6.5 的一个实例升级到 SS 4.x,并且我一直在按照建议安装 SilverStripe upgrader。
但是 运行 composer global require silverstripe/upgrader
在我的 Windows 开发箱上产生了这个:
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%)
...
当我对它执行网络搜索时,我似乎找不到与此特定错误相关的任何内容。
另外值得注意的是:当我指定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 %*
我还没有 运行 迁移,但是 upgrade-code help
工作正常。 HTH.
我正在将 SilverStripe 3.6.5 的一个实例升级到 SS 4.x,并且我一直在按照建议安装 SilverStripe upgrader。
但是 运行 composer global require silverstripe/upgrader
在我的 Windows 开发箱上产生了这个:
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%)
...
当我对它执行网络搜索时,我似乎找不到与此特定错误相关的任何内容。
另外值得注意的是:当我指定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 %*
我还没有 运行 迁移,但是 upgrade-code help
工作正常。 HTH.