0 开场白

这篇博客给大家介绍一下在 wsl2 下安装 ArchLnux 的简化方法。好几年前,安装过一次,比较麻烦,当时印象中还得使用 libreoffice 并且当时 systemctl 还不能用,总之,用起来呐,也能用,只是麻烦一些,后面换电脑或者在其他电脑上整的话,还得再来一遍,还是比较麻烦的。

最近无意中发现 github 上有人提供简化安装方式,这里给大家尝试一下。

https://github.com/yuk7/ArchWSL

1 安装

1.1 前提条件

想使用wsl2,基础的 windows 环境必不可少。

1.1.1 启用 Linux 子系统的功能

image-20250316112401991

image-20250316112426360

1.1.2 更新到 wsl2 并设置默认

# 更新wsl
wsl --update

# 将默认版本设置为2
wsl --set-default-version 2

1.2 下载安装

使用起来很简单啊,先去下载 zip 压缩包,各位直接去下载最新的即可

https://github.com/yuk7/ArchWSL/releases/

然后解压到自己的目录中,按照要求该目录必须可写入文件,因此建议放普通的D盘中,比如:D:\wsls

image-20250316111956394

解压后长这样,可以把Arch.exe换个名字,这样就可以同时运行多个,我为了演示就又搞了一个

以上完成后,直接运行 Arch.exe 即可安装,当然了,这里都是默认设置好的一些安装,玩 ArchLinux 的都知道,安装 ArchLinux 是一个不小的事情,自己安装的话。分区、安装、网络、GRUB等等,给一个官方中文参考:https://wiki.archlinuxcn.org/wiki/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97。

强烈建议,自己照着文档在虚拟机上面安装试试,对理解 Linux 非常有帮助,不太建议直接在 wsl2 上直接拿这个练手,影响因素太多。

好了,废话不多说,继续。

双击运行 Arch.exe 之后,长这样:

image-20250316113245404

然后,按 Enter 键会退出窗口,安装就已经ok了(是不是很简单~)

1.3 wsl配置

安装之后,去 wsl 上面看一下,应该能看到刚才安装的,打开控制台(CMD),输入下面来查看当前 wsl 安装了哪些 Linux

wsl --list

image-20250316113451671

可以看到,我这儿有两个啊,Arhc 是我之前已经装好的,下面的就是刚才的,可以看到,安装的名字就是按照 .exe 文件的名字来的,因此想要运行多个,就可以像我这样,起个不同的名字。可以见到我上面有个默认,指的是想运行并进入 wsl 的时候,可以直接输入 wsl而不指定名字,就能直接进入默认的 Linux 下。这样设置:

wsl --set-default Arch

这样,想进入我们刚才安装的系统的话,在 windows 下的控制台,直接输入:wsl 或者像我多个的话,想要进入非默认,就得指定名字:

wsl -d ArchForTest

image-20250316114302457

进来之后这样,没关系昂。可以看到,已经是 root 登录了,下面我们进行基础的设置。

2 ArchLinux配置

说到配置,其实每个人有自定义的,但是一些基础的少不了,我把我相关的配置介绍一下。

2.1 基础账号

上来先重置 root 密码

passwd

输入两次 root 账号密码即可

最好再来个自己的账号吧,毕竟是自己要使用的,也不是专做服务器的,自己账号肯定得有 sudo 权限

# 默认有个 wheel 组,因此我们可以直接把这个组设置有 sudo 权限,然后创建账号时候直接放这个组就行
echo "%wheel ALL=(ALL) ALL" > /etc/sudoers.d/wheel

# 添加账号到 wheel 组,后面 chunxiao.li 是我自己的,你们记得改成你们的
useradd -m -G wheel -s /bin/bash chunxiao.li

# 设置新账号的密码(记得改用户名)
passwd chunxiao.li

然后就可以通过自己新的账号登录了,可以修改 wsl 配置,让默认登录该账号:

Arch.exe config --default-user chunxiao.li

这个方式我这次试没成功啊,报错了:

ERR: wsl: �hKm0R localhost �NtM�n
�FO*g\��P0R WSL0NAT !j_
N/ec localhost �Nt0
1000
&errors.errorString{s:"w\x00s\x00l\x00:\x00 \x00\xc0hKm0R \x00l\x00o\x00c\x00a\x00l\x00h\x00o\x00s\x00t\x00 \x00\xe3N\x06tM\x91n\x7f\f\xffFO*g\\\x95\xcfP0R \x00W\x00S\x00L\x00\x020N\x00A\x00T\x00 \x00!j\x0f_\vN\x84v \x00W\x00S\x00L\x00 \x00\rN/e\x01c \x00l\x00o\x00c\x00a\x00l\x00h\x00o\x00s\x00t\x00 \x00\xe3N\x06t\x020\r\x00\n\x001000"}

