1. 前言
本文聚焦于在搭载 RK3588 芯片的 Ubuntu 20.04 系统环境下,完成 JetLinks 社区版(2.10.0 版本)的部署落地。JetLinks 作为面向物联网领域的开源平台,其稳定运行依赖 PostgreSQL 数据库及 TimescaleDB 时序数据库插件的支撑;而 RK3588 作为 ARM 架构的 8 核高性能处理器,在编译、环境适配层面与 x86 架构存在差异,因此本文将详细梳理从环境配置、数据库搭建到插件编译、平台启动的全流程,解决 ARM 架构下 PostgreSQL 12.22 安装、TimescaleDB 2.11.0 源码编译适配等核心问题,为同类 ARM 硬件环境下部署 JetLinks 提供可落地的实操指南。
2. 安装 jetlinks-community
-
对应版本
2.10.0

-
编译
mvn clean install -T 12C-
rk3588 为8核心cpu,配置12C可以加快编译速度
-
mvn 为3.6版本
textroot@zhongrui:/work/jetlinks/jetlinks-community-me# mvn -v Apache Maven 3.6.3 Maven home: /usr/share/maven Java version: 17.0.15, vendor: Ubuntu, runtime: /usr/lib/jvm/java-17-openjdk-arm64 Default locale: en_US, platform encoding: ANSI_X3.4-1968 OS name: "linux", version: "5.10.160", arch: "aarch64", family: "unix" root@zhongrui:/work/jetlinks/jetlinks-community-me#
-
-
配置数据库
目前只改了这几个地方,其他按照默认即可,什么都不改

3. 安装 postgresql
-
对应版本为
12.22textroot@zhongrui:/work/jetlinks/jetlinks-community-me# psql --version psql (PostgreSQL) 12.22 (Ubuntu 12.22-0ubuntu0.20.04.4) root@zhongrui:/work/jetlinks/jetlinks-community-me# -
创建账号及数据库
shell# 1. 切换到postgres系统用户(默认无密码) su - postgres # 2. 进入psql命令行 psql CREATE DATABASE jetlinks WITH ENCODING 'UTF8'; CREATE USER jetlinks WITH PASSWORD 'JetLinks@123456'; GRANT ALL PRIVILEGES ON DATABASE jetlinks TO jetlinks; \q
-
查看账号及数据库
textroot@zhongrui:/work/jetlinks/jetlinks-community-me# su - postgres postgres@zhongrui:~$ psql psql (12.22 (Ubuntu 12.22-0ubuntu0.20.04.4)) Type "help" for help. postgres=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- jetlinks | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- jetlinks | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | jetlinks=CTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres thingsboard | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres (5 rows) postgres=#
4. 安装 TimescaleDB 插件
安装 TimescaleDB 插件相对比较复杂,试了使用apt安装,死活安装不上,最后使用源码编译,编译的过程,大家也可以参考这篇文章https://blog.csdn.net/junxuezheng/article/details/103637845
-
对应版本
2.11.0其他版本没试过也不知道行不行,根据postgresql为12版本,确认需要使用2.11.0,编译之后没问题,就没折腾其他的了,能用就行

-
编译
shell./bootstrap cd ./build && make make install # 安装
-
修改
/etc/postgresql/12/main/postgresql.conf文件启动该扩展,修改之后重启下 postgresql。
text# default configuration for text search default_text_search_config = 'pg_catalog.english'
-
配置数据库
很重要,说明:- 如果扩展已经存在,
IF NOT EXISTS会避免重复创建。 - 扩展只能在单个数据库中启用,因此需要针对每个需要使用 TimescaleDB 的数据库执行此命令。
- 配置之后也要重启下数据库
shell\c jetlinks CREATE EXTENSION IF NOT EXISTS timescaledb;textroot@zhongrui:/work/jetlinks/timescaledb/build# su - postgres postgres@zhongrui:~$ psql psql (12.22 (Ubuntu 12.22-0ubuntu0.20.04.4)) Type "help" for help. postgres=# \c jetlinks You are now connected to database "jetlinks" as user "postgres". jetlinks=# CREATE EXTENSION IF NOT EXISTS timescaledb; NOTICE: extension "timescaledb" already exists, skipping CREATE EXTENSION jetlinks=# SELECT extname, extversion jetlinks-# FROM pg_extension jetlinks-# WHERE extname = 'timescaledb'; extname | extversion -------------+------------ timescaledb | 2.11.0 (1 row) jetlinks=#
- 如果扩展已经存在,
5. 验证
执行命令,按照官方是要求java 17的,但是不知道为什么实际使用中会有很多问题,因此加了很多选项才跑起来,不过能用就行,先用再说
-
java 版本
textroot@zhongrui:/work/jetlinks/timescaledb/build# java --version openjdk 17.0.15 2025-04-15 OpenJDK Runtime Environment (build 17.0.15+6-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 17.0.15+6-Ubuntu-0ubuntu120.04, mixed mode, sharing) root@zhongrui:/work/jetlinks/timescaledb/build# -
运行jar 包
shelljava --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.math=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.text=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/sun.net=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/sun.util.calendar=ALL-UNNAMED --add-opens java.base/sun.reflect=ALL-UNNAMED --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED -jar target/application.jar
-
运行web
默认账号及密码
textadmin JetLinks.C0mmVn1ty
6.总结
- 环境核心适配:针对RK3588(ARM64架构)+Ubuntu 20.04环境,确定了JetLinks 2.10.0、PostgreSQL 12.22、TimescaleDB 2.11.0的版本组合,其中TimescaleDB因apt安装失败,采用源码编译方式完成适配。
- 关键操作步骤:完成PostgreSQL数据库/用户创建、TimescaleDB插件编译安装与启用后,需通过添加Java 17的开放模块参数,解决JetLinks启动兼容性问题,最终可通过默认账号密码访问Web端验证部署成功。
- 性能与兼容性优化 :编译JetLinks时利用RK3588的8核特性配置
-T 12C加速编译,所有核心组件配置完成后均需重启数据库/服务,确保配置生效。