由于许多数据集下载命令需要Linux环境,而平时工作使用Windows设备,服务器设置代理又不方便,因此在Windows上通过WSL安装Linux子系统,并利用宿主机的系统代理使子系统能够访问公网。
安装WSL
Windows Subsystem for Linux(WSL)允许直接在Windows上运行GNU/Linux环境。
通过Microsoft Store下载,例如搜索Ubuntu,安装即可。
安装后,子系统的文件系统可直接访问:
设置WSL代理
初次运行时,需要设置账号密码,然后保存文件.proxyrc
:
#!/bin/bash
host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
export ALL_PROXY="http://$host_ip:10809"
export https_proxy="http://$host_ip:10809"
export http_proxy="http://$host_ip:10809"
其中端口10809仅为示意,需与宿主机的HTTP代理端口一致。
然后运行source .proxyrc
设置sudo环境
sudo命令默认不会继承环境变量。运行vim /etc/sudoers
,在Defaults env_reset
下方加入一行:
Defaults env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy"
将Windows脚本转化为Unix脚本
出现类似scripts/download_dtu_ground_truth.sh: line 2: $'\r': command not found
的问题,因为Windows的换行为\r\n
,而Unix为\n
。
sudo apt update
sudo apt install dos2unix
sudo dos2unix [filepath]
至此设置完成。