在WSL2中安装其它Linux发行版

1    427    2

Tags:

👉 本文共约6450个字,系统预计阅读时间或需25分钟。

概述

总体来说,可以有如下3种办法:

1、通过github的文件直接导入

2、通过docker镜像导入

3、通过LxRunOffline安装

docker镜像导入 Linux 发行版

通过使用 tar 文件导入任何 Linux 发行版,可在适用于 Linux 的 Windows 子系统 (WSL) 中使用该发行版(即使它不在 Microsoft Store 中提供)。

参考

https://learn.microsoft.com/zh-cn/windows/wsl/use-custom-distro

通过github开源包直接导入

参考地址: https://www.how2shout.com/how-to/install-centos-on-windows-10-subsystem-for-linux.html

下载 CentOS 镜像包
以下是 Github 上的一个开源项目,提供适用于 Linux 的 Windows 子系统的 CentOS 的下载。
https://github.com/mishamosher/CentOS-WSL

  1. 解压镜像包后,得到以下两个文件
    分别是:rootfs.tar.gz , CentOS.exe
  2. 安装运行
    右键 CentOS.exe文件, 以管理员身份运行
  3. 安装完成
    安装完成后,您将在 CentOS 命令屏幕上收到一条消息。现在按 Enter 键退出设置。
  4. 运行 CentOS 7
    一种是:在安装目录中找到 CentOS7.exe 双击运行,进入到 linux 系统
    另一种:在cmd 中 输入 wsl,进入到 linux 系统
  5. 更新 yum

要卸载它,请将 PowerShell 作为管理员切换到 CentOS 目录, ./CentOS.exe clean

通过LxRunOffline安装

在 WSL2 中安装完成 CentOS 系统后,基于 systemctl 或 service 命令的服务无法运行,比如 nginx php-fpm mysql docker等。

一、安装 chocolatey 和 LxRunOffline

Chocolatey 是一个 Windows 包管理工具,LxRunOffline 是一个 WSL 的管理软件。用 choco 安装 LxRunOffine ,然后用 LxRunOffline 安装各种版本的 Linux 镜像。

NuGet(读作New Get)是用于微软.NET开发平台的软件包管理器,是一个Visual Studio的扩展。Chocolatey 是基于 NuGet 的一个软件包管理器,就像 Linux 中的 yum 或 apt 一样,在 Windows10 中也可以用命令行安装程序了。

右键单击开始菜单,选择 Windows PowerShell(管理员),打开一个具有管理员权限的 PowerShell 窗口,输入命令并回车:

完成后,输入命令:choco ,如果能正确显示版本号,说明安装成功。

LxRunOffline 是非常实用的 WSL 管理软件,可以备份、创建、恢复、导出WSL子系统,也可以安装适配 WSL 的任何 Linux 发行版,可以将 WSL 子系统安装到任意目录中。

在 PowerShell 窗口中输入命令安装LxRunOffline,安装完成后重启 PowerShell。

若不能安装,报如下的错误,则可以下载离线安装包:https://github.com/DDoSolitary/LxRunOffline/releases/download/v3.5.0/LxRunOffline-v3.5.0-msvc.zip

并且配置环境变量:

检查:

在命令行窗口中,使用"LxRunoffline version"命令;若成功显示版本号,则代表安装成功

choco 其它命令如下:

choco -v 查看 choco 版本
choco list -li 查看本地安装的软件
choco search nodejs 查找安装包
choco install sublimetext3 下载
choco uninstall sublimetext3 卸载
choco upgrade sublimetext3 更新升级(update)
choco upgrade chocolatey 更新升级 chocolatey 自己

二、下载 适用于 WSL 的 Linux 发行版镜像

Linux 发行版镜像可以到 http://hub.docker.com 去找,参考:https://github.com/RoliSoft/WSL-Distribution-Switcher

以 CentOS 为例,打开https://hub.docker.com/_/centos/

下载 CentOS8 镜像:

https://raw.githubusercontent.com/CentOS/sig-cloud-instance-images/CentOS-8-x86_64/docker/centos-8-x86_64.tar.xz

下载 CentOS7 镜像:

https://raw.githubusercontent.com/CentOS/sig-cloud-instance-images/CentOS-7-x86_64/docker/centos-7-x86_64-docker.tar.xz

其它镜像地址:https://github.com/CentOS/sig-cloud-instance-images

三、安装 CentOS 镜像

安装WSL子系统的命令行格式为:

重新启动 PowerShell,输入命令安装 CentOS 镜像:

这行命令表示将 CentOS 系统安装到 f盘的 centos 文件夹下,并且命名为CentOS8。注意:Windows 系统命令行中的文件路径和 Linux 系统不同,这里安装目录 f:/ 要用 Linux 方式的反斜线表示,是为了 WSL 使用;而安装包路径 f:\ 是为了 LxRunOffline 使用,是 Windows 下的路径。

查看所有已安装镜像,能够显示已安装的 centos ,表示安装成功。

如果安装失败也会出现 centos 目录,安装失败重新安装时需要卸载镜像,另外安装目录在 C 盘在卸载时可能存在权限问题,卸载后如果目录没有删除可以手动删除目录。

卸载 WSL 系统镜像命令:

LxRunOffline的其它命令:

四、转换为 WSL2

输入命令并回车,列出已经安装的 WSL 的信息

将对应的 WSL 发行版设为 WSL2,命令格式:

其中要和上面查询到的信息一致,本例中为 centos,输入以下命令并回车:

输入以下命令并回车,设置默认使用的发行版:

此时,再次使用命令 wsl -l -v 查看,可以看到 centos 的 VERSION 已经变为 2,并且名称前加了*号(即默认的WSL系统)。

五、安装 CentOS 中的常用工具

1、安装 wget vim 等工具

2、更换国内源

(1) 备份原始的yum源

(2) 下载对应版本的repo文件

可以看到 aliyun 的源包含的以下各项:[base] [extras] [centosplus] [PowerTools] [AppStream] ,因此前面对这些源都做了备份。

(3) 清除旧的缓存并生成新的缓存

六、WSL2 与 systemd 进程

WSL2 本身是由 Windows 负责运行的,因此使用 tree 或 ps 命令时会看到根进程不是 systemd,这将导致无法启动 Linux 系统服务的守护进程(deamon)。当我们执行 systemctl 命令的时候,会显示出我们的 init system (PID 1) 并非 systemd,而是微软提供的 /init。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

1 条回复

  1. Avatar photo 小麦苗说道:

    微软已经为WSL2开发支持了原生的systemd,请参考:https://www.xmmup.com/weiruanweiwsl2tigongyuanshengsystemd-zhichi.html

发表回复