最近,手头有个二次开发项目,对方用的是meteor,先是安装了choco。后来在cmd中执行命令:choco install meteor。
地址被墙,根本无法顺利安装,期间试过在阿里云的香港服务器中部署VPN,奈何不知道什么原因,VPN老是掉线。
执行命令:choco install meteor涉及到2个重要的文件夹:
C:\Users\cao\AppData\Local\Temp\chocolatey\meteor\0.0.5
C:\ProgramData\chocolatey\lib\meteor
C:\Users\cao\AppData\Local\Temp\chocolatey\meteor\0.0.5这个文件夹是用于存放下载文件的:meteor-bootstrap-os.windows.x86_64.tar.gz。
C:\ProgramData\chocolatey\lib\meteor是执行的脚本,该脚本用于安装meteor。从名字上就可以看的出来:chocolateyinstall.ps1、chocolateyuninstall.ps1。一个是安装脚本,一个是卸载脚本。
这里我们需要修改安装脚本:chocolateyinstall.ps1。
我目前用的版本,在第9行,是这样的代码
$bootstrapLinkUrl = 'https://packages.meteor.com/bootstrap-link'
他和49行的代码
url64bit = "${bootstrapLinkUrl}${bootstrapQueryString64}"
拼接出了一个下载地址:https://packages.meteor.com/bootstrap-link?arch=os.windows.x86_64
这个地址返回的就是meteor的下载地址:
https://static-meteor.netdna-ssl.com/packages-bootstrap/2.0/meteor-bootstrap-os.windows.x86_64.tar.gz
这个地址应该就是被墙了,没办法下载的,但是我发现,下面这个地址是可以正常下载的,而且很快。
https://d3sqy0vbqsdhku.cloudfront.net/packages-bootstrap/2.0/meteor-bootstrap-os.windows.x86_64.tar.gz
于是,我把第九行代码
$bootstrapLinkUrl = 'https://packages.meteor.com/bootstrap-link'
直接改成了
$bootstrapLinkUrl = 'https://d3sqy0vbqsdhku.cloudfront.net/packages-bootstrap/2.0/meteor-bootstrap-os.windows.x86_64.tar.gz'
请别把第49行代码
url64bit = "${bootstrapLinkUrl}${bootstrapQueryString64}"
改成了
url64bit = "${bootstrapLinkUrl}"
发现就可以正常安装meteor了。
这里需要注意的是:
当我们安装出错之后,choco会清理C:\Users\cao\AppData\Local\Temp\chocolatey\meteor\0.0.5和C:\ProgramData\chocolatey\lib\meteor文件夹,这样我们直接修改chocolateyinstall.ps1其实是找不到的。
我们需要在出现如下提示的时候
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint):
去修改chocolateyinstall.ps1文件,这里,一定不要急着去按y。等修改好了chocolateyinstall.ps1再去按y。