为了向大家介绍 “Linux 上的 ASP.NET Core”,我需要一个 Linux VM,通过远程桌面连上去运行 Visual Studio Code。数小时后,我被一堆问题搞得头昏脑胀,最后终于能搭建了一个可用于演示的 VM。这篇文章向读者们简述了我在 Linux VM 中运行 Visual Studio Code 的经验。
这篇文章主要关注怎样为 Visual Studio Code(https://code.visualstudio.com/) 设置虚拟化的 Linux 环境。经过一些曲折,我终于在 Kubuntu 上运行起来了。为什么是 Kubuntu?这是我这段传奇故事的概述:
RDC 比 Hyper-V 视窗或某些 VMC 视窗对更易用
不使用 Gnome 桌面的时候工作还不错
在 xfce 上使用 xrdp 还不错,但是跑 Visual Studio Code 会有点问题
在使用 Gnome 的 Ubuntu 上安装 K 始终会出现错误和发生崩溃
NB! 我确信是做错了什么,或者是没有足够的知识和技能来配置复杂的 Linux 环境。如果你更懂 Linux 或者你有一个 Linux 大师作为朋友,那么你可以用你的方法来配置 Linux 环境。知足常乐!
安装 Kubuntu
让我们开始创建我们自己的 Hyper-V 虚拟机,为了节约时间最好的办法就是开始创建之前就下载 Kubuntu。我使用下面的配置创建了一个 VM:
1.没有开启 secure boot
2.2个虚拟内核
3.2048MB 内存
4.能访问本地网络的交换机
5.15GB 存储
6.DVD-ROM
我把 Kbuntu 映像作为 DVD 挂载,运行 Kubuntu,然后在 Hyper-v 窗口中打开 VM。安装很容易--只要跟着对话框的步骤,在结束的时候输入用户账户信息就行了。安装过程很快--大概是和杯咖啡和抽只烟的时间。安装好后,Kubuntu 需要移除安装介质然后重启 VM。如果没有问题 Kubuntu 就已经准备好了。
安装和配置 xrdp
下一步,我要配置好远程访问。这个过程也很简单。
打开终端下载 Krfb
sudo apt-get install Krfb
运行 Krfb,配置远程访问,就像官方文档写的那样:https://docs.kde.org/trunk5/en/kdenetwork/krfb/using-krfb.html
安装 xrdp:
sudo apt-get install xrdp
sudo system restart xrdp
在 window 系统中试着用 RDC 进入 VM。
安装 .NET 和 Visual Studio Code
我已经安装了 .NET 和 Visual Studio Code。
1.这有个 libicu55 库问题,你必须手动安装它。安装详情,可查阅 Shannon Deminick 的帖子 Installing .NET Core 1.01 on Ubuntu 16.10(https://shazwazza.com/post/installing-net-core-101-on-ubuntu-1610/)。
2.打开终端窗口输入如下命令(更多信息可在 .NET Core 首页:https://www.microsoft.com/net/core#ubuntu 获得):
sudo sh -c ‘echo “deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main” > /etc/apt/sources.list.d/dotnetdev.list’
sudo apt-key adv –keyserver apt-mo.trafficmanager.net –recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-dev-1.0.0-preview2-003131
3.打开浏览器,找到 VS Code 首页,下载 Ubuntu 包,你要确保包保存在了你的硬盘中。
4.在终端窗口中移动到下载 VS Code 的文件夹,运行如下命令:
sudo dpkg -i vs-code-deb-file-name-here.deb
5.使用下面的命令安装 Git:
sudo apt-get install git
如果没有错误,那么 Visual Studio Code 在使用远程登录时也不会有问题。
总结
找出了问题所在很容易就能让所有的事情顺利进行。可是如果你不熟悉 Linux,找出这个问题要花费你很长时间。一旦所有的事情都正常工作,就很容易更改更多的配置。事实上,之前用 Windows 的用户现在改用 Linux,更需要关心的是哪些可以一起工作。无论如何,我已经准备好了在 Linux 上使用 ASP.NET 所需的环境。