一、安装WSL
参考:
二、WSL 的环境配置
安装基础环境
sudo sh ubuntu_setup_env.sh
#!/bin/bash
set -e
SSHD_LISTEN_ADDRESS=127.0.0.1
SSHD_PORT=2222
SSHD_FILE=/etc/ssh/sshd_config
SUDOERS_FILE=/etc/sudoers
# 0. update package lists
sudo apt-get update
# 0.1. reinstall sshd (workaround for initial version of WSL)
sudo apt remove -y --purge openssh-server
sudo apt install -y openssh-server
# 0.2. install basic dependencies
sudo apt install -y cmake ninja-build gcc clang gdb valgrind build-essential
# 1.1. configure sshd
sudo cp $SSHD_FILE ${SSHD_FILE}.`date '+%Y-%m-%d_%H-%M-%S'`.back
sudo sed -i '/^Port/ d' $SSHD_FILE
sudo sed -i '/^ListenAddress/ d' $SSHD_FILE
sudo sed -i '/^UsePrivilegeSeparation/ d' $SSHD_FILE
sudo sed -i '/^PermitRootLogin/ d' $SSHD_FILE
sudo sed -i '/^PasswordAuthentication/ d' $SSHD_FILE
echo "# configured by CLion" | sudo tee -a $SSHD_FILE
echo "ListenAddress ${SSHD_LISTEN_ADDRESS}" | sudo tee -a $SSHD_FILE
echo "Port ${SSHD_PORT}" | sudo tee -a $SSHD_FILE
echo "UsePrivilegeSeparation no" | sudo tee -a $SSHD_FILE
echo "PermitRootLogin yes" | sudo tee -a $SSHD_FILE
echo "PasswordAuthentication yes" | sudo tee -a $SSHD_FILE
# 1.2. apply new settings
sudo service ssh --full-restart
# 2. autostart: run sshd
sed -i '/^sudo service ssh --full-restart/ d' ~/.bashrc
echo "%sudo ALL=(ALL) NOPASSWD: /usr/sbin/service ssh --full-restart" | sudo tee -a $SUDOERS_FILE
cat << 'EOF' >> ~/.bashrc
sshd_status=$(service ssh status)
if [[ $sshd_status = *"is not running"* ]]; then
sudo service ssh --full-restart
fi
EOF
# summary: SSHD config info
echo
echo "SSH server parameters ($SSHD_FILE):"
echo "ListenAddress ${SSHD_LISTEN_ADDRESS}"
echo "Port ${SSHD_PORT}"
echo "UsePrivilegeSeparation no"
echo "PermitRootLogin yes"
echo "PasswordAuthentication yes"
配置ssh, 在WSL端运行以下脚本,注意将其中的端口号改成windows中没用到的。 这里默认的端口号是2222.
Clion 配置
File | Settings | Build, Execution, Deployment | Toolchains
选择”Build,Execution,Deployment“中的”Toolchains“,点击左侧”+“,选择"WSL",添加后会出现右侧选项,其他设置都是默认,只需要配置”Credentials“,点击后面的设置(齿轮)
- wsl 的Cmake
- 配置deployment |Connection
- 如果 use rsync for download/upload,同步速度会更快。但需要参考该链接,配置rsync ,不然会报错。 如果不使用,则不打勾。
- 配置ssh之后,可以通过test connection 来检测是否能连接上wsl
将”Port“改为”2222“,在”User name“和”Password“中填入自己WSL中的用户名和密码,点击"OK"
- Deployment |Mapping
这一步主要是为了将远程项目文件和本地项目文件互相映射。其作用机制是,如果本地修改了,那么远端也会同步修改。
Deployment path 是远程端的项目路径,并且是相对路径,根目录已经在Connection中配置好了。
Local Path 是本地的项目路径,是绝对路径。
例如我wsl中是 /home/mdotdot/ClickHouse 那么这里的Deployment Path 就是ClickHouse
- Tools|Deployment
如果文件只在远端 ,则选择download 。
如果文件只在本地,则需要upload。
如果两边都有, 选择sync 同步。
时间会有点长,非常长,吃了个饭打了四把游戏还没结束。
debug 调试过程
编辑于 2022-03-03 18:36