从Visual Studio中定位Linux的Windows子系统

原文发表地址:https://blogs.msdn.microsoft.com/vcblog/2017/02/08/targeting-windows-subsystem-for-linux-from-visual-studio/

作者:Marc Goodner

适用于Linux的Windows Subsystem的子系统(WSL)在2016年首次推出,并作为Windows10周年更新中的早期测试版。从此以后,WSL团队一直为此努力工作,大大提高WSL能够运行越来越多的本机Linux命令行二进制文件和工具,包括大多数主流的开发工具,平台和语言,以及很多后台进程\服务*包括MySQL, Apache和SSH。

      在Visual Studio 2017中使用”C++ 的Linux开发“的工作负荷,您可以使用Visual Studio的全部功能进行C / C ++ Linux开发。 因为WSL只是另一个Linux系统,您可以按照我们的使用Linux工作负荷指南,从Visual Studio中进行定位。 这为您提供了大量的灵活性,使您的开发机器上的整个开发周期保持在本地,而不需要单独的VM或机器的复杂性。 然而,值得介绍如何在Bash / WSL上更详细地配置SSH。

安装WSL

      如果你还没有这样做,你首先需要启用开发人员模式并安装WSL本身。 这只需要几秒钟,但需要重新启动。    当您第一次运行Bash时,您需要按照屏幕上的说明接受Canonical的许可证,下载Ubuntu映像,并将其安装在您的计算机上。 然后,您需要选择UNIX用户名和密码。 这不需要与您的Windows登录用户名和密码相同,如果你喜欢。 您将只需要在以后使用sudo执行命令或者“远程”登录时输入UNIX用户名和密码(如下:)。

      现在你将在你的机器上有一个vanilla Ubuntu实例,您可以在其中运行任何ELF-64 Linux二进制文件,包括使用apt-get下载的二进制文件!

在我们继续之前,让我们安装build-essential包,以便你有一些关键的开发工具,包括GNU C ++编译器,链接器等:

$ sudo apt install -y build-essential

安装 & 配置SSH

让我们使用'apt'软件包管理器在Bash / WSL上下载和安装SSH:

$ sudo apt install -y openssh-server

     在我们启动SSH之前,您需要配置SSH,但您只需要执行一次。 运行以下命令编辑sshd配置文件:

$ sudo nano /etc/ssh/sshd_config

滚动到” PasswordAuthentication “所在的位置,然后确保它被设置为”yes“

按CTRL+X退出,然后按Y保存。

现在为SSH实例生成SSH密钥:

$ sudo service ssh start

* 注意:你每次启动第一个Bash控制台时都需要这样做。 作为一个预防措施,当您关闭最后一个Bash控制台时, WSL目前正在删除所有Linux进程

安装和配置Visual Studio

为了获得最佳体验,我们建议安装Visual Studio 2017 RC(或更高版本)以使用Visual C ++ for Linux。 在安装过程中务必选择Visual C ++ for Linux工作负荷。

现在,您可以从Visual Studio通过转到工具>选项>跨平台>连接管理器连接到Windows Subsystem for Linux。 单击添加并输入“localhost”作为主机名和您的WSL用户/密码。

现在您可以使用此连接与任何现有的C + + Linux项目或创建一个新的Linux项目在文件>新项目> Visual C ++>跨平台> Linux下。

今后,我们将发布更详细的文章,展示使用WSL的优势,特别是利用使用Linux工作负载构建的二进制文件在远程Linux系统上部署时的兼容性。

目前,现在,从Windows 10创意者更新开始,在Windows子系统Linux(Bash / WSL)上的Bash从Visual Studio的角度来看是一个真正的Linux系统。