一笔糊涂帐的清算
去年开始接触一个项目,这个项目编出来后运行时出现权限问题(Permission Denied),于是就用sudo运行.
因此,基于VSCode调试时就要先用sudo code --no-sandbox --user-data-dir vscode-root启动VSCode,再Debug-Launch.
后面整理了项目的编译,改用docker(要root权限),docker生成的build目录因此也是root的, 如此看来,用root来运行VSCode也没啥问题.
后面重构项目时,发现之所以要root启动,主要还是因为项目的数据目录用的是/data/xxxx.
这是因为一开始项目只有嵌入式场景的产物,所以没太在意目录的命名, 但适配PC后,这个目录其实就不太合适了.
于是我改成了$HOME/.cache/xxxx。但VSCode还是root
最近想体验公司的AI编程助手,发现无论如何都无法授权。
一开始我怀疑是Linux的iOA太拉了,按照客服的指导也无法拉起授权页。
后面终于发现问题不是Linux+iOA,而是root VSCode的无法拉起授权页(大概率和沙箱有关),改用正常启动的VSCode丝滑就完成授权了。
回过头来,我发现我们的项目完全可以不用Root VSCode:
- 首先项目的代码都是非root的
- build目录是root,但这些目录只有docker应该write,VSCode只需read,所以也没问题
于是,我就用正常VSCode打开了我们的项目。
另外root的VSCode还无法使用Linux的五笔中文输入法,这下也解决了。。。。。。
当初的一笔糊涂帐,最近由于想用AI,一下子理清了……
mark