靛尊 发表于 前天 10:15

树莓派4B 基于 ubuntu24 移植 Ruoyi

树莓派换源& 安装配置docker (ubuntu24)

<ol>从树莓派官网下载工具"树莓派镜像烧录器"
从ubuntu官网下载Ubuntu 24.04.2 LTS: https://ubuntu.com/download/raspberry-pi
硬件要求:最少4GB ram 和 16GB 磁盘
下载完整后,得到:ubuntu-24.04.2-preinstalled-desktop-arm64+raspi.img.xz
需要解压成:ubuntu-24.04.2-preinstalled-desktop-arm64+raspi.img
使用树莓派镜像烧录器烧录镜像
CHOOSE DEVICE - 选择树莓派4 (根据实际型号来)
操作系统 -> Use custom -> ubuntu-24.04.2-preinstalled-desktop-arm64+raspi.img
选择SD卡 -> 实际的sd卡
点击 NEXT
然后可以编辑设置,实现预配置(用户名,wifi, 国家, 键盘, 时区, 开启ssh服务等)(这一步好像没啥用,启动系统后还要再设一遍)
格式化并写入sd卡
将 SD 卡插入到树莓派,启动系统,配置语言、时区、用户、密码、时区等,安装系统
ubuntu24 系统比较吃资源,后续可以选择更低版本的系统,跑个火狐浏览器就可以把cpu全占满。并且系统太大了,内存释放也比较慢。这样看来,还是debian比较好。
打开火狐浏览器,下载vnc server https://www.realvnc.com/en/connect/download/?lai_vid=gxl0mpADGIy9x&lai_sr=5-9&lai_sl=l 下载版本选择树莓派版本+arm64,下载完毕后,安装即可。安装完毕,如果要求登录,选择跳过,即可实现登录
安装基础的工具
sudo apt update
# 网络工具
sudo apt install net-tools
# ssh
sudo apt install openssl-server
# iftop
sudo apt install iftop
# vim
sudo apt install vim
# 自动补全(比较大,341MB,选择安装)
sudo apt install auto-complete-el
# 安装完毕后编辑 /etc/bash.bashrc
# 将这一段解开注释
# sudo hint
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
    case " $(groups) " in *\ admin\ *|*\ sudo\ *)
    if [ -x /usr/bin/sudo ]; then
      cat <<-EOF
      To run a command as administrator (user "root"), use "sudo <command>".
      See "man sudo_root" for details.

      EOF
    fi
    esac
fi


sudo apt install python3-pip
# 配置python3 pip 源 (跳过此步骤,ubuntu24 安装python依赖库改成了 sudo apt install python3-库名 的形式)
# sudo su
# cd ~
# mkdir .pip
# cd .pip
# touch pip.conf
# pip.conf 内容如下
#
# index-url = https://pypi.tuna.tsinghua.edu.cn/simple
#
# trusted-host=pypi.tuna.tsinghua.edu.cn
[*]拉取项目
cd /etc/apt/sources.list.d
sudo touch mysource.sources
sudo vim mysource.sources
# 内容如下
# 清华源
Types: deb
URIs: http://mirrors.tuna.tsinghua.edu.cn/ubuntu/
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

# 阿里源
Types: deb
URIs: http://mirrors.aliyun.com/ubuntu/
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
[*]使用idea打开项目(建议用新版本的idea,我用的2023.1, 之前用2021打开会有点问题, 当然,如果习惯eclipse的话, 官网推荐用eclipse打开)
必要配置

[*]修改数据库连接,编辑resources目录下的application-druid.yml
sudo apt install docker.io
# 查看 docker 版本
docker -v
# Docker version 27.5.1, build 27.5.1-0ubuntu3~24.04.2
apt install docker-compose
docker-compose version
# docker-py version: 5.0.3
# CPython version: 3.12.3
# OpenSSL version: OpenSSL 3.0.13 30 Jan 2024

# 更换Docker镜像源
# 切换为 root 用户,否则会报错无权限
sudo -i
cat > /etc/docker/daemon.json <<EOF
{
    "log-driver": "json-file",
    "log-opts": {
      "max-size": "20m",
      "max-file": "3"
    },
    "ipv6": true,
    "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true,
    "registry-mirrors": [
      "https://registry.hub.docker.com",
      "http://hub-mirror.c.163.com",
      "https://mirror.baidubce.com",
      "https://docker.mirrors.sjtug.sjtu.edu.cn",
      "https://docker.nju.edu.cn",
      "https://docker.m.daocloud.io",
      "https://dockerhub.icu",
      "https://docker.anyhub.us.kg",
      "https://docker.1panel.live"
    ]
}
EOF

# 重启一下daemon和docker服务
sudo systemctl daemon-reload#重启daemon进程
sudo systemctl restart docker.service#重启docker

# 查看docker配置信息
docker info

# 尝试拉取镜像
docker pull nginx:latest
# docker pull docker.1panel.live/docker.io/openresty/openresty
docker pull redis:latest
# docker pull mysql:latest # 9.0 版本,太新了
docker pull docker.xuanyuan.me/library/mysql:8.0

# 开始准备用 node 编译下vue,后来发现vue不需要交叉编译,直接在windows上编译好了放到nginx就可以
# docker pull node:latest # 24
# docker pull node:16

[*]修改服务器配置,编辑resources目录下的application.yml
# 方式一,直接安装
sudo apt install openjdk-8-jdk

# 方式二,使用java安装包自行安装 (arm64的java8安装包)
sudo mkdir -p /usr/local/java
sudo tar -zxvf jdk-8u281-linux-aarch64-serial.tar.gz -C /usr/local/java
# 编辑 /etc/profile, 添加如下配置
export JAVA_HOME=/usr/local/java/jdk1.8.0_281
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 验证
source /etc/profile
java -version
# java version "1.8.0_281"
# Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
# Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)

# 注意:如果想要用root执行java,需要用指令 su -i 切换root,不可以用 sudo su (只会切换用户,但不加载该用户的登录环境/etc/profile) (这里后续可以改进一下)修改 ruoyi-admin的配置文件中的数据库用户名和密码,修改文件路径:/home/ruoyi/uploadPath
打包,打包后会在 RuoYi-Vue\ruoyi-admin\target 生成 ruoyi-admin.jar,这就是主程序包

树莓派环境,后端部署

# 创建目录
#/opt/mysql/8.0/
cd /opt
mkdir mysql
cd mysql
mkdir 8.0
cd 8.0
mkdir conf data log

# 配置my.conf
cd conf
touch my.conf官方给的启动脚本ry.sh有点问题(主要是windows异常行结束符 & 修改执行的sh为 bash)
我改了一下:ry.sh,主要是开头的 #!/bin/sh 改成了 #!/bin/bash
此外,如果报错:-bash: ./ry.sh: 无法执行:找不到需要的文件,大概率就是脚本在windows编辑过,需要在树莓派linux中使用vim打开,然后输入:set ff=unix ,之后保存退出再试就可以了。

pid-file      = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# Custom config should go here
!includedir /etc/mysql/conf.d/

default_authentication_plugin= mysql_native_passwordcd /opt/mysql/8.0
touch docker-compose.yml前端编译

前端是静态资源库,不需要考虑交叉编译的事情,所以目前方案就是windows打包,然后树莓派nginx部署
进入项目的RuoYi-Vue\ruoyi-ui目录
开发
version: '3.8'# 可以根据需要调整版本

services:
mysql:
    container_name: mysql8
    image: docker.xuanyuan.me/library/mysql:8.0
    restart: always# 可以选择使用 always 或 unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
      - "3306:3306"
    volumes:
      - /opt/mysql/8.0/data:/var/lib/mysql:rw
      - /opt/mysql/8.0/log:/var/log/mysql:rw
      - /opt/mysql/8.0/conf/my.cnf:/etc/mysql/my.cnf:rw
      - /etc/localtime:/etc/localtime:ro发布
# 后台启动mysql8容器(调试的话可以去掉-d,另外,停止并删除容器使用 down)
docker-compose up -d
# 进入mysql8
docker exec -it mysql8 bash
# 访问mysql服务(默认密码:root)
mysql -uroot -p
# 配置允许远程访问(下面的密码填充自己的密码,比如 123456)
alter user 'root'@'%' identified with mysql_native_password by '密码';
FLUSH PRIVILEGES;
exit

# 退出容器
exit树莓派部署
mkdir -p /opt/redis
cd /opt/redis
mkdir /data
touch docker-compose.ymlruoyi.conf
version: '3.8'# 可以根据需要调整版本
services:
redis:
    container_name: redis_container
    image: redis:latest
    restart: always# 可以选择使用 always 或 unless-stopped
    network_mode: "host"# 使用主机网络
    volumes:
      - /opt/redis/data:/data
      - /etc/localtime:/etc/localtime:rodocker-compose.yml
JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 12git clone https://gitee.com/y_project/RuoYi-Vue.git浏览器访问http://树莓派ip,即可访问若依界面。
后续实际运行发现,页面运行一段时间,就跳出来登不进去了,登录一直报错。在windows本地运行没问题,估计还是环境有点问题。仅当做一次探索和记录吧,后续会想办法优化。
参考文档

. 无法拉取 Docker 镜像?树莓派4B 安装Docker并配置Docker镜像源分享
. docker设置国内镜像源
. 树莓派4B学习笔记四--基于Docker搭建Nginx,在Nginx服务器上部署Vue项目
. 第四章:ubuntu 24.04配置清华源
. Ubuntu24.04换源方法(新版源更换方式)

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 树莓派4B 基于 ubuntu24 移植 Ruoyi