win10在任意位置安装Linux子系统WSL Ubuntu

 

1.可选步骤--把WSL 2设置为默认版本
以管理员身份打开Powershell,输入命令
wsl --set-default-version 1

 

*2.启用适用于Linux的Windows子系统
控制面板--程序--程序和功能--启用或关闭Windows功能
选中 适用于Linux的Windows子系统,确定
完成后重启生效

 

*3.下载WSL Linux手动安装包

选择Linux版本,下载

https://learn.microsoft.com/en-us/windows/wsl/install-manual#downloading-distributions

 

*4.安装
.AppxBundle安装包改名为zip文件,解压,找到文件名包含x64的.appx文件,再次改名为.zip文件,
解压到D盘比较好找的目录,如D:\Ubuntu
点击ubuntu.exe安装,在D:\Ubuntu目录中有一个rootfs文件,即为安装目录

 

5.设置默认用户为root

Ubuntu中运行命令:

su root

获取root权限

 

在windows cmd中执行命令:
cd D:\Ubuntu
d:
ubuntu.exe config --default-user root

关闭Ubuntu,重新打开,默认已经是root用户

 

6.配置Python环境

在Ubunbu运行如下命令,找到python文件的位置 

whereis python3

 

打开目录D:\Ubuntu\rootfs\root, 打开.bashrc文件,在

# Alias definitions.

这一行注释前面添加一行并保存:

alias python='/usr/bin/python3'

 

在Ubuntu运行命令:

source ~/.bashrc

 

7.安装并切换shell为zsh

运行命令

sudo apt install zsh

 

验证是否安装成功

zsh --version

 

关闭Ubuntu重新打开

确认当前运行的Shell, 运行命令

echo $0

 

运行命令

chsh -s $(which zsh)

 

如果不生效,在/root/.bashrc文件的最后添加一行

bash -c zsh

重启Ubuntu

 

 8.安装oh-my-zsh

运行命令

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

打开/root/.zshrc文件,设置ZSH_THEME的值(需要双引号)

主题对应样式,参考

https://github.com/ohmyzsh/ohmyzsh/wiki/themes

 

下载nerd fonts

https://www.nerdfonts.com/

下载之后,解压,复制 .ttf 文件到C:\Windows\Fonts目录

 

打开powershell, 用cd命令切换到zip文件解压目录(/nerd/nerd-fonts-master目录),执行命令

./install.ps1 Ubuntu

 

7.Shell的解释器更改为bash
执行ls -l /bin/sh命令,若得到结果/bin/sh -> dash,则说明Shell的解释器为dash。
执行dpkg-reconfigure dash命令,然后选择no。
(重要此步骤需要root权限)
再次执行ls -l /bin/sh命令,若得到结果/bin/sh -> bash,则说明成功更改Shell的解释器为bash。

 

 

 

8.添加国内的源(解决安装包下载慢的问题)

将下列文本添加到/etc/apt/sources.list文件:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse

 

在Ubuntu运行命令:
apt-get update;apt-get upgrade

 

9.启用systemd(crontab依赖于systemd)

在/etc目录下创建文件wsl.conf,输入文件内容

[boot]

systemd=true

保存内容。关闭 WSL Ubuntu重新启动

 

运行命令

systemctl list-unit-files --type=service

确认cron服务是否运行

 

10.安装、运行docker

在WSL Ubuntu运行命令:

sudo apt update && sudo apt upgrade -y

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo usermod -aG docker $USER

 

关闭WSL Ubuntu,在Powershell运行命令

wsl --shutdown

打开WSL Ubuntu,运行命令

docker --version

显示版本号,就是安装成功

 

启动docker
sudo service docker start

查看docker是否运行
sudo service docker status

WSL Ubuntu 22.04会看到docker没有运行,因为WSL Ubuntu 22.04默认使用了iptables-nft,要让docker运行,需要切换为iptables-legacy

运行命令
sudo update-alternatives --config iptables
选择1,也就是iptables-legacy

运行sudo service docker start


停止Docker
sudo service docker stop

 

11.卸载Ubuntu
以管理员身份打开Powershell,输入命令
wsl --list
wsl --unregister Ubuntu

 

posted @ 2024-03-12 15:49  coffee~  阅读(371)  评论(0编辑  收藏  举报