# 编程日记:安装本地编程环境(2022-08-19) **Published by:** [Corror](https://paragraph.com/@corror/) **Published on:** 2022-08-25 **URL:** https://paragraph.com/@corror/2022-08-19 ## Content 编程学习我做了什么?成功在 Windows 系统中安装 Node.JS 以及其附带的工具 Chocolaty 1.0.0 和 Python 10.6.0;成功在 StackOverflow 上问出了第一个问题;成功安装 WSL;成功安装 VSCode 插件 Remote Development;成功设置 WSL 的代理端口;成功在 Ubuntu 系统中安装 NVM;我解决了什么问题?1. 利用NodeJS安装额外工具的问题🔻第一次报错 在我尝试通过NodeJS安装额外工具的时候,进入到了1/3的进度时,发现出现了问题。 问题在于:在使用Chocolately脚本安装Python的时候,出现了安装失败,并且 exit with 1603. 经过查阅资料后发现,导致 exit 1603 的原因是:系统已经存在一个安装好过的应用了。 于是我选择卸载Python,并尝试重新通过NodeJS来安装额外工具。 🔻第二次出错 在卸载完python,打算重新安装的时候,发现 power shell 处于蓝屏的状态,没有任何内容弹出来。 于是我觉得卸载并重装 NodeJS,试试看能否重新加载出工具下载界面。 结果:在等待了一段时间后,成功出现了安装内容。 推测之前不成功的原因:自己等待的时间不够,这次等待了好几分钟才出现了内容。 🔻第三次出错 问题:现在又卡在了安装 visualstudio2019-workload-victools 上,等待了一个多小时后,还是没有安装好。 原因 & 方案:可能是因为,电脑会在20分钟后自动动睡眠,所以可以尝试将电脑自动睡眠这条给关闭。 🔻第四次出错 ![[Pasted image 20220819024016.png]] 报错一:使用“1”个参数调用“DownloadString”时发生异常:“基础连接已经关闭: 发送时发生错误。”Error retrieving packages from source 'https://community.chocolatey.org/api/v2/': 无法连接到远程服务器原因:无法访问服务器,需要打开梯子才行。 方案:尝试打开梯子的全局模式,发现能够显示进入报错网址:https://community.chocolatey.org/api/v2/ 报错二:python was not found with the source(s) listed.原因:关于这一点,StackOverflow上说也许是自己下载的软件没有添加到环境变量当中。 方案:尝试搜索了我的用户变量,发现里面有 Python 10 的环境变量,只不过位置指向的不是 Chocolatey 安装的 Python,而是使用安装包安装的 Python 时自动添加的环境变量。 ![[Pasted image 20220819025152.png]] 问题:根据本地的\Log\来看,具体的错误信息如下:2022-08-19 02:23:23,380 14868 [DEBUG] - Using 'https://community.chocolatey.org/api/v2/'. 2022-08-19 02:24:05,598 14868 [WARN ] - Error retrieving packages from source 'https://community.chocolatey.org/api/v2/': 无法连接到远程服务器 2022-08-19 02:24:05,599 14868 [WARN ] - python was not found with the source(s) listed. If you specified a particular version and are receiving this message, it is possible that the package name exists but the version does not. Version: ""; Source(s): "https://community.chocolatey.org/api/v2/" 2. 单独升级Chocolatey的问题今日成长:第一次尝试在 StackOverflow 上问问题。问题:无法更新 Chocolatey 原因:Chocolatey 已经是最新版本,无需操作。 详细信息:https://stackoverflow.com/q/73408615/146403623. Node.JS 未添加到环境变量的问题问题:node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。解决方案:删除原先在 /Software/nodejs 下的系统变量;添加在 C:\Program Files\nodejs 下的系统变量;问题解决!4. 如何解决 WSL 的翻墙问题?报错:corror@CorrorCollins:~/folder$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 原因: WSL 与 Windows 使用的不是同一个网络端口,因此当 VPN 代理Windows上的网络端口时,就无法去代理 WSL 上的网络端口,因此访问 Github 会出现翻墙之前才会出现的 DNS 域名污染问题。 解决方案: 根据参考资料可以知道,WSL 的网关和 DNS 服务器,全部指向 Windows,因此可以在 Unbuntu 子系统中,通过运行命令行 cat /etc/resolv.conf 来将 Windows 的 IP 读取出来。 我的运行结果如下:corror@CorrorCollins:~/folder$ cat /etc/resolv.conf # This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf: # [network] # generateResolvConf = false nameserver 172.29.208.1 可以看到,WSL 指向的 Windows IP 地址为 172.29.208.1。 之后,我们需要将该 IP 地址和 Windows 的代理端口绑定。 ![[Pasted image 20220819054732.png]] 打开 PandaVPN 的本地代理权限后,将 HTTP/HTTPS 代理端口 41091 和 WSL 指向的 Windows IP 172.29.208.1 绑定,命令行如下所示:export ALL_PROXY="http://172.29.208.1:7890" 之后再执行 curl 命令就能够顺利访问 githubusercontent.com 了。 ## Publication Information - [Corror](https://paragraph.com/@corror/): Publication homepage - [All Posts](https://paragraph.com/@corror/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@corror): Subscribe to updates