体验.net core跨平台 之 系统环境:安装Windows10内置Linux子系统

时间:2022-04-14 04:03:50

感觉是时候学习下.net core了,虽然其根据.net4.x的重写工作还有很大一截没有完成。为了让.net跨平台ms这次也是拼了(早干嘛去了?);所谓的跨平台,听起来很6b,主要也就两个平台,Windows是.net诞生的老家,Linux是其接下来要适应的新环境。

之前尝试使用hyper-v安装的ubuntu,比较卡(笔记本AUSU i7-4710HQ 12GB RAM,分配4Processors 4GB RAM),窗口分辨率不能调,高DPI缩放下非常别扭……估计ms也没打算优化hyper-v的桌面体验;还有就是设置将网络共享给添加的虚拟网络交换机让虚拟机连上网之后竟然无法直接使用外面的蓝灯*代理,不知道这是什么一个原理(谁能科普下)。忽然想起去年ms曾表示会在win10中加入linux子系统,遂查找之,果真还有。

限制

Windows10专业版以上有该功能;要启用Bash on Windows,首先需要电脑CPU支持虚拟化技术,可在任务管理器-性能选项卡中判断:

体验.net core跨平台 之 系统环境:安装Windows10内置Linux子系统

 启用

1.启用开发者模式:在开始-设置-更新-开发者 中:

体验.net core跨平台 之 系统环境:安装Windows10内置Linux子系统

2.在 控制面板-程序和功能-添加/关闭windows功能中,开启Windows Subsystem for Linux (目前还是个Beta版);

体验.net core跨平台 之 系统环境:安装Windows10内置Linux子系统

之后会要求重启。

安装

这是最坑的一步。

重启之后,先将系统区域设置美国,打开cmd或着powershell,输入 lxrun /install /y 命令启动在线安装,期间会要求输入用户名密码(已安装无法截图),下载非常非常慢(100兆光纤下,区域设置为美国速度有明显提升,但依旧很慢);如果只是提示服务器连接失败,有两种选择:1是开代理(经测试本人所在公司网络需要蓝灯),,2是参照 这里(https://www.varunagw.com/how-install-windows-subsystem-linux-bashonwindows-offline-windows/) 设置离线安装(未测试)。

//昨晚的 Build 2017 介绍windows rs3更新后可以直接在商店中下载3个不同版本的Linux,应该可以拜托这种方式了。

使用

安装完成之后(希望大家都能安装成功),开始菜单中会有一个名为"Bash on Ubuntu on Windows"的快捷方式,指向系统文件夹中的bash.exe;打开这个bash,发现是一个命令行,尝试在其中敲一些Linux命令:

体验.net core跨平台 之 系统环境:安装Windows10内置Linux子系统

上面使用 cat /proc/version 查看了刚安装的Linux内核版本为4.4.0,再通过 lsb_release -a 得到发行版本为 代号xenial的Ubuntu 16.04.2 LTS,算是一个比较大众的版本

bash默认打开的终端窗口支持复制粘贴,建议通过在PowerShell输入 bash 的方式打开(注意两种方式打开时的默认路径不一样)。

尝试安装使用应用screenfetch(为了看 logo,^_^,我的最终目的当然还是安装dotnet core相关环境):

体验.net core跨平台 之 系统环境:安装Windows10内置Linux子系统

安装包下载的时候难免失败(几乎没有一次性过的安装,感慨天朝的网络),需要多试几次;通过su passwd拿到root权限会方便很多。

使用体验还是比较满意,比使用Hyper-v好太多

继续探索

通过ifconfig、ping、curl等命令发现该子系统直接享用外部主系统网络配置,其他共享特性以及暂时不在我的研究范围之内。

子系统系统默认安装在 Uses\用户名\AppData\Local\lxss 下,暂时没有命令参数可以改变安装路径;不过我想应该可以通过 移动用户文件夹 的方式间接改变其安装盘符(系统盘满了的时候试试,有试过的请告知下结果)。

子系统默认挂载了主系统所有盘符( lxss/mnt,可读写);可创建仅字母大小写不同的文件(夹),windows 资源管理器中也能查看,但默认只能打开大写的那个,删除的时候要注意。

其他后面继续补充……

关于GUI桌面(不推荐)

这个子系统默认不包含桌面环境,一是因为没必要还占资源,二是这种子系统的限制。要体验Linux桌面建议还是vm走起;如果非要在这里使用,需要在外部windows中安装Xming ,然后bash中运行带有GUI的应用(如FireFox)命令的时候在前面加上 DISPLAY=:0  (如 DISPLAY=:0 FireFox )就能将GUI显示在Xming中,以此类推,桌面也是一个GUI应用,只要安装一套桌面(如 Xfce4)再执行相同命令就可以了;估计这样会很卡。

Next

接下来可以正式体验开始.net core了……

https://www.microsoft.com/net/core#linuxubuntu

原文路径:

体验.net core跨平台 之 系统环境:安装Windows10内置Linux子系统