南充做网站的公司电子商务网站建设方案推荐
文章目录
- 一、准备
 - 1. 开启`WSL`相关功能
 - 2. 升级`WSL`
 - 3. 设置默认的wsl版本
 
- 二、通过 Microsoft Store 安装 Linux
 - 1. 查看 Microsoft Store 有哪些可安装的 Linux 发行版
 - 2. 安装 Linux 发行版
 - 3. 查看已安装的 Linux 发行版
 - 4. 启动Linux发行版
 
- 三、通过Linux发行商提供的tar文件安装
 - 1. 导入 Alpine 发行版 Linux
 - 2. 启动 Alpine Linux
 
- 四、通过Docker中导出容器的tar文件安装
 - 1. 在Docker中拉取CentOS镜像
 - 2. 创建CentOS容器
 - 3. 导出CentOS容器为tar文件
 - 4. 将tar文件导入到WSL
 - 5. 启动新导入的 CentOS
 
本文将总结如何在WSL上安装Linux发行版。
总结三种方式:
 1)从Microsoft Store安装;
 2)从Linux发行商提供的tar文件安装;
 3)从Docker中导出容器的tar文件安装;
一、准备
1. 开启WSL相关功能
 
在启用或关闭 Windows 功能中,勾选适用于 Linux 的 Windows 子系统、虚拟机平台,确认保存后重启系统。
 
2. 升级WSL
 
在命令行窗口,执行如下命令,升级wsl
wsl --update
 
3. 设置默认的wsl版本
在命令行窗口,执行如下命令,设置wsl2为默认的版本
wsl --set-default-version 2
 
二、通过 Microsoft Store 安装 Linux
1. 查看 Microsoft Store 有哪些可安装的 Linux 发行版
使用wsl -l -o查看Microsoft Store有哪些可安装的 Linux 发行版
D:\WSL2>wsl -l -o
以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed
 
2. 安装 Linux 发行版
这里以Debian为例
D:\WSL2>wsl --install Debian
正在安装: Debian GNU/Linux
已安装 Debian GNU/Linux。
正在启动 Debian GNU/Linux...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: chen
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
chen@GC:~$
 
安装过程中,会要求创建用户、设置密码,安装成功后便以该用户进入bash交互模式
3. 查看已安装的 Linux 发行版
使用wsl -l -v命令,可以查看当前已安装的Linux发行版
D:\WSL2>wsl -l -vNAME                   STATE           VERSION
* Ubuntu-22.04           Running         2docker-desktop         Running         2docker-desktop-data    Running         2Debian                 Stopped         2
 
Ubuntu-22.04、docker-desktop、docker-desktop-data 这三个是我本地安装Docker Desktop时自动安装的。
4. 启动Linux发行版
首次安装后会自动进入bash交互模式,若后续想再次进入,可执行wsl -d <Distro>命令
D:\WSL2>wsl -d Debian
chen@GC:/mnt/d/WSL2$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
 
三、通过Linux发行商提供的tar文件安装
部分Linux发行商会提供 包含发行版的所有 Linux 二进制文件 的tar包。比如:Alpine Linux
Alpine各版本下载:https://dl-cdn.alpinelinux.org/alpine/
下载适合你的版本,注意要tar.gz包,不是iso包。
 我这里为了演示,下载的是minirootfs(只有3M,你能想象一个系统只有3M真的是牛啊):
 alpine-minirootfs-3.18.3-x86_64.tar.gz
1. 导入 Alpine 发行版 Linux
使用wsl --import命令,将指定的 tar 导入为新分发。
 完整格式:wsl --import <Distro> <InstallLocation> <FileName> [Options]
D:\WSL2>cd AlpineD:\WSL2\Alpine>dir /B
alpine-minirootfs-3.18.3-x86_64.tar.gzD:\WSL2\Alpine>wsl --import Alpine3.18 . .\alpine-minirootfs-3.18.3-x86_64.tar.gz
正在导入,这可能需要几分钟时间。
操作成功完成。D:\WSL2\Alpine>
 
2. 启动 Alpine Linux
D:\WSL2\Alpine>wsl -d Alpine3.18
GC:/mnt/d/WSL2/Alpine# cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.18.3
PRETTY_NAME="Alpine Linux v3.18"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
GC:/mnt/d/WSL2/Alpine# cat /etc/alpine-release
3.18.3
GC:/mnt/d/WSL2/Alpine#
 
四、通过Docker中导出容器的tar文件安装
这里假定你已经按照了Docker Desktop或Docker Engine。
 Windows Docker Desktop 安装
 在CentOS中安装Docker Engine
更多安装方式可参考docker官网:
 https://docs.docker.com/desktop/
 https://docs.docker.com/engine/install/
接下来以安装 CentOS为例
 (实际上docker上能找到几乎所有的Linxu/Unix等发行版)
1. 在Docker中拉取CentOS镜像
docker pull quay.io/centos/centos:centos7.9.2009
 
相信大多数人都无法访问 https://hub.docker.com/
 如何知道CentOS有哪些版本(tag)可下载呢?
 请参考:
 Docker 中下载各版本的 CentOS、CentOS Steam 方式
也可以用官方的centos仓库下载
docker pull centos:centos7.9.2009
 
但官方的仓库里没有 stream 的版本,quay.io/centos/centos 仓库提供了所有版本(CentOS、CentOS Stream 各个版本)
2. 创建CentOS容器
D:\WSL2>docker images
REPOSITORY               TAG              IMAGE ID       CREATED         SIZE
quay.io/centos/centos    stream9          e3d50dda340a   38 hours ago    154MB
alpine                   latest           7e01a0d0a1dc   3 weeks ago     7.34MB
centos                   centos7.9.2009   eeb6ee3f44bd   23 months ago   204MB
quay.io/centos/centos    centos7.9.2009   8652b9f0cb4c   2 years ago     204MBD:\WSL2>docker create --name CentOS7.9 8652b9f0cb4c
bd2f4bc3336e492dbea363e41c70f5356f70449395a1a3122acbafa604c9034b
 
直接复制IMAGE ID,然后使用docker create命令创建
3. 导出CentOS容器为tar文件
D:\WSL2\CentOS>docker ps -a
CONTAINER ID   IMAGE                    COMMAND       CREATED              STATUS                    PORTS     NAMES
bd2f4bc3336e   8652b9f0cb4c             "/bin/bash"   About a minute ago   Created                             
1852bde26843   centos:centos7.9.2009    "/bin/bash"   4 days ago           Exited (127) 4 days ago             centos7D:\WSL2\CentOS>docker export -o centos7.9.2009.tar bd2f4bc3336eD:\WSL2\CentOS>dir /B
centos7.9.2009.tar
 
复制CONTAINER ID,使用docker export -o命令导出容器为tar文件
4. 将tar文件导入到WSL
D:\WSL2\CentOS>wsl --import CentOS7.9 . .\centos7.9.2009.tar
正在导入,这可能需要几分钟时间。
操作成功完成。D:\WSL2\CentOS>wsl -l -vNAME                   STATE           VERSION
* Ubuntu-22.04           Running         2docker-desktop         Running         2docker-desktop-data    Running         2Alpine3.18             Stopped         2CentOS7.9              Stopped         2
 
5. 启动新导入的 CentOS
D:\WSL2\CentOS>wsl -d CentOS7.9
[root@GC CentOS]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[root@GC CentOS]#
