前言

本文主要记录一些在wsl2中配置一些基本环境。

2024-03-08:今天在linux子系统里安装cuda和cudann,结果把我我wsl整坏了,迫不得已重装了一次,所有环境都得重新配置了…为此记录配置过程,以备后续不时之需。

wsl2 迁移到D盘

默认情况下,wsl2是安装在C盘的,但是C盘的空间有限,所以我们需要将wsl2迁移到D盘。

首先确保wsl是关闭状态。

1
2
wsl --shutdown
wsl -l -v

导出wsl2镜像(命名随意):

1
wsl --export Ubuntu-22.04 D:\\Ubuntu\\Ubuntu2204.tar

注销wsl2镜像:

1
wsl --unregister Ubuntu-22.04

导入wsl2镜像:

1
wsl --import Ubuntu-22.04 D:\\Ubuntu\\Ubuntu2204 D:\\Ubuntu\\Ubuntu2204.tar

启动wsl2,发现用户成了root,这时需要在cmd里输入命令恢复默认用户。请注意,这里的发行版名称的版本号是纯数字,比如Ubuntu-22.04就是Ubuntu2204。

1
Ubuntu2204 config --default-user <username>

wsl2中文字体缺失

wsl可以直接与自己windows系统上的文件互通,所以我们可以通过使用Windows自带字体的方式,来实现快速安装中文字体(以Ubuntu为例)。

1
sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/font

我们只需要将Windows下的字体目录链接到wsl目录下即可然后再刷新一下。

1
fc-cache -fv

这样就可以正常显示中文字体了

命令行美化——oh-my-zsh

安装zsh

1
2
3
4
5
6
7
sudo apt install zsh

git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh --depth=1

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

chsh -s /bin/zsh

重启终端,即可看到zsh的效果。

安装插件

1
2
3
4
5
# 命令补全
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# 语法高亮
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

~/.zshrc里修改plugins字段:

1
2
3
4
5
6
plugins=(
sudo
git
zsh-autosuggestions
zsh-syntax-highlighting
)

重启终端,即可看到效果。

编译gcc-13

这里去下载gcc-13的安装脚本,然后添加可执行权限:

下载一些构建工具:

1
2
sudo apt install build-essential
sudo apt install cmake

解压并配置:

1
2
3
4
tar -xvf gcc-13.2.0.tar.gz

cd gcc-13.2.0/
./contrib/download_prerequisites

构建gcc-13:

1
2
3
4
5
6
7
8
mkdir build && cd build

../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

sudo make -j8

sudo make install

验证:

1
gcc --version

编译程序时发现libstdc++.so.6: version 'GLIBCXX_3.4.32' not found,这是因为编译出来的libstdc++没有被识别到,需要将其添加相关目录中。

1
2
# 查找libstdc++.so.6.0.32
find / -name "libstdc++.so*"

找到了,发现在/usr/local/lib64/libstdc++.so.6.0.32,复制到/usr/lib/x86_64-linux-gnu/下:

1
sudo cp /usr/local/lib64/libstdc++.so.6.0.32 /usr/lib/x86_64-linux-gnu/

然后创建软连接:

1
2
sudo rm -rf libstdc++.so.6
sudo ln -s libstdc++.so.6.0.32 libstdc++.so.6

重新编译程序,发现问题解决了。

编译clang-17

下载clang-17:

1
2
3
4
5
6
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 17

# 验证
clang-17 --version

安装qt

这里去下载qt安装包,然后添加可执行权限:

1
sudo chmod +x qt-unified-linux-x64-xxx-online.run

运行安装包:

1
./qt-unified-linux-x64-xxx-online.run

可能需要安装一些依赖,照着报错安装即可。

copilot for CLI

copilot CLI是GitHub CLI的一个插件,需要先安装gh:

1
2
sudo apt update
sudo apt install gh

认证:

1
2
3
4
5
gh auth login

gh extension install github/gh-copilot

gh extension upgrade gh-copilot

测试:

1
2
3
4
# 解释
gh copilot explain "tar -czvf filename.tar.gz filename"
# 建议
gh copilot suggest "查看端口80是否被占用"