使用 Windows Subsystem for Linux 的 Epic 开发环境
注意:本文有一个使用 WSL 2 的更新版本。请点击此处查看!
使用 Windows Subsystem for Linux 的 Epic 开发环境在 Medium 上交叉发布
和许多其他开发者一样,我每天都会做一些业余项目。我的工作也是我的爱好。每当有新的业余项目出现,我都会立即投入其中,因为从事一些新鲜有趣的事情让我兴奋不已!我常常觉得,这幅由CommitStrip创作的漫画里,那个开发者就是在写我。
为了支持所有这些业余项目,我显然需要一台超棒的机器来完成这项工作。我想把工作用的笔记本电脑和代码与个人项目区分开来。所以,我最近决定在黑色星期五买一台新笔记本电脑。然而,就我的需求而言,我实在无法说服自己花那么多钱买一台Mac。不过,我可以买一台Windows笔记本电脑,它具备我想要的所有配置(甚至更多),而且价格便宜得多。考虑到这一点,我研究了好几天,终于找到了我认为完美的笔记本电脑!到了黑色星期五,我毫不犹豫地把它抢购一空。
我终于拥有了完美的笔记本电脑,准备开始使用了。最后一个障碍是什么?搭建一个合适的开发环境。由于过去几年一直使用 Linux 和 macOS 进行开发,我最初有些担心。幸运的是,Windows 10 和最新的 Creators Update 对 Windows 开发者环境进行了重大改进。这一切的核心是什么?Windows Subsystem for Linux,简称 WSL。
是的。你可以在 Windows PC 上运行多个 Linux 发行版,无需虚拟机、双启动等等。这是原生的。这太棒了。
我使用它进行个人开发还处于起步阶段,但迄今为止的体验非常棒!在我看来,它比尝试使用 Cygwin、Windows 版 Git(带有 Bash 模拟)以及其他许多试图弥补 *NIX 体验差距的解决方案要简单得多,也好得多。那么,让我们深入研究如何在 Windows 机器上获得这个史诗般的开发环境。
先决条件
要使用这些说明,您必须运行 Windows 10,并至少更新至 2017 年秋季创意者更新 (Fall 2017 Creator's Update)。对于 Docker 部分,您还必须拥有一台能够使用 Hyper-V 和硬件虚拟化的计算机,这需要 Windows 10 专业版。
使用 WSL 安装 Ubuntu
您需要做的第一件事是启用 WSL。打开“打开或关闭 Windows 功能”,然后在出现的对话框中向下滚动并选中“适用于 Linux 的 Windows 子系统”复选框,然后选择“确定”。这将应用更改,并在需要时重新启动您的计算机。
启用 WSL 后,打开 Windows 应用商店并搜索“Linux”。你会看到一个大横幅,提示你查看 Linux 发行版。在撰写本文时,这些发行版包括 Ubuntu、openSUSE 和 SUSE Linux Enterprise Server。
我选择 Ubuntu,因为我对它更有经验。本文使用 Ubuntu 命令。从 Windows 应用商店安装 Ubuntu 应用后,打开并运行它,你lsb_release -a
会看到,没错,你的 Windows 机器上确实运行着 Ubuntu。
Git
本文后续的许多安装都需要 git。我决定通过 WSL 安装并运行 git。安装方法很简单,只需运行sudo apt update && sudo apt install git
。安装 git 后,我还生成了一个 SSH 密钥,因为稍后我需要用它来从我的所有仓库拉取数据并推送数据。只需运行 即可轻松完成ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
。
ZSH(可选)
下一步完全是可选的。我喜欢 bash,也喜欢 zsh,所以两者都可以。如果你更喜欢 bash,请跳过此部分。
安装 zsh 相当简单。确保已运行后sudo apt update
,使用 进行安装sudo apt install zsh
。你可以运行以下命令来测试它是否正常工作zsh
,这将带你进入 zsh 终端!
我也很喜欢oh-my-zsh,它提供了许多漂亮的主题和优秀的插件。我curl
按照基本安装说明中的命令操作,一切顺利!然后,您可以通过编辑~/.zshrc
文件并将主题名称添加到ZSH_THEME
环境变量来选择所需的主题。我个人使用的是Pure,一个美观的极简主义主题。
注意:就我个人而言,当我尝试在 Ubuntu 终端应用中使用 Pure 和 zsh 时,遇到了一些样式和 Unicode 问题。不过,这对我来说不是问题,因为我使用的是 Hyper,下面我会详细介绍它!
超级
Zeit的Hyper是我最喜欢在所有机器上安装的东西之一。它是一款漂亮的终端模拟器,支持插件和主题。它是我安装 WSL 和 Ubuntu 后最先安装的程序之一。要让它运行,只需打开 .hyper.js
文件,更改 shell 属性,shell: 'wsl.exe'
然后保存并关闭文件。回到 Hyper 后,它应该会加载你的 zsh(或 bash)终端!从现在开始,我所有的终端需求都只用 Hyper。
注意:请确保属性中没有参数shellArgs
。WSL 默认使用登录 shell。
超级插件
如果有人还没用过 Hyper,我推荐你把一些我用过的优秀插件添加到你的 .hyper.js
插件列表中。它们包括hyperterm-material-dark、(声明:这是我的主题) 、 hypercwd、hyper-tabs-enhanced,以及那些让你感觉更酷炫的hyperpower!
Visual Studio 代码
比 Hyper 更甚的是,Visual Studio Code可能是我最喜欢的软件。我用过很多 IDE,Sublime Text、Atom、Notepad++,几乎所有常用的 IDE 都试过了。VS Code 是迄今为止我最喜欢的编辑器。它界面美观、轻量级、速度超快,拥有大量优秀的扩展,内置调试器支持,并且是我用过的所有文本编辑器中,最接近 IDE 的全部功能。我尽快安装了它,并使用“设置同步”扩展程序(我强烈推荐使用它来跨设备同步设置)同步了所有设置。
我之所以提到这一点,是因为我将 VS Code 中的集成终端也设置为使用我的 WSL Shell。为此,我进行了以下设置:"terminal.integrated.shell.windows":"C:\\WINDOWS\\System32\\wsl.exe"
。打开集成终端后,就可以开始使用了!
Node.js/NPM
我个人决定尽可能在 WSL 环境中完成所有工作。另外,我痴迷于使用 NVM 来管理我的 Node 安装,但这在 Windows 上无法使用。因此,我没有下载 Windows 版 Node.js 的安装程序,而是通过 Ubuntu 的仓库安装了 nvm!您可以按照NVM 安装说明中的说明进行操作。我以前curl
下载的是安装脚本,然后运行 进行安装sudo apt install curl
。
如果所有操作都正确,那么 nvm 应该已经正确安装。然后,我通过运行以下命令安装了 Node 的长期支持版本nvm install --lts
,并将nvm use --lts
其设置为我当前使用的版本。我还通过运行以下命令将其设置为我的默认 Node 版本,nvm alias default {VERSION}
其中 VERSION 是你刚刚安装的版本号。
注意:最初我遇到了一些麻烦,当我打开 Ubuntu 终端时,它会报错:N/A: version "N/A" is not yet installed
经过一番搜索,我发现运行时nvm ls
它会列出已安装的 Node 版本。在 lts 版本下,有几个版本显示“N/A”,因为它们尚未安装。我安装了这些版本后,错误就消失了。
纱
除了安装 Node 之外,我想提一下我还安装了Yarn,因为我超爱 Yarn。你可以在 Windows 上安装它,但同样,我尝试通过 WSL 完成所有操作,所以我遵循了Linux 安装说明。当然,具体来说是 Ubuntu/Debian 的安装说明。一切顺利,yarn 运行起来了!
Docker
首先,在深入探讨之前,需要注意的是,为了运行使用 Hyper-V 虚拟化的 Docker for Windows,您必须运行 Windows 10 专业版。家庭版不支持 Hyper-V。但这并不意味着您无法运行 Docker。您仍然可以运行使用 VirtualBox 的 Docker Toolbox。不过,这些说明仅适用于 Windows 版 Docker。
这是我没有通过 WSL 安装的一件事。我安装了Windows 版 Docker,因为它与操作系统紧密集成。Windows 版的体验对我来说非常完美,所以我觉得没有必要使用 WSL 安装它。也许以后我会尝试一下。
不过,我确实让它可以从我的 WSL 环境访问。在安装了 Windows 版 Docker 之后(我必须在启动时进入 BIOS 并额外启用硬件虚拟化),它成功运行后,我简单地给它添加了一个别名,这样它就可以像在 Linux/Mac 上一样被调用。在我的 .zsh_aliases
文件中,我添加了以下几行:
alias docker='docker.exe'
alias docker-compose='docker-compose.exe'
重新启动终端后,我就可以像平常一样调用 docker 和 docker-compose 命令!
最后的话
首先,我要向Rich Turner和其他致力于 Windows Subsystem for Linux 的团队成员致以崇高的敬意。他们正在做着不可思议的事情,让像我这样的普通开发者在 Windows 上的工作变得轻松愉快。并非所有英雄都披着斗篷,而这些人绝对是我的英雄!
最后,未来我肯定会需要更多工具和软件。就像我之前说的,就我使用这个开发环境而言,现在还处于初期阶段。我肯定会遇到一些以前没有遇到过的麻烦。然而,每个环境都有这些麻烦,到目前为止,我一直很喜欢在 Windows 上进行开发。说实话,我从来没想过我会这么说!
文章来源:https://dev.to/johnbwoodruff/epic-development-environment-using-windows-subsystem-forlinux-5f0n