背景
scoop是以款windows命令行管理工具,python学习课程需要安装allure,官方推荐使用scoop安装allure,那么就需要在windows安装scoop。
问题
根据scoop官网指示安装scoop,报问题:未能解析此远程名称: ‘raw.githubusercontent.com’
问题解决实践
- 确保powershell在版本5以上,.NET framework在版本4.5以上,以便辨识安装命令
- 按照官网指示指行命令“Set-ExecutionPolicy RemoteSigned -scope CurrentUser”仍然无法解决
- 根据问题未能解析域名,于是尝试ping通地址,证明地址是没问题的,查阅资料发现有可能是DNS污染问题),于是正对此问题着手解决
-
- 在CMD输入 ipconfig /all,找到DNS服务器IP
- 输入
nslookup raw.githubusercontent.com
你的DNS服务器IP,查看发现未能解析 - 再输入
nslookup raw.githubusercontent.com 8.8.8.8
使用Google的DNS服务器验证 - 确定是污染问题,获取域名对应IP(
https://www.ipaddress.com/
),我获取到的是199.232.68.133 - 管理员身份打开host(C:\Windows\System32\drivers\etc\hosts)文件,在末尾加上
199.232.68.133 raw.githubusercontent.com
,退出保存 - 更新DNS缓存:ipconfig /flushdns
- 指定路径安装scoop:
[environment]::setEnvironmentVariable(‘SCOOP’,‘D:\Applications\Scoop’,‘User’)
$env:SCOOP=‘D:\Applications\Scoop’
iex (new-object net.webclient).downloadstring(‘https://get.scoop.sh’)
解释
- DNS服务器:访问网址时,根据域名得到对应的IP
- DNS污染:开发商或第三方操作使得DNS服务器无法解析域名得到对应ip地
- host文件:去DNS服务器找映射表之前会先去host文件查找,由于host文件配置了对应的域名和ip映射,避免了DNS污染。另外这只是临时解决方案,因为ip地址是会变的,但是变了我就再配置呗