有可能是因为我这个是第二个实例,如果有跟我类似的情况,可以用下面这种方式试试:

# 进入wsl中
wsl -d ArchForTest
当然如果只有一个默认的,直接输入 wsl 即可

# 编辑 wsl.conf
vim /etc/wsl.conf

# 在最后加上如下配置
[user]
default=chunxiao.li

保存即可,vim 大家应该都会用吧,我不做介绍了啊

如图:

image-20250316120550477

这样操作之后,下次进来就是自己的账号了。

2.2 软件包基础配置

首先设置国内源:

# 按说得备份下,不过其实也没问题,直接搞
sudo vim /etc/pacman.d/mirrorlist

# 可以像我一样直接在最前面,加上国内的,比如
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

另外,经常会遇到各种 Keyring 相关问题,这里直接设置好

sudo pacman-key --init
sudo pacman-key --populate
sudo pacman -Syy archlinux-keyring

然后,肯定得更新一下系统

sudo pacman -Syyu

顺带着把 AUR 相关的也弄上

sudo vim /etc/pacman.conf

# 在最下面加上下面内容

## 北京外国语大学 (北京) (ipv4, ipv6, http, https)
[archlinuxcn]
Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch


# 然后执行并安装 yay
sudo pacman -Syy
sudo pacman -S archlinuxcn-keyring
sudo pacman -S yay

最后装一下一些必要组件

sudo pacman -Sy --needed base-devel git

2.3 常用软件

上面说完了基础配置,这里继续整一下,毕竟常用软件还没完事

2.3.1 oh-my-zsh

终端应该少不了,我本来以为得先搞下面的代理才行,但是发现现在貌似不需要,也能安装成功,那就先来这个

这个就是终端的美化,不然的话默认多丑,比如

image-20250316122247058

装之后,类似这样:

image-20250316122454460

这样就行,亲测,不开代理也可完成

# 安装 zsh
sudo pacman -S zsh

# 切换默认终端为zsh
chsh -s /usr/bin/zsh

# 安装oh-my-zsh
sh -c "$(curl -fsSL https://install.ohmyz.sh/)"

贴一个 oh-my-zsh 官网:https://ohmyz.sh/

然后就是设置,可以找一个自己喜欢的主题,我一般用这个简单的 ys

可以在这里找到所有的主题:https://github.com/ohmyzsh/ohmyzsh/wiki/Themes

这样替换:打开 .zshrc 文件(安装zsh后,先退出一下,再重新进来,应该是有这个文件才对)

vim ~/.zshrc

找到:ZSH_THEME="robbyrussell",后面更改成自己喜欢的即可,比如我的:

ZSH_THEME="ys",然后更新下配置文件

source ~/.zshrc

可以再装个软件,neofetch,貌似这个不再维护了,可以换这个:fastfetch

# 安装
sudo pacman -S fastfetch

# 执行
fastfetch

image-20250316123217869

啊,舒服了!

2.3.1 代理

干啥用?啥也不说直接干,当然,如果不需要的直接跳过哈

找过好多,简单来整的话,可以参考我这个,就是在配置文件中,定义命令别名,在里面启用主机(Windows)的代理

话不多说,在 ~/.zshrc 中加入下面内容,PROXY_HOST对应的是主机的ip,建议直接使用 wsl 那个网卡,类似于这样:以太网适配器 vEthernet (WSL (Hyper-V firewall)):

# 配置代理的 IP 和端口
PROXY_HOST="172.30.48.1"
PROXY_PORT="7890"

function proxy-on() {
    export http_proxy="http://$PROXY_HOST:$PROXY_PORT"
    export https_proxy="http://$PROXY_HOST:$PROXY_PORT"
    export all_proxy="socks5://$PROXY_HOST:$PROXY_PORT"
    export no_proxy="localhost,127.0.0.1,::1"
    echo "Proxy enabled"
}

function proxy-off() {
    unset http_proxy
    unset https_proxy
    unset all_proxy
    unset no_proxy
    echo "Proxy disabled"
}

这样,在需要的时候,就执行一下 proxy-on,不需要的时候,就 proxy-off(改动.zshrc文件后记得用 source 命令更新)

看效果:

这是启用前:

image-20250316123845476

这是启用后:

image-20250316123911612

话在最后

这是一个系列,大家也可以通过上面看到,我的pc是带 4060 的,虽说还是有点儿辣鸡,但不影响搞一些模型的测试啊,搭建什么的。因此,这一篇只是先把基础环境整理好,也就是说,大家只要有 windows,也可以做一系列的事情。

下一期,应该会介绍 docker,以及 ollama 以及部署常见的大模型的基础使用。

感谢各位,我是晓风轻寒,期待您的下次光临。