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試試吧。