ref: cc3064e5052e35f8acf7525c31c382fa743c493e
dir: /go.ms/
.TL Installing Go on Plan 9 .SH amd64 .PP .P1 mkdir -p /sys/lib/go cd /sys/lib/go hget https://go.dev/dl/go1.23.0.plan9-amd64.tar.gz | tar xz mv go amd64-1.23.0 .P2 Add this to the beginning of your user's lib/profile: .P1 GOROOT=/sys/lib/go/amd64-1.23.0 bind -b $GOROOT/bin /bin .P2 After restarting, your Go installation should be commplete. .SH arm64 .PP Installing go on arm64 plan 9 is unsupported by the go language and team but a fork of golang is avaliable which supports it. You will need a non-arm64 system with go running on it to cross-compile for plan9 arm64. These instructions will assume you are on a linux machine with a Go toolchain already installed. On linux: .P1 git clone https://github.com/psilva261/go-arm64.plan9.git cd go-arm64.plan9/src export GOOS=plan9 export GOARCH=arm64 export GOROOT_FINAL=/sys/lib/go/arm64.plan9 bash ./make.bash cd ../bin mv plan9_arm64/* . cd ../.. tar xzvf go9.tgz go-arm64.plan9/**/* .P2 .PP Now you need to transfer the go9.tgz archive to your Plan 9 machine. You can do this with 9P. On Plan 9: .P1 mkdir share aux/listen1 -tv tcp!*!9999 /bin/exportfs -r share .P2 On Linux with Plan 9 from User Space where 9serverip is the IP address of your Plan 9 system: .P1 mkdir ~/share 9pfuse tcp!9serverip!9999 ~/share cp go9.tgz ~/share/ .P2 On Plan 9: .P1 mkdir -p /sys/lib/go cd /sys/lib/go tar xvf /usr/glenda/share/go9.tgz mv go-arm64.plan9 arm64.plan9 .P2 Add the following to your user's lib/profile; .P1 GOROOT=/sys/lib/go/arm64.plan9 bind -b $GOROOT/bin /bin .P2