无须修改host文件,Mac 新安装nvm

1,443 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情

最近趁某平台百亿补贴入手了21款14寸mbp,换下了陪伴我5年的17款MBP。不得不说,M1 Pro是真的快,编译是秒完成!几乎看不到webpack0-100%的打包过程,用webstorm也不卡了,开发体验直接起飞🛫,但是新电脑到手各种环境配置确实让人头疼的很。

第一个头疼的就是安装node环境的好管家——nvm !

安装遇到的问题raw.githubusercontent.com port 443

照着官网以及网上各种资料推荐,几乎都是清一色推荐curl/wget命令的安装方式:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

按照以上安装方式,在国内将会遇到以下的问题:

  1. 使用curl时将会遇到:curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 22 ms: Connection refused的问题

截屏2022-06-02 00.31.23.png 这是因为国内有墙。

  1. 使用wget时,会发现 Mac 没有内置此工具。 截屏2022-06-02 00.32.01.png 此时需要安装wget
    搜索Mac安装wget的资料你会发现,清一色让你去安装Homebrew,如果真的去安装,你就会重新掉进第一个问题:curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 22 ms: Connection refused,从而走进死循环中~😄因为,Homebrew 也是使用的 curl去安装!

截屏2022-06-02 00.45.01.png

常规修改host的方案

绝大部分资料都是建议通过修改host文件映射raw.githubusercontent.comip地址实现curl访问。如:点击查看

但其实修改host文件有2个不好的点:

  1. 引入的ip地址安全性无法保证。万一该ip服务器上有损害计算机的脚本(病毒,挖矿),访问时会直接被本机下载下来,相当于自己给本机开了个网络层的安全缺口;
  2. raw.githubusercontent.com 映射的ip地址随时可能发生变更,变更后host此前配置全部无效,又得重新配置。

无须修改host的方案

curl命令为例,仔细理解安装命令的含义:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

无非就是去获取nvm仓库的v0.39.1分支下的install.sh脚本文件并执行。

那么,无论以何种方式,只要我们能获取到install.sh文件并执行它,都可以完成nvm的安装

其实nvm的README文档中也给出了多种安装方式: image.png

只是平时我们很少留意到下方的Git Install & Manual Install

它们就是无须修改host文件的方案

由于国内的网络环境,这里建议选择Git Install点击进入传送门

  • 如果你能正常访问GitHub,并且能从GitHub上顺畅地clone项目到本地,建议你完全按此方案官网描述步骤执行即可完成安装;

  • 如果你能正常访问GitHub,但不能从GitHub上顺畅地clone项目到本地,建议直接从git仓库下载zip包,然后继续按官网描述步骤执行即可完成安装;

  • 如果你不能正常访问GitHub,建议从国内Gitee上镜像地址clone仓库,然后继续按官网描述步骤执行即可完成安装;

附1:关于raw.githubusercontent.com

githubusercontent.com

是github用来存储用户上传文件的服务地址。放在亚马逊s3上。是github 的素材服务器 (assets server), 避免跟主服务抢占负载

raw.githubusercontent.com

存储仓库文件源码 如,查看vue3.0仓库README.md文件时,点击右上角的“Raw”标签,即可看到存储的README.md源文件内容

image.png

image.png

类似的,还有存储用户图片的:
user-images.githubusercontent.com

image.png

附2:关于host文件域名以及ip地址配置

199.232.68.133 raw.githubusercontent.com
199.232.68.133 user-images.githubusercontent.com
199.232.68.133 avatars2.githubusercontent.com
199.232.68.133 avatars1.githubusercontent.com

将网址域名与IP地址对应起来,建立一个关联“数据库”,这样的话,当用户在浏览器中输入一个网址时,系统会首先从 hosts 文件中寻找对应的 IP 地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再将网址提交DNS域名解析服务器进行IP地址的解析。 参考blog

感谢您的阅读!希望能对您有所帮助😁
原创不易,转载需获得本人同意!