MENU

听说Windows是最佳Linux发行版?

August 25, 2020 • Read: 445 • Linux

在以前,实现win环境和linux环境并存基本上都是双系统或者win(linux)+虚拟机的解决方案,但是最近(其实也不是最近啦),微软提供了一个新的解决方案——基于wsl运行一个linux子系统

  1. 本教程并不适用于所有人,仅作为一个参考,如果您在安装过程中出现了蜜汁报错,请自行网上百度解决方案
  2. 如未经特殊说明,本教程的所有linux指令都是在root权限下执行的,请提前使用sudo -i指令提权或者在每一行指令前都加上sudo
  3. 本人所用windows版本为2004,如果您的操作系统版本过旧,请及时更新

1.设置wsl2环境

在windows里,默认是使用的wsl1环境,而这个也会导致很多蜜汁bug,比如无法使用ppa之类的,所以在此之前,我们先设置为wsl2环境

我们先打开控制面板,找到“启用或关闭 Windows 功能”,并勾选“适用于 Linux 的 Windows 子系统”,确定以后,windows应当会让您的电脑重启一次

image-20200824232048805

然后用管理员权限打开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,因为据我所知,直接运行msi是会报错的,所以我们需要直接解压这个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即可

image-20200824233324351

安装完成后,点击运行ubuntu,此时应当会开始安装,不要急,如果您的配置足够的话,差不多一分钟就安装完成了(“途中会设置linux的账号和密码,随便设置一个就行,但是千万不能搞丢,用过linux的都知道这个有多重要”)

3.安装windows terminal

截止到目前,其实ubuntu环境已经安装完成了,下一步需要的就是如何优雅地与linux交互了

我们这里选择windows terminal,这是微软官方的一个开源程序,所以可以直接在微软商店里面下载,这里我们选择普通版本即可

image-20200824233808728

下载完成以后打开,ubuntu应当已经被自动配置上了,但是这里建议对windows terminal进行一波配置,配置教程可以参考:新生代 Windows 终端:Windows Terminal 的全面自定义以及其他的一些教程,这里不再过多赘述,不过这个终端模拟器几乎是我见过最优秀的终端模拟器了(剩下两个是cmd和powershell)

image-20200824233913569

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

  1. 插入指令:shift + insert
  2. vim 编辑器在开始写入代码前,因先按insert 或者 i 切换到插入模式再开始编辑
  3. 编辑完成后,按esc键退出插入模式,输入:wq 保存并退出
  4. 其他不懂的请自行百度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

image-20200825002602162

保存退出,执行指令

g++ test.cpp -o hello

上述指令是告诉g++编译器,将test.cpp文件编译为名为hello的可执行文件(linux下的可执行文件没有后缀名),然后运行程序

./hello

看看输出结果

image-20200825002910755

这就表示安装成功了

安装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好使(“亲身经历”)

Last Modified: November 30, 2020
Archives Tip
QR Code for this page
Tipping QR Code