安装 Arch WSL 并配置

用 windows 写代码最想吐槽的就是 cmd 了!WSL 真的就是吾等救星。
之前使用的是商店里的 Ubuntu WSL ,没感觉到有啥不好的,然鹅试了 Arch WSL 以后,能体会到 Ubuntu WSL 的龟速…
Arch WSL 真的是秒开哦~
链接拿去:
yuk7/ArchWSL

下载安装 Arch WSL

这里是作者的安装教程:https://github.com/yuk7/ArchWSL/wiki

我选择的是传统方式安装(不使用AppX方式):

  1. Release下载最新版的 Arch.zip
  2. 解压到 C 盘根目录,(一定要在 C 盘,其他位置也可以),但是你要有该目录的读写权限,所以不能放到 Program Files等目录中。
  3. 双击解压好的 Arch.exe 进行安装,这个 .exe 的名字 就是要创建的 WSL实例的名字,改不同的名字就能创建多个 Arch WSL。

安装好之后,进行配置。

配置软件仓库

Arch Linux 软件仓库国内镜像

编辑 /etc/pacman.d/mirrorlist,里面有注释了的 China 的镜像,选一个你喜欢的取消注释就可以了。
然后更新软件包缓存,执行: pacman -Syyu

其他跟镜像有关的可以看这里:
https://wiki.archlinux.org/index.php/Mirrors_(简体中文)

添加 ArchlinuxCN 源

Arch Linux 中文社区仓库 是由 Arch Linux 中文社区驱动的非官方用户仓库。包含中文用户常用软件、工具、字体/美化包等。

官方仓库地址:http://repo.archlinuxcn.org

这里我使用的是腾讯的镜像: http://mirrors.cloud.tencent.com/archlinuxcn/

使用方法:
/etc/pacman.conf 文件末尾添加以下两行:

1
2
[archlinuxcn]
Server = https://mirrors.cloud.tencent.com/archlinuxcn/$arch

之后安装 archlinuxcn-keyring 包导入 GPG key:

1
2
3
pacman-key --init
pacman-key --populate
pacman -Syy && pacman -S archlinuxcn-keyring

安装 AUR 助手 yay

Arch User Repository(常被称作 AUR),是一个为 Arch 用户而生的社区驱动软件仓库。Debian/Ubuntu 用户的对应类比是 PPA。

AUR 包含了不直接被 Arch Linux 官方所背书的软件。如果有人想在 Arch 上发布软件或者包,它可以通过这个社区仓库提供。这让最终用户们可以使用到比默认仓库里更多的软件。

所以你该如何使用 AUR 呢?简单来说,你需要另外的工具以从 AUR 中安装软件。Arch 的包管理器 pacman 不直接支持 AUR。那些支持 AUR 的“特殊工具”我们称之为 AUR 助手。

我们想从 AUR 仓库中安装东西时,就需要 AUR 助手,这里推荐 yay.
Jguer/yay

1
pacman -S yay

安装完 yaygit 也会被一起装好。

检查本地软件包的更新:

1
yay

换成国内 AUR 源:

1
2
# yay --save --aururl "地址"
yay --save --aururl https://aur.tuna.tsinghua.edu.cn

yay 的配置文件路径: ~/.config/yay/config.json

查看 yay 配置:

1
yay -P -g

查看 yay 帮助:

1
man yay

创建 Arch 普通用户

刚安装好的 Arch 是 root 用户,为了不至于权限太大误伤系统,可以先创建一个普通用户。

添加一个用户:

1
2
3
useradd -m artin
# 参数解析
# -m 参数能帮助创建 /home/artin

设置用户密码:

1
passwd artin

在下一步之前,要先把默认编辑器设置成 vim,因为用不来默认的 vi…

1
export EDITOR=vim;

你也可以设置成自己喜欢的编辑器。

让用户可以执行 sudo 命令,这一步不能省略。
使用如下系统自带命令修改 sudoers 文件。

1
visudo

在里面添加这一行即可:

1
artin ALL=(ALL) ALL

这里我只把自己的用户名写进去了,你也可以设置一个用户组的权限,然后将你的用户加入到该用户组。

切换 WSL 默认用户

在 cmd 中打开你的安装目录:

执行:

1
Arch.exe config --default-user artin

玩转 Arch WSL

然后就是一些我自己喜欢的配置啦。

pacman 使用方法

ArchLinux必备命令记录(manjaro) - weixin_42408100的博客 - CSDN博客
https://blog.csdn.net/weixin_42408100/article/details/82526087

常用命令解释
pacman -Sy abc和源同步后安装名为abc的包
pacman -S abc从本地数据库中得到abc的信息,下载安装abc包
pacman -Sf abc强制安装包abc
pacman -Ss abc搜索有关abc信息的包
pacman -Si abc从数据库中搜索包abc的信息
pacman -Syu同步源,并更新系统
pacman -Sy仅同步源
pacman -R abc删除abc包
pacman -Rc abc删除abc包和依赖abc的包
pacman -Rsn abc移除包所有不需要的依赖包并删除其配置文件
pacman -Sc清理/var/cache/pacman/pkg目录下的旧包
pacman -Scc清除所有下载的包和数据库
pacman -Sd abc忽略依赖性问题,安装包abc
pacman -Su --ignore foo升级时不升级包foo
pacman -Sg abc查询abc这个包组包含的软件包
pacman -Q列出系统中所有的包
pacman -Q package在本地包数据库搜索(查询)指定软件包
pacman -Qi package在本地包数据库搜索(查询)指定软件包并列出相关信息
pacman -Q | wc -l统计当前系统中的包数量
pacman -Qdt找出孤立包
pacman -Rs $(pacman -Qtdq)删除孤立软件包(递归的,小心用)
pacman -U abc.pkg.tar.gz安装下载的abs包,或新编译的本地abc包
pacman-optimize && sync提高数据库访问速度

安装网络相关的工具

参考 http://www.linuxdiyf.com/view_218403.html
安装archlinux 以后没有 ifconfig,route ,nslookup 等命令

  • ifconfig,route在net-tools中
  • nslookup,dig在dnsutils中
  • ftp,telnet等在inetutils中
  • ip命令在iproute2中
1
pacman -S net-tools dnsutils inetutils iproute2

配置基本环境

安装 fakeroot、binutils 等打包基本工具

1
pacman -S base-devel

我这里会提示 fakeroot 被 ignore 了,因为 /etc/pacman.conf 里写了~ 选了 n
然后回车就好了~ 不输入数字的话默认会安装 base-devel 里的所有包。

安装配置 zsh

安装 zsh 和 oh-my-zsh

zsh 又好看又好用又强大~

先将代理设置为我本地的代理链接,因为等下 oh-my-zsh 的脚本会从 github 下载东西,国内下的慢~

1
2
export ALL_PROXY="http://127.0.0.1:7890"
export all_proxy="http://127.0.0.1:7890"

先安装 zsh,再装 oh-my-zsh

在终端执行:

1
2
sudo pacman -S zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

配置 alias

之后要经常修改 zsh,先配置几个方便、快捷的 alias。

编辑 ~/.zshrczsh 的配置文件。

1
vim ~/.zshrc

在文件的最后几行加上:

1
2
3
alias vizsh="micro ~/.zshrc"
alias ohmyzsh="micro ~/.oh-my-zsh"
alias rezsh="source ~/.zshrc"

这里的 micro 是我在用的编辑器:
zyedidia/micro
你可以改成你喜欢的, whatever.

保存后要在终端里激活一下 zsh 的配置文件:

1
source ~/.zshrc

即可~

配置 PATH 变量

WSL 中的环境变量会来自 Windows 系统,所以如果你两边都装了 npm 或者 python,可能会引起各种报错…

所以手动的精简一些环境变量,从上面这个图中拿下来一点就好啦。
编辑 ~/.zshrc

1
vizsh

添加:

1
2
3
4
5
6
export PATH="$HOME/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export PATH="/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:$PATH"
# 添加 `c/WINDOWS/system32` 这些目录是为了支持在 `vscode` 的 `remote-wsl`。
export PATH="/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:$PATH"
# 为了使用 vscode 的 `code .`
export PATH="/mnt/c/Users/withw/AppData/Local/Programs/Microsoft VS Code/bin:$PATH"

这里的都是我需要的,你可以根据自己的需要来判断用什么。

zsh 的其他的一些配置

配置 oh-my-zsh 的自带几个插件:

找到下面这一行,填入即可。

1
plugins=(git npm node history)

配置 不匹配通配符:
这个蛮有用的,比如想用 find *.txt 的时候。

1
setopt no_nomatch

设置几个顺手的函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
proxy () {
export ALL_PROXY="http://127.0.0.1:7890"
export all_proxy="http://127.0.0.1:7890"
http --follow -b https://api.ip.sb/geoip
}

unpro () {
unset ALL_PROXY
unset all_proxy
http --follow -b https://api.ip.sb/geoip
}

# 参考自:
# 来源:Ubuntu「一键」设置代理 | Sukka's Blog
# 链接:https://blog.skk.moe/post/enable-proxy-on-ubuntu/

ip_ () {
http --follow -b https://api.ip.sb/geoip
}

git-config() {
echo -n "Please input Git Username: "
read username
echo -n "Please input Git Email: "
read email
echo -n "Done!"
git config --global user.name "${username}"
git config --global user.email "${email}"
}
# 参考自:
# 链接:https://github.com/SukkaW/dotfiles

上面的脚本中的 http 命令来自 httpie
安装:

1
pacman -S httpie

在 VSCode 中使用 Wsl

待补充

更多优化配置

可参考知乎这篇:利用WSL打造Arch开发环境

大概就先写这么多吧~

- 正文到此结束啦 -
  • 文章作者: Artin
  • 文章标题: 安装 Arch WSL 并配置
  • 文章标题: https://lengthmin.me/posts/install-arch-wsl/
  • 更新时间: 2019-08-25, 20:02:59
  • 更新历史: Blame, History 源文件: .md Raw
  • 版权声明: 署名-非商用-相同方式共享 4.0 转载请保留原文链接及作者。