如何在 Windows 系统下,基于 Git Bash 构建 Linux 开发环境,并使用 NVM 管理 Node.js 版本的图文教程。
1 什么是 Git Bash ?
Git Bash 由 Git for Windows 提供,是面向 Windows 应用最小化开发环境,它提供 Linux 和 Unix 中的仿真环境,让 Git 在 Windows 中可以像在 Linux 和 Unix 中运作。
Git Bash 最早基于 Cygwin 构建,Cygwin 存在两个分支:MSYS 和 MSYS2,后者与 Cygwin 保持同步,并且继承了包管理系统 Pacman 。msysGit 是 Git Bash 的项目名称,基于 MSYS,正在向 MSYS2 发展。其中 Pacman 已经在 Git for Windows SDK 中提供。
2 如何在 Windows 系统下,基于 Git Bash 的构建 Linux 开发环境 ?
(1)安装 Git for Windows 和 Git for Windows SDK
Git for windows,直接从官网下载安装程序,一路 Next 即可。
Git for Windows SDK,直接下载安装程序,打开后,指定目录,并开启代理。程序会从 Github 上克隆源码到你刚才指定的目录中。
(2)将 Pacman 从 Git for Windows SDK 中复制到 Git for Windows
{Git for Windows SDK 目录}\usr\bin → {Git for Windows 目录}\usr\bin:复制如图所示文件
{Git for Windows SDK 目录}\var\lib → {Git for Windows 目录}\var\lib:整个目录复制(没有 var 和 lib 请新建)
{Git for Windows SDK 目录}\etc → {Git for Windows 目录}\etc:复制如图所示文件
完成后,重启 Git Bash,你就可以在其中使用 pacman -S {包名} 安装包,pacman -Rdd {包名} 删除包了。
(3)安装 python
这里通过指定安装包路径,安装 python 2.7.18 版本。
问题:为什么不安装最新版本?
回答:因为最新的版本,可能无法编译老版本的 Node.js
pacman -U
http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-python2-2.7.18-1-any.pkg.tar.xz```
安装成功后,输入 python2,即可进入 python,输入 exit() ,退出 python。
3 如何在基于 Git Bash 的构建 Linux 开发环境中,使用 NVM 管理 Node.js 版本
(1)安装 nvm
先在 ~ 目录下,新建一个 .bash_profile 文件,使用 vim 命令新建,然后按 : 键(Shift + ;),输入 wq 回车,保存并退出即可。
vim ~/.bash_profile
问答:为什么要新建 .bash_profile ?
回答:.bash_profile 在 Git Bash 每次运行前,都会被执行,默认没有该文件,我们可以手动创建。
nvm 安装后会自动将自己添加到其中,创建类似 Windows 的环境变量,并使得 nvm 全局可用
然后安装 nvm,直接使用官方的安装方式即可,这里用的是 curl:
curl -o-
https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash```
脚本执行成功后,重新打开 Git Bash,nvm 就可以使用了
(2)安装 gcc 等
对于 64-bit 系统:
pacman -S mingw-w64-x86_64-toolchain
对于 32-bit 系统:
pacman -S mingw-w64-i686-toolchain
直接回车,安装全家桶即可
(3)安装 Node.js
按照下面的命令格式,使用 nvm install {Node.js 版本号} 安装指定版本的 Node
nvm install 14.0.0
使用 nvm use {Node.js 版本号} 即可切换 Node.js 版本
问题:遇到了 Did not find a new enough assembler, install one or build with
--openssl-no-asm. Please refer to BUILDING.md ,安装失败
回答:执行下面的命令,进入 nvm 主目录,切换分支到 master,然后重启 Git Bash 重新安装即可
cd "$NVM_DIR" && git checkout master
好啦,最终在 Windows 系统下,我们得到了基于 Git Bash 构建的 Linux 开发环境,并使用 NVM 管理 Node.js 版本。