RPM打包java应用
将java应用打成rpm包,而且把jre也打进入。
# 0 基础知识请参考
https://developer.ibm.com/zh/technologies/linux/articles/l-lo-rpm-build-package/
https://blog.csdn.net/get_set/article/details/53453320
1
2
2
# 1 安装打包工具
yum install rpm-build
yum install rpmdevtools
1
2
2
# 2 创建类似工作空间一类的
rpmdev-setuptree
1
目录结构如下
# 3 编写spec文件(app.spec)
注意%files ,需要把打包的文件(jar包、shell脚本、jre文件)放到BUILDROOT下面的 目标平台(my_app-1.0.0-1.x86_64)/opt/my_app下面,比如在x86平台下,目录为 BUILDROOT/my_app-1.0.0-1.x86_64/opt/my_app
Name: my_app
Version: 1.0.0
Release: 1
Summary: my app
Group: Development/Tools/IDE
License: GPLv3+
URL: http://www.test.me/
Packager: me<me@xx.com>
%description
test
%prep
%pre
echo -e '\033[0;31;5m'
echo "------------- 欢迎使用 -------------"
echo "本系统由xxx公司开发。"
echo -e '\033[0m'
%post
#修改权限
chmod -R 755 /opt/my_app
#创建菜单(gnome桌面)
cp /opt/my_app/my_app.desktop /usr/share/applications
chmod -R 644 /usr/share/applications/my_app.desktop
#创建服务
cp /opt/my_app/my_app.service /usr/lib/systemd/system
chmod -R 754 /usr/lib/systemd/system/my_app.service
#开机自启
systemctl enable my_app.service
%preun
%postun
#卸载后执行的操作
systemctl disable my_app.service
rm -rf /usr/lib/systemd/system/my_app.service
rm -rf /usr/share/applications/my_app.desktop
rm -rf /opt/my_app
%files
/opt/my_app
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 4 相关脚本
- start.sh
#!/bin/bash
nohup /opt/my_app/jre/bin/java -jar /opt/my_app/test.jar&
1
2
2
- my_app.desktop
[Desktop Entry]
Name=开启my_app
GenericName=Interface Designer
Comment=my_app
Exec=/opt/my_app/start.sh
Icon=/opt/my_app/icons/app.png
MimeType=application/x-designer;
Terminal=false
Type=Application
Categories=Qt;Development;
X-Desktop-File-Install-Version=0.23
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
上次更新: 2024/01/07, 07:44:52