linux打rpm包
linux打rpm包
rpm 准备工作
创建一个.spec文件与.service文件
- service文件
本文服务名以test为例
[Unit]
Description=test
After=mariadb.service
[Service]
Type=simple
ExecStart=/usr/bin/java -jar /usr/local/service服务名/jar包名.jar -server
Restart=always
RestartSec=5
StartLimitInterval=0
[Install]
WantedBy=multi-user.target
如果是加密jar 需要更改 ExecStart=/usr/bin/java -javaagent:/usr/local/service服务名/xxxx.jar -jar /usr/local/service服务名/jar包.jar -server
路径根据自己java 安装路径确定.
普通jar包用这个就可
- spec文件
Name: test
Version: 1.1
Release: 0
Summary: test
Group: System Environment/Daemons
License: GPL
Vendor: MySelf.com
%description
%pre
%preun
systemctl disable test
%postun
%clean
%files
%defattr (-,root,root,0777)
/usr/local/test/xxx.jar
/lib/systemd/system/test.service
%post
systemctl enable test
照着spec文件先建好目录在BUILDROOT下,之后将jar包以及service分别放入 对应目录后。
BUILDROOT下首先要有一个 xxx.aarch64 目录,这个根据spec文件 来创建
按照以上模板,需要创建的目录为以下两个 分别用来存放jar文件与service文件
- ~/rpmbuild/BUILDROOT/test.aarch64/usr/local/test/xxx.jar
- ~/rpmbuild/BUILDROOT/test.aarch64/lib/systemd/system/test.service
打包
文件都放在指定目录后需要在 SPECS目录下运行.spec文件
命令:rpmbuild -bb xxx.spec
此时会在/rpmbuild/RPMS/aarch64 下生成指定的rpm文件
需要cd到当前目录 下运行rpm文件
命令:cd /rpmbuild/RPMS/aarch64
注意点:aarch64 文件夹可能与用的架构有关。也可能是其他名字
启动
命令:rpm -ivh xxx.rpm --nodeps
如果有依赖安装失败,可以强制安装。
命令:sudo rpm -ivh xxx.rpm --force --nodeps
安装成功后,会在/usr/local/test 目录下生成打包之前的[jar包名.jar],在/lib/systemd/system目录生成名为[test.service]的服务文件,启动该服务:
命令:systemctl start test.service
启动之后可以查看服务状态,如下:
service test status
xxx 为服务名
查看
如需查看已安装rpm包:
命令:rpm -qa | grep xxx
卸载
如需卸载或重装rpm包,需执行(后者为rpm包名):
命令:rpm -e xxx
查看服务 xxx=服务名 不带 .service
命令:service xxxx status
开启服务
命令:service xxxx start
关闭服务
命令:service xxxx stop
本文来自博客园,作者:xiaolifc,转载请注明原文链接:https://www.cnblogs.com/xiaolibiji/p/16963796.html
浙公网安备 33010602011771号