Docker、Git代理配置
配置环境变量
1 | export http_proxy=http://your-ip-address:port/ |
代理格式:
1 | http://[user:password@]proxyhost[:port]/ |
apt-get update出现The following signatures couldn't be verified because the public key is not available错误,则需要手动添加key
执行以下命令:(B02C46DF417A0893替换为报错信息中显示的值)
1 | sudo gpg --keyserver keyserver.ubuntu.com --recv B02C46DF417A0893 |
解决GPG error: The following signatures couldn’t be verified because the public key is not available
由于要在WSL中使用Docker,系统盘空间不足,故迁移WSL到D盘
打开wsl文件夹:C:\Users\用户名\AppData\Local\Packages\WSL文件夹\LocalState
WSL文件夹名:
Ubuntu :CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
Ubuntu 18.04 LTS:CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
Kali Linux:KaliLinux.54290C8133FEE_ey8k8hqnwqnmg
删除temp文件夹
也可以先转换为wsl2再进行迁移
1 | wsl --set-version Ubuntu 2 |
如果提示:没有收到虚拟机或容器的回应,操作超时。
则需要先取消C:\Users\用户名\AppData\Local\Packages\WSL文件夹\LocalState的压缩内容以便节省磁盘空间选项(右键属性-高级,同时应用于子文件夹)
1 | wsl --shutdown |
下载https://github.com/DDoSolitary/LxRunOffline/releases并解压
然后以管理员权限启动PowerShell,切换到该目录
1 | .\LxRunOffline.exe list |
1 | .\LxRunOffline.exe move -n Ubuntu -d D:\Ubuntu |
1 | ./LxRunOffline.exe get-dir -n Ubuntu |
1 | wsl |
win10系统,操作系统版本大于等于18917
以管理员权限启动 PowerShell
1 | Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform |
前往https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel下载内核更新包并安装
x64的更新包下载:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
1 | wsl -l -v |
1 | wsl --set-version Ubuntu 2 |
等待转换完成后,再次执行wsl -l -v查看是否转换成功
如果要恢复的话,执行:
1 | wsl --set-version Ubuntu 1 |
一开始使用wsl1进行编译,即使用了ccache,编译耗时仍难以接受(编译了很久都没结束)
之后又使用wsl2进行编译,编译还是需要很久
原因猜测:源码位于D盘,wsl访问文件可能需要经过转换,因此IO操作速度慢。
搜索发现WSL 1 与 WSL 2 之间的用户体验更改中提到:
请确保将你要使用 Linux 应用程序频繁访问的文件放在 Linux 根文件系统中,以享受文件性能优势。 这些文件必须位于 Linux 根文件系统内,以便较快地访问文件系统。
验证:使用wsl在d盘解压源码,速度远慢于直接在wsl文件系统中解压
由此确定最终方案
将源码压缩包移动到linux文件系统下,再解压
或者使用repo工具下载源码到linux文件系统
尝试在wsl中使用adb,发现找不到设备。搜索一番发现是因为adb版本不统一导致的。
注意:wsl2中adb无法查询到usb设备,可以通过使用ip地址连接(需要root权限),或降级到wsl1
在 WSL 2 的初始版本中,将会限制硬件访问支持,例如:你将无法访问 GPU、串行或 USB 设备。
WSL2 - 常见问题
1 | sudo apt-get install android-tools-adb |
使用
1 | adb version |
查看adb版本,发现windows是1.0.41,而WSL下是1.0.39
1 | adb kill-server |
个人是把windows的adb文件替换为1.0.39版本,从而实现内外都可使用adb命令。
https://pan.baidu.com/s/1j8IKIyiIpVhqrPEKveJAGA 提取码: 2333
右键项目,添加应用程序清单文件。
将<requestedExecutionLevel level="asInvoker" uiAccess="false" />asInvoker修改为requireAdministrator
保存后再次点击运行,将提示使用其他凭据重新启动。
修改Program.cs的Main方法:
1 | static void Main(string[] Args) |