ARM 架构 Ubuntu(RK3588/aarch64)go开发环境安装手册

ARM 架构 Ubuntu(RK3588/aarch64)go开发环境安装手册

适用平台:RK3588 开发板,Ubuntu 22.04 aarch64(arm64)

包含:nvm + Node.js、pnpm、Go 语言、Redis 完整离线/在线安装、环境配置、验证、常见坑。

博客风格,可直接复制到markdown博客。
摘要:本文面向 RK3688(aarch64/ARM64)开发板,系统为 Ubuntu 22.04,完整讲解开发环境的搭建流程。内容涵盖:通过 nvm 安装与管理多版本 Node.js、安装 pnpm 包管理器、以离线 tar 包方式安装 Go 语言(linux-arm64),以及通过 apt 快速安装并配置 Redis(含密码、内存限制、开机自启与防火墙放行)。文末附常见问题汇总与一键环境自检脚本,适合物联网后端及 Go + Redis + Node 全栈开发环境搭建。


前置说明

  1. 架构确认,在板子终端执行:
bash 复制代码
uname -m

输出 aarch64 代表 ARM64,本文档全部命令适配该架构。

  1. 推荐操作用户:普通非 root 用户,部分命令需要 sudo 提权。

  2. 系统:Ubuntu 22.04。

  3. 所有环境变量写入 ~/.bashrc,新开终端或 source 生效。


一、安装 nvm(Node版本管理器,ARM原生支持)

nvm用来管理多版本Node.js,自动适配arm64,不要用apt直接装node,版本老旧。

1. 在线安装 nvm

bash 复制代码
curl -o- [https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh](https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh) | bash

如果raw.githubusercontent访问超时,可以用国内镜像脚本:

bash 复制代码
curl -o- [https://gitee.com/mirrors/nvm/raw/v0.40.1/install.sh](https://gitee.com/mirrors/nvm/raw/v0.40.1/install.sh) | bash

2. 加载环境变量

bash 复制代码
source ~/.bashrc

3. 验证 nvm

bash 复制代码
nvm --version

4. 安装 Node.js(LTS 长期支持版)

bash 复制代码
# 查看可用版本
nvm list-remote
# 安装LTS版本
nvm install 22
# 设置默认node版本
nvm use 22
nvm alias default 22

5. 验证 Node & npm

bash 复制代码
node -v
npm -v

离线安装提示:

先在能联网的 ARM 机器用 nvm install 下载对应 arm64 Node 包,再把.nvm目录整个传到开发板。


二、安装 pnpm

pnpm 包管理器,比 npm 更快,arm64 架构支持良好。

方式1:官方一键脚本(推荐)

bash 复制代码
curl -fsSL [https://get.pnpm.io/install.sh](https://get.pnpm.io/install.sh) | sh -

方式2:npm 安装(备选)

bash 复制代码
npm install -g pnpm

加载环境变量并验证

bash 复制代码
source ~/.bashrc
pnpm -v

国内加速(可选,pnpm下载包加速)

bash 复制代码
pnpm config set registry [https://registry.npmmirror.com](https://registry.npmmirror.com)

三、安装 Go(Golang,离线 tar 包方式,本次 RK3688 使用 linux-arm64)

使用官网tar包安装,不使用apt的golang包(版本低)。

1. 准备tar包

下载包:go1.25.0.linux-arm64.tar.gz

⚠️ 必须是 linux-arm64,amd64(x86)包会报 Exec format error

2. 清理旧版本

bash 复制代码
sudo rm -rf /usr/local/go
sudo apt remove -y golang golang-go

3. 解压到 /usr/local

将 tar 包放到当前目录执行,替换为你实际文件路径

bash 复制代码
sudo tar -C /usr/local -xzf go1.25.0.linux-arm64.tar.gz

4. 配置 Go 环境变量

bash 复制代码
nano ~/.bashrc

文件末尾追加:

bash 复制代码
# Golang Env
export GOROOT=/usr/local/go
export GOPATH=$HOME/gowork
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# Go 国内代理
export GOPROXY=[https://goproxy.cn](https://goproxy.cn),direct
export GOSUMDB=off

Ctrl+O 保存,Ctrl+X 退出。

5. 生效并验证

bash 复制代码
source ~/.bashrc
go version
go env

✅ 正常输出示例:go version go1.25.0 linux/arm64

测试 Hello 程序

bash 复制代码
echo 'package main;import "fmt";func main(){fmt.Println("Go ARM install success!")}' > hello.go
go run hello.go

四、安装 Redis(apt快速安装,arm64原生包)

两种方案:apt快速安装(推荐) / 源码编译(自定义版本)

方案A:apt安装(推荐,RK3688直接用)

bash 复制代码
sudo apt update
sudo apt install redis-server redis-tools -y
启停与开机自启
bash 复制代码
# 查看状态
sudo systemctl status redis-server
# 开机自启(默认已启用)
sudo systemctl enable redis-server
# 启停
sudo systemctl start redis-server
sudo systemctl stop redis-server
sudo systemctl restart redis-server
修改核心配置 /etc/redis/redis.conf
bash 复制代码
sudo nano /etc/redis/redis.conf
  1. 允许外部 IP 访问
    注释默认 bind,允许所有地址访问

    bind 127.0.0.1 ::1

    bind 0.0.0.0

  2. 设置密码(安全必选)
    找到 # requirepass foobared,取消注释,修改密码

    requirepass Redis@2026

  3. 开发板内存限制(RK 小内存板子建议配置)

    maxmemory 256mb
    maxmemory-policy allkeys-lru

保存后重启 Redis

bash 复制代码
sudo systemctl restart redis-server
测试连接
bash 复制代码
# 本地连接
redis-cli
AUTH Redis@2026
PING

返回 PONG 成功。

防火墙放行(如需PC远程访问)
bash 复制代码
sudo ufw allow 6379/tcp

方案 B:源码编译(需要更高 Redis 版本)

bash 复制代码
# 安装编译依赖
sudo apt install build-essential tcl -y
wget [https://download.redis.io/redis-stable.tar.gz](https://download.redis.io/redis-stable.tar.gz)
tar -zxvf redis-stable.tar.gz
cd redis-stable
make -j$(nproc)
sudo make install

源码安装需要手动创建 systemd 服务和配置文件。

Go 简单连接 Redis 测试代码

go 复制代码
package main

import (
	"context"
	"fmt"
	"github.com/redis/go-redis/v9"
)

func main() {
	rdb := redis.NewClient(&redis.Options{
		Addr:     "127.0.0.1:6379",
		Password: "Redis@2026",
		DB:       0,
	})
	ctx := context.Background()
	res, err := rdb.Ping(ctx).Result()
	fmt.Println("Redis ping result:", res, "err:", err)
}

go mod 初始化:go mod init redis-demogo get github.com/redis/go-redis/v9


📌 通用常见问题汇总1. Exec format error

下载的程序架构不对!ARM64 必须选 arm64/aarch64 包,不能用 amd64 (x86)。uname -m 确认架构。。

  1. command not found

环境变量没生效,执行 source ~/.bashrc,或者新开终端。。

  1. 外网无法访问 Redis

检查 3 点:① bind 配置;② ufw 防火墙放行 6379;③ 开发板网络是否互通。。

  1. go mod 拉取代码超时

确认 GOPROXY 已经设置 goproxy.cn。。

  1. nvm 安装失败,raw.githubusercontent 无法访问

使用 gitee 镜像脚本安装 nvm。。

  1. 开发板内存低,Redis被OOM杀死

在redis.conf设置maxmemory,限制redis占用内存。


📋 环境快速自检脚可以复制保存为 env-check.sh,执行一键检查所有环境。环境

bash 复制代码
#!/bin/bash
echo "===== Arch Check ====="
uname -m
echo "===== nvm & node ====="
nvm --version
node -v
pnpm -v
echo "===== Go ====="
go version
echo "===== Redis ====="
redis-cli --version
sudo systemctl status redis-server

赋予权限:chmod +x env-check.sh,运行:./env-check.sh


结尾备> 本文档适用于 ARM64 (aarch64) Ubuntu 22.04 开发板,RK3688、RK3588 等瑞芯微板子通用。用> 适合物联网后端、Go + Redis + Node 全栈开发环境搭建。建。

相关推荐
亲亲小宝宝鸭1 小时前
富文本编辑文章到文章展示在页面上,没有想象中那么简单
架构·nuxt.js
名字还没想好☜1 小时前
Go 实现指数退避重试:context 取消、抖动 jitter 与什么时候别重试
后端·golang·go
青山木1 小时前
RocketMQ 入门到原理(六):可靠性全景
java·后端·中间件·架构·rocketmq
青山木1 小时前
RocketMQ 入门到原理(五):特殊消息类型
java·后端·中间件·架构·rocketmq
她的男孩1 小时前
数据库改了配置,说好的 30 秒自动刷新根本没跑:那条 @Scheduled 是注释状态
java·后端·架构
Dawson Zhu2 小时前
大模型 Agent 记忆系统五大技术路线解析与工程选型指南
人工智能·语言模型·架构·aigc·agi
虚无的纽扣2 小时前
【Linux】将进程知识与基础IO融会贯通——简单自定义Shell的实现
linux·ubuntu
Dawson Zhu2 小时前
Palantir Foundry 架构深度解析:数据、本体与AI的三层协同
人工智能·语言模型·架构·aigc·agi
Dawson Zhu2 小时前
Agent 响应延迟优化:从推理引擎到系统架构的四层优化模型
人工智能·语言模型·架构·aigc·agi