放假之后便沉迷于安装环境(bushi)。一般来说开发环境用Linux装起来最舒服了,奈何MATLAB在Ubuntu上UI放缩有问题,啥都能忍就是不能忍丑!于是爬回Windows装环境了。
话虽如此,直接在Windows上装实在不太方便,一方面用Windows管理包简直是毁天灭地,一方面Windows的命令行真的太丑了。于是我选择了WSL(Windows Subsystem for Linux),在Linux上管理包,在Windows上使用,十分不错。
另一方面,趁着折腾我补全了博客的评论系统,记录一下踩到的坑,希望看到的你能远远绕过。
我的机型:x86-64 WIndows 10 LTSC N WSL安装了Debian发行版 代号Bookworm
安装WSL&配置代理
切换登入用户
WSL的安装方法遍地都是,但将WSL挪位置之后,默认登录是root用户了。为了防止自己做傻事,想让WSL每次登录时都用用户账户登录。但WSL挪位置之后启动器会消失,网络上那种命令行修改的方法就无效啦!正确做法是:
用WSL在/etc新建文件wsl.conf
,如下操作:
|
|
输入以下内容:
|
|
然后重启WSL
|
|
就可以看到自己的用户成功登入啦!
PS: 如果直接使用Windows访问并新建,似乎并不能使用,在WSL里完成就可用。
配置WSL代理
国内恼人的网络环境让很多包下载都很慢很慢,可以选择添加代理。
我使用WSL1,网络与Windows相通,直接设定环境变量即可:
|
|
至于WSL2:首先我的系统是21H2的N版本,默认是没有安装WSL2的升级包的,直接安装WSL2的发行版会报错b110(似乎),其次WSL2很多好用的高级功能在WIndows11 以及22H2版本提供,我的系统并不支持,但是万一有人需要这样的东西,可以参考WSL 中的高级设置配置,在wsl.config中使用镜像模式和自动使用系统代理即可。
R与VSCode
一般使用R都是直接在Windows安装,这次我想在Linux中使用它,配合VSCode。
安装R:
|
|
安装radian,它可以让输出有颜色,花花绿绿的(不是):
|
|
这里有个小插曲,pip安装时会报PEP688错误,告诉你当前包管理被外部接管。我猜测这是WSL1的特点导致的,所以:
|
|
进入VSCode,安装WSL插件,等待一下就可以连接到WSL里啦! (PS:使用VSCodium,似乎要折腾很多才能使用这个插件,你可以参考这里以及这里)
然后,新建一个R文件,随便写点,运行!VSCode会提示安装laguageserver
包,点击安装!结果安装失败了,还给了一大堆报错。看着报错,在WSL中使用下列步骤安装:
|
|
就可以安装成功啦!
在VSCode使用radian之类的都参考了知乎,这里radian的路径是使用whereis指令输出的地址。唯一迷惑的就是在安装它所说配置了图片显示,似乎需要等待之类的操作才可以成功显示,我反复在VSCode的不同配置文件的设置中设置,莫名其妙就成功了。
Git与SSH
Git代理设置
GitHub推荐使用SSH来管理repository,但国内使用SSH直连效果并不理想。网络上可以搜索到很多SSH代理的教程,编辑~/.ssh/config中,使用nc或者其它程序完成。
但!是!当如上配置,输入ssh -T git@github.com
时,好长时间不输出任何东西,那就要反思,是不是自己的代理商关掉了22端口的传出!为了防止自家机器当跳板,许多代理提供商都会禁止向22端口发包,这让nc一直什么都输出不了,我在这里被坑了一晚上,最后恍然大悟,原来是方法错误了。
这种情况下,应当使用443端口发ssh连接,连接很快。
用ssh-agent免密码
生成一个密钥,公钥保存至Github设置中。 依照Github的官方教程。要注意,WSL默认不启用ssh-agent,需要的话可以在~/.profile或~/.bashrc写入。 完成后就可以愉快的直接push不需登录啦!
博客评论区
由于博客搭建在Vercel上,我选择使用Waline实现评论功能,简单轻松。 依照Waline快速上手配置,一键部署!
自动部署失败
Vercel自动部署失败简直开局失利,若是按照快速上手所说所做,Vercel便会提示“遇到了意料之外的错误,我们的团队正在处理,请稍后再试”之类,GitHub的Security Log显示Block掉了一些操作,并且Vercel官方的Help页面也没有任何有关于这个错误的说明。 还好遇到问题的不是我一个人,在Github issue得知了这个问题发生的原因:Github设置中设置block掉了有个人邮箱泄露风险的操作,而Vercel在clone时使用的是用户关联的邮箱,所以会被Github给全封掉了。 解决方法:把自己账户Email设置中"Block command line pushes that expose my email"勾勾去掉,就可以啦!
去掉地区与浏览器显示 & 邮件提醒
评论区为什么要显示地区呢?我觉得没有必要。可以根据官方的说明重构自己的Waline,就可以实现相应的效果。 邮件提醒是个很酷的功能!但现在似乎有个小小的bug,那就是提醒邮件内的网址似乎是错误的,等我有兴趣再修复吧!(