在以前,实现win环境和linux环境并存基本上都是双系统或者win(linux)+虚拟机的解决方案,但是最近(其实也不是最近啦),微软提供了一个新的解决方案——基于wsl运行一个linux子系统
- 本教程并不适用于所有人,仅作为一个参考,如果您在安装过程中出现了蜜汁报错,请自行网上百度解决方案
- 如未经特殊说明,本教程的所有linux指令都是在root权限下执行的,请提前使用
sudo -i
指令提权或者在每一行指令前都加上sudo - 本人所用windows版本为2004,如果您的操作系统版本过旧,请及时更新
1.设置wsl2环境
在windows里,默认是使用的wsl1环境,而这个也会导致很多蜜汁bug,比如无法使用ppa之类的,所以在此之前,我们先设置为wsl2环境
我们先打开控制面板,找到“启用或关闭 Windows 功能”,并勾选“适用于 Linux 的 Windows 子系统”,确定以后,windows应当会让您的电脑重启一次
然后用管理员权限打开powershell
执行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
这两句的作用是开启windows subsystem for linux 以及启用虚拟机支持
但是光使用者两句是不够的,还需要下载wsl的内核更新包,下载地址
如果运行失败,则尝试解压这个msi文件
msiexec /a "wsl_update_x64.msi" /qb TARGETDIR="./abc"
解压完成后,目录下应当会出现一个文件夹,找到这个文件夹里一个叫tools的文件夹,里面应当会有两个文件,将这两个文件复制到 C:/Windows/System32/lxss/tools
目录下,如果已存在同名文件,直接覆盖即可
接下来,重启一次电脑,刚才的修改就会生效了
再次以管理员权限打开powershell,执行指令:
wsl --set-default-version 2
这个指令的意思是默认新安装的wsl子系统为wsl2,如果没有出现任何报错,wsl2环境则设置成功
2.安装ubuntu20.04LTS
这里我们不必额外下载安装包,直接代开微软商店,搜索ubuntu,下载ubuntu20.04LTS即可
安装完成后,点击运行ubuntu,此时应当会开始安装,不要急,如果您的配置足够的话,差不多一分钟就安装完成了(“途中会设置linux的账号和密码,随便设置一个就行,但是千万不能搞丢,用过linux的都知道这个有多重要”)
3.安装windows terminal
截止到目前,其实ubuntu环境已经安装完成了,下一步需要的就是如何优雅地与linux交互了
我们这里选择windows terminal,这是微软官方的一个开源程序,所以可以直接在微软商店里面下载,这里我们选择普通版本即可
下载完成以后打开,ubuntu应当已经被自动配置上了,但是这里建议对windows terminal进行一波配置,配置教程可以参考:新生代 Windows 终端:Windows Terminal 的全面自定义以及其他的一些教程,这里不再过多赘述,不过这个终端模拟器几乎是我见过最优秀的终端模拟器了(剩下两个是cmd和powershell)
4.Ubuntu排坑
其实前面的步骤都没有花费我多久的时间,最难受的是后面的排坑过程
ubuntu换源
因为一些特殊原因,ubuntu的服务器不能正常访问,或者是网速很慢,所以这时就需要更换国内的镜像源,而镜像源一般有中科大的源,清华的源,阿里云的,还有网易的等等,博主这里实用的是阿里云的源
注:从这里开始,就是在windows terminal里面执行指令了
首先删除原来的源文件:
sudo rm /etc/apt/sources.list
然后调用vim编辑新的源文件
sudo vim /etc/apt/sources.list
将这一堆文件复制到新的源文件里
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
- 插入指令:shift + insert
- vim 编辑器在开始写入代码前,因先按insert 或者 i 切换到插入模式再开始编辑
- 编辑完成后,按esc键退出插入模式,输入
:wq
保存并退出 - 其他不懂的请自行百度vim快捷键
执行:
sudo apt-get update
sudo apt-get upgrade
更新软件列表和软件包
关于换源的文章参考:Ubuntu 20.04换阿里源
安装pip3(不需要python可以略过)
这里使用apt-get 指令安装的pip是有问题的,因为安装的pip版本过于老旧,会导致根本无法安装包,所以需要使用脚本安装pip
2020-11-30 更新 其实按照本人上述的操作是完全没有问题的,文章之所以这样写是因为博主第一次换源的时候错用了Ubuntu16的源 给大家道个歉 这里直接使用 sudo apt-get install python3-pip 即可
依次执行下述指令:
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
在执行指令前,请保证网络畅通,如果执行失败,请重复执行,直到成功为止(当然执行几十次都不行的就是人品问题了……换个网络吧)
然后检查一下pip 是否成功安装
pip3 --version
如果输出如下,则没有问题:
pip 20.2.2 from /home/mrsen/.local/lib/python3.8/site-packages/pip (python 3.8)
然后顺便给pip换个源:
cd ~
mkdir .pip
sudo vim .pip/pip.conf
将如下内容粘贴到文件内
[global]
timeout = 6000
index-url = https://pypi.douban.com/simple/
[install]
use-mirrors = true
mirrors = https://pypi.douban.com/simple/
trusted-host = pypi.douban.com
安装gcc和g++
ubuntu 里一般是自带了gcc的,所以只需要安装g++就行了
执行:
sudo apt-get install g++
等待安装完毕,查看是否安装成功
g++ --version
如果有类似于以下输出,则安装成功:
g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
我们来写一个cpp文件测试一下(忘了调tab宽度,将就着看)
vim test.cpp
保存退出,执行指令
g++ test.cpp -o hello
上述指令是告诉g++编译器,将test.cpp文件编译为名为hello的可执行文件(linux下的可执行文件没有后缀名),然后运行程序
./hello
看看输出结果
这就表示安装成功了
安装nodejs(不需要nodejs的略过即可)
博主实测,使用apt-get 安装的nodejs 版本为 nodejs 10,这里的安装方式是安装nodejs 12
首先下载 sh 脚本文件:
curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh
确保脚本文件下载完后,直接执行:
sudo bash nodesource_setup.sh
此时,脚本文件就会开始运行,待脚本文件运行结束以后,运行:
sudo apt-get install nodejs
检查一下安装是否完毕:
node -v
npm -v
npx -v
如果正常输出如:
root@raspbian:/home/pi# node -v
v12.18.3
root@raspbian:/home/pi# npm -v
6.14.6
root@raspbian:/home/pi# npx -v
6.14.6
就意味着安装成功了
排坑指南终于就到这里了,剩下的就是靠读者对linux的一些理解了,初入门的新手可能会觉得linux难搞,但是linux在开发程序的时候,确实比windows好使(“亲身经历”)
出处:https://grimoire.cn/linux/wsl.html
版权:本文《听说Windows是最佳Linux发行版?》版权归作者所有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
好文章。收藏了