07 极物科技 jetlinks-ubuntu20-rk3588-部署 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 12Crk3588 为8核心cpu,配置12C可以加快编译速度mvn 为3.6版本rootzhongrui:/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 rootzhongrui:/work/jetlinks/jetlinks-community-me#配置数据库目前只改了这几个地方其他按照默认即可什么都不改3. 安装postgresql对应版本为12.22rootzhongrui:/work/jetlinks/jetlinks-community-me# psql --version psql (PostgreSQL) 12.22 (Ubuntu 12.22-0ubuntu0.20.04.4) rootzhongrui:/work/jetlinks/jetlinks-community-me#创建账号及数据库# 1. 切换到postgres系统用户默认无密码su- postgres# 2. 进入psql命令行psql CREATE DATABASE jetlinks WITH ENCODINGUTF8;CREATEUSERjetlinks WITH PASSWORDJetLinks123456;GRANT ALL PRIVILEGES ON DATABASE jetlinks TO jetlinks;\q查看账号及数据库rootzhongrui:/work/jetlinks/jetlinks-community-me# su - postgres postgreszhongrui:~$ 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 | | | | | postgresCTc/postgres | | | | | jetlinksCTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | c/postgres | | | | | postgresCTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | c/postgres | | | | | postgresCTc/postgres thingsboard | postgres | UTF8 | C.UTF-8 | C.UTF-8 | Tc/postgres | | | | | postgresCTc/postgres (5 rows) postgres#4. 安装 TimescaleDB 插件安装 TimescaleDB 插件相对比较复杂试了使用apt安装死活安装不上最后使用源码编译编译的过程大家也可以参考这篇文章https://blog.csdn.net/junxuezheng/article/details/103637845对应版本2.11.0其他版本没试过也不知道行不行根据postgresql为12版本确认需要使用2.11.0,编译之后没问题就没折腾其他的了能用就行编译./bootstrapcd./buildmakemakeinstall# 安装修改/etc/postgresql/12/main/postgresql.conf文件启动该扩展,修改之后重启下 postgresql。# default configuration for text search default_text_search_config pg_catalog.english配置数据库很重要,说明如果扩展已经存在IF NOT EXISTS会避免重复创建。扩展只能在单个数据库中启用因此需要针对每个需要使用 TimescaleDB 的数据库执行此命令。配置之后也要重启下数据库\c jetlinks CREATE EXTENSION IF NOT EXISTS timescaledb;rootzhongrui:/work/jetlinks/timescaledb/build# su - postgres postgreszhongrui:~$ 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 版本rootzhongrui:/work/jetlinks/timescaledb/build# java --version openjdk 17.0.15 2025-04-15 OpenJDK Runtime Environment (build 17.0.156-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 17.0.156-Ubuntu-0ubuntu120.04, mixed mode, sharing) rootzhongrui:/work/jetlinks/timescaledb/build#运行jar 包java--add-opens java.base/java.langALL-UNNAMED --add-opens java.base/java.utilALL-UNNAMED --add-opens java.base/java.mathALL-UNNAMED --add-opens java.base/java.util.concurrentALL-UNNAMED --add-opens java.base/java.netALL-UNNAMED --add-opens java.base/java.textALL-UNNAMED --add-opens java.base/java.ioALL-UNNAMED --add-opens java.base/java.nioALL-UNNAMED --add-opens java.base/sun.netALL-UNNAMED --add-opens java.base/sun.net.www.protocolALL-UNNAMED --add-opens java.base/sun.nio.chALL-UNNAMED --add-opens java.base/sun.util.calendarALL-UNNAMED --add-opens java.base/sun.reflectALL-UNNAMED --add-opens java.base/jdk.internal.reflectALL-UNNAMED-jartarget/application.jar运行web默认账号及密码admin JetLinks.C0mmVn1ty6.总结环境核心适配针对RK3588ARM64架构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加速编译所有核心组件配置完成后均需重启数据库/服务确保配置生效。