apt update 报错 the public key is not available 发表于 2020-04-16 概述apt-get update出现The following signatures couldn't be verified because the public key is not available错误,则需要手动添加key 解决方案执行以下命令:(B02C46DF417A0893替换为报错信息中显示的值) 123sudo gpg --keyserver keyserver.ubuntu.com --recv B02C46DF417A0893sudo gpg --export --armor B02C46DF417A0893 | sudo apt-key add -sudo apt-get update 参考解决GPG error: The following signatures couldn’t be verified because the public key is not available
Python pip永久换源 发表于 2020-04-15 概述最近安装python模块非常慢,甚至直接超时。更换源后解决 步骤WindowsC:\Users\用户名\pip\pip.ini: 12[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple Linux编辑~/.pip/pip.conf内容为: 12[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple 参考pip国内源设置方法
迁移WSL至非系统盘 发表于 2020-04-15 概述由于要在WSL中使用Docker,系统盘空间不足,故迁移WSL到D盘 迁移步骤删除temp文件夹打开wsl文件夹:C:\Users\用户名\AppData\Local\Packages\WSL文件夹\LocalStateWSL文件夹名:Ubuntu :CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgscUbuntu 18.04 LTS:CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgscKali Linux:KaliLinux.54290C8133FEE_ey8k8hqnwqnmg删除temp文件夹 (可选操作)也可以先转换为wsl2再进行迁移 1wsl --set-version Ubuntu 2 如果提示:没有收到虚拟机或容器的回应,操作超时。则需要先取消C:\Users\用户名\AppData\Local\Packages\WSL文件夹\LocalState的压缩内容以便节省磁盘空间选项(右键属性-高级,同时应用于子文件夹) 停止正在运行的wsl1wsl --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 启动wsl测试1wsl 参考搞机:window10安装Linux子系统(WSL)及迁移到非系统盘
在WSL2(Ubuntu 18.04)中安装docker并配置自启动 发表于 2020-04-15 安装12curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh 启动docker并配置权限12sudo service docker startsudo usermod -aG docker $USER 阅读全文 »
win10 WSL转换为WSL2 发表于 2020-04-15 环境win10系统,操作系统版本大于等于18917 步骤启用虚拟机平台和 Linux 子系统功能以管理员权限启动 PowerShell 12Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatformEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 更新内核组件前往https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel下载内核更新包并安装x64的更新包下载:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 查看当前子系统名称及版本1wsl -l -v 转换指定发行版到wsl21wsl --set-version Ubuntu 2 等待转换完成后,再次执行wsl -l -v查看是否转换成功如果要恢复的话,执行: 1wsl --set-version Ubuntu 1 参考如何在 Windows 10 中安装 WSL2 的 Linux 子系统WSL 2 需要更新其内核组件
win10 切换诊断数据为完整 发表于 2020-04-15 概述安装windows预览版,需要切换诊断数据为完整,而切换到完整后又会自动跳回基本。搜索后找到解决方案。原因是Connected User Experiences and Telemetry服务被禁用 解决步骤Win+R,services.msc,找到Connected User Experiences and Telemetry,设置为自动(延迟启动),再点击启动此服务即可成功切换 参考安装win10预览版,诊断数据无设置成完整
WSL(Ubuntu 18.04)编译安卓6.0.0_r1源码 发表于 2020-04-14 之前的尝试一开始使用wsl1进行编译,即使用了ccache,编译耗时仍难以接受(编译了很久都没结束)之后又使用wsl2进行编译,编译还是需要很久原因猜测:源码位于D盘,wsl访问文件可能需要经过转换,因此IO操作速度慢。搜索发现WSL 1 与 WSL 2 之间的用户体验更改中提到: 请确保将你要使用 Linux 应用程序频繁访问的文件放在 Linux 根文件系统中,以享受文件性能优势。 这些文件必须位于 Linux 根文件系统内,以便较快地访问文件系统。验证:使用wsl在d盘解压源码,速度远慢于直接在wsl文件系统中解压由此确定最终方案 最终方案将源码压缩包移动到linux文件系统下,再解压或者使用repo工具下载源码到linux文件系统 阅读全文 »
WSL中使用adb 发表于 2020-04-14 概述尝试在wsl中使用adb,发现找不到设备。搜索一番发现是因为adb版本不统一导致的。注意:wsl2中adb无法查询到usb设备,可以通过使用ip地址连接(需要root权限),或降级到wsl1 在 WSL 2 的初始版本中,将会限制硬件访问支持,例如:你将无法访问 GPU、串行或 USB 设备。WSL2 - 常见问题 准备Linux安装adb1sudo apt-get install android-tools-adb 解决方案查询adb版本使用 1adb version 查看adb版本,发现windows是1.0.41,而WSL下是1.0.39 停用adb服务1adb kill-server 统一版本个人是把windows的adb文件替换为1.0.39版本,从而实现内外都可使用adb命令。 下载链接https://pan.baidu.com/s/1j8IKIyiIpVhqrPEKveJAGA 提取码: 2333 参考
VS设置C#默认以管理员身份调试及启动 发表于 2020-04-14 默认以管理员身份调试右键项目,添加应用程序清单文件。将<requestedExecutionLevel level="asInvoker" uiAccess="false" />asInvoker修改为requireAdministrator保存后再次点击运行,将提示使用其他凭据重新启动。 程序自动请求管理员权限修改Program.cs的Main方法: 123456789101112131415161718192021222324252627282930313233343536static void Main(string[] Args){ /** * 当前用户是管理员的时候,直接启动应用程序 * 如果不是管理员,则使用启动对象启动程序,以确保使用管理员身份运行 */ //获得当前登录的Windows用户标示 System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent(); //创建Windows用户主题 Application.EnableVisualStyles(); System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity); //判断当前登录用户是否为管理员 if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)) { //如果是管理员,则直接运行 Application.EnableVisualStyles(); Application.Run(new Form1()); } else { //创建启动对象 System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); //设置运行文件 startInfo.FileName = System.Windows.Forms.Application.ExecutablePath; //设置启动参数 startInfo.Arguments = String.Join(" ", Args); //设置启动动作,确保以管理员身份运行 startInfo.Verb = "runas"; //如果不是管理员,则启动UAC System.Diagnostics.Process.Start(startInfo); //退出 System.Windows.Forms.Application.Exit(); }} 参考C#默认以管理员身份运行程序
使用Graphviz画一颗二叉树 发表于 2020-04-13 概述发现有一个工具叫Graphviz,类似于markdown,它使用dot标记语言来编写,能将其转换为图形。 准备工作(非必需,文末有精简版下载地址)下载并安装Graphviz将安装目录/bin添加到环境变量 阅读全文 »