SylixOS Golang 快速入门
本文介绍 SylixOS 系统下 Golang 程序开发快速入门。
安装 SylixOS Go 开发环境
前置条件
推荐使用 Linux 环境 或 macOS 环境。请确保以下条件已满足:
- 已安装 Git 工具,用于编译 SylixOS Go 源码包时使用。
- 已安装 tar 工具,用于解压源码包。
- 确保网络连接正常,以便下载所需文件。
注意:如果你使用的是 Windows 系统,建议使用 WSL(Windows Subsystem for Linux)来提供 Linux 环境。
编译 SylixOS Go 源码
安装宿主机系统的 Go(以 ubuntu 22.04 LTS 系统为例):
sudo snap install go --classic
下载 SylixOS Go 源码包:
或通过以下命令下载:
wget https://github.com/go-sylixos/go/archive/refs/tags/go1.23.4-sylixos.tar.gz
解压下载的源码包:
tar -xzf go-go1.23.4-sylixos.tar.gz cd go-go1.23.4-sylixos
编译 SylixOS Go 源码:
cd src ./make.bash
你应该会看到类似如下的输出:
Building Go cmd/dist using /snap/go/10748. (go1.23.4 linux/amd64) Building Go toolchain1 using /snap/go/10748. Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1. Building Go toolchain2 using go_bootstrap and Go toolchain1. Building Go toolchain3 using go_bootstrap and Go toolchain2. Building packages and commands for linux/amd64. --- Installed Go for linux/amd64 in /home/user/work/go/go-go1.23.4-sylixos Installed commands in /home/user/work/go/go-go1.23.4-sylixos/bin *** You need to add /home/user/work/go/go-go1.23.4-sylixos/bin to your PATH.
配置环境变量:
将编译后的 Go 安装目录添加到
PATH
环境变量中。export PATH=/home/user/work/go/go-go1.23.4-sylixos/bin:$PATH
建议修改
~/.bashrc
文件,在~/.bashrc
文件的末尾添加以下内容:export PATH=/home/user/work/go/go-go1.23.4-sylixos/bin:$PATH
然后执行
source ~/.bashrc
使环境变量生效。验证安装:
go version
你应该会看到类似如下的输出:
go version go1.23.4 linux/amd64
配置 SylixOS Go 开发环境
创建 Go 工作区
Go 语言有一个独特的工作区结构,所有的 Go 代码都应该放在一个工作区内。工作区是一个包含三个目录的目录:src
、pkg
和 bin
。
src
目录包含你的 Go 源代码。pkg
目录包含编译后的包对象。bin
目录包含编译后的可执行文件。
例如,你的工作区结构可能如下所示:
/home/user/go/
├── bin/
├── pkg/
└── src/
在使用 SylixOS Go 开发程序之前,首先需要创建工作区和设置工作区路径。可以通过以下步骤完成:
创建一个工作区,例如
~/go
:mkdir ~/go mkdir ~/go/bin mkdir ~/go/pkg mkdir ~/go/src
设置
GOPATH
环境变量指向该目录:go env -w GOPATH="/home/user/go"
注意:设置
GOPATH
环境变量不能使用 shell 变量~
,故上面使用的是绝对路程,应用根据实际目录进行修改。
配置 GOPROXY
为了加速依赖包的下载,可以配置 GOPROXY
。例如,可以使用 goproxy.cn
:
go env -w GOPROXY="https://goproxy.cn,direct"
清理 mod 缓存
在开发过程中,可能需要清理模块缓存。可以使用以下命令清理 mod
缓存:
go clean -modcache
SylixOS Go helloworld 程序开发
在 GOPATH/src 中创建一个目录作为项目目录,例如
hello
:cd $(go env GOPATH)/src mkdir hello
进入
hello
目录,初始化 go 项目cd hello go mod init
在
hello
目录下,创建一个名为hello.go
的文件,并添加以下内容:package main import "fmt" func main() { fmt.Println("Hello, World!") }
交叉编译
在 hello
目录下,执行以下命令编译程序:
GOOS=sylixos GOARCH=arm64 go build hello.go
编译完成后,会在 hello
目录生成一个名为 hello
的可执行文件。
部署到 SylixOS 目标机器并运行
使用 FTP 客户端工具部署文件到 SylixOS 目标机器:
ftp 192.168.128.5
输入 SylixOS 目标机器的用户名和密码:
Connected to 192.168.128.5. 220 SylixOS FTP server ready.SylixOS kernel version: 3.6.5 Code name: Age of Discovery Name (192.168.128.5:user): root 331 Password required. Password:
上传文件:
ftp> cd /apps ftp> binary ftp> put hello
传输成功将会看到类似如下的输出:
local: hello remote: hello 227 Entering passive mode (192,168,128,5,188,232). 150 Opening BINARY mode data connection. 100% |******************************************************************************************************| 2213 KiB 7.18 MiB/s 00:00 ETA 226 Transfer complete. 2266520 bytes sent in 00:00 (6.71 MiB/s)
输入
quit
退出 FTP 客户端。在 SylixOS 目标机器上运行程序:
通过 telnet 命令连接目标机器:
telnet 192.168.128.5
输入 SylixOS 目标机器的用户名和密码:
Trying 192.168.128.5... Connected to 192.168.128.5. Escape character is '^]'. login: root password:
登录成功后,在输入
cd /apps
切换到/apps
目录,并执行./hello
运行程序:[root@sylixos:/root]# cd /apps [root@sylixos:/apps]# ./hello Hello, World!