steamdeck的steamos基于archlinux,看似用pacman安装一些开发工具之后,就可以开始写代码了,但其实因为steamdeck系统独特的更新方式,每次系统更新后,根分区会被重置,pacman安装的所有包也就不复存在了。
于是我们不得不曲线救国,用另一种方法,使用distrobox和podman建立一个容器系统,然后通过vscode远程开发容器的方式,进行C语言的开发。
1、要求:
steamdeck的系统版本最好是3.5.1及以上,因为这时steamos已经内置了我们需要的两个主要的软件:distrobox、podman
低于此版本的steamdeck也可以折腾,不过需要自己手动安装上述两个软件。
搞个接steamdeck的底座,用于插键盘和输出视频到显示器,如果你跟我说,你想用steamdeck的软键盘和小屏幕写代码,我劝你早点洗洗睡吧。
2、开始折腾
最基础的步骤,先从steamdeck的游戏模式,选择电源,切换到桌面。
然后ctrl+alt+t打开终端,输入passwd连续两次输入自己的密码就可以了,这样就完成了基础的准备。
2.1安装自己喜欢的发行版
- ctrl+alt+t打开终端。
- 使有distrobox create -i archlinux -n myarch
- 使用distrobox enter myarch进入对应的发行版,如果顺利的话,将开始安装一些基础的软件,可以使用podman logs -f myarch查看实时的安装进度,这也是一个需要网络比较好的过程,如果没有使用代理的话,可能会耗费很长的时间。
2.2更换国内的镜像源
- sudo nano /etc/pacman.d/mirrorlist
- 将Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch这一行添加到这个文件的最顶端。 详情可以看清华源的说明 https://mirrors.tuna.tsinghua.edu.cn/help/archlinux/
- 之后则使用sudo pacman -Syyu进行更新即可。
2.3安装开发环境
- sudo pacman -S base-devel gdb这是包含gcc和调试的一些工具。
- 下载一个vscode的appimage版本,当然其实使用steamdeck的flathub中的code也是可以的,不过因为开源许可证的原因,那个版本不不包含微软的一些我觉得比较好用的插件。需要自己手动更改插件商店的源,总之就是比较麻烦。 https://github.com/valicm/VSCode-AppImage
- 进入vscode的存放目录chmod +x ./VSCode-x86_64.AppImage授予他执行的权限。
- 进入vscode里,打开插件页面,搜索并安装C语言的debug插件、remote的开发插件。
进行这一步的时候,我们还是不能进行开发,因为可以看到,remote开发的插件,他没有检测到我们系统里安装了docker,我们确实也没有安装docker,因为我们是用podman来代替docker。
所以我们需要一个方法,让vscode相信我们安装了docker。
2.4设置docker的执行脚本
2.4.1编辑文件
我们找到一个路径,在那里建立一个叫docker的文件,记住这个路径,一会要用到。
之后对这个文件进行编辑,写入以下内容。
#!/bin/bash exec podman "$@"
大体的意思就是,我们执行这个文件的时候,运行podman,并把后续的变量传给podman。
chmod +x docker给这个文件执行权限。
2.4.2添加环境变量
使用cd ~进入我们的home目录,然后nano .bashrc编辑一下我们的终端的环境变量,注意steamdeck默认使用bash终端,如果你使用的是其它终端,则需要去编辑其对应的文件。
在文件中添加这一行export PATH=$PATH:/home/deck/app/bin。这里的路径/home/deck/app/bin需要替换成你的路径。
2.5大功告成
去vscode里连接到容器里就可以进行开发了。 写个helloworld试试吧。