RPM安装包制作

简介: RPM安装包制作

RPM 包制作

参考连接:https://blog.csdn.net/monarch91/article/details/121377301

工作中有时候我们会用到使用RPM格式的软件来安装,毕竟有的服务器只能使用该格式,所以本片文章就讲解一下如何把本地tomcat部署的war包改为rpm包格式的去部署,大概步骤如下

首先需要服务器安装RPM包构建工具,离线网络环境的自行百度下离线yum源安装

前提,Linux普通用户:zuiyu,一切以该用户登陆为主;root为超级用户

安装工具

yum install rpm-build -y

1、普通用户创建文件夹 ,在/home/zuiyu文件夹下新增RPM构建所需要的文件夹

mkdir -pv ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,BUILDROOT}

2、创建放软件包的文件夹 /home/zuiyu/test,该文件夹主要是缓存我们要部署的app包,暂存使用

在物理机上传我们的app.war包到该文件夹下,并在该文件夹下新建子文件夹,文件夹名称为 app-1.0

3、创建解压包位置,解压包路径格式为软件包名称加上版本号,子文件夹为要部署的tomcat路径

此处为app-1.0,目的是实现RPM解压之后该app.war 解压到 /opt/tomcat/webapps 下,达到部署tomcat 的目的

mkdir -p /home/zuiyu/test/app-1.0/opt/tomcat/webapps

创建完成之后的完整路径如下

/home/zuiyu/test/app-1.0/opt/tomcat/webapps

软件包名称app.war+解压路径/opt/tomcat/webapps

4、移动app.war包 /home/zuiyu/test/app-1.0/opt/tomcat/webapps/app.war

cd /home/zuiyu/test
mv app.war /home/zuiyu/test/app-1.0/opt/tomcat/webapps/app.war

5、制作压缩包app-1.0.tar.gz/home/zuiyu/test 文件夹执行

tar -zcf app-1.0.tar.gz app-1.0

6、拷贝 压缩包到RPM制作位置 /home/zuiyu/rpmbuild/SOURCES/

mv app-1.0.tar.gz /home/zuiyu/rpmbuild/SOURCES/

7、在/home/zuiyu/rpmbuild/SPECS/下新建app.spec文件,内容如下

Name: app
Version: 1.0
Release: 1
Summary: app RPM Setup File
Summary(zh_CN): app RPM 版
AutoReqProv: no
License: EULA
Group: Applications/System
Vendor: zuiyu
Buildarch: x86_64
Source0: %{name}-%{version}.tar.gz
%description
This is just for importing some files.
%description -l zh_CN
描述内容
%prep
rm -rf $RPM_BUILD_ROOT/*
%setup -q
%install
echo "%{summary}正在构建"
install -d $RPM_BUILD_ROOT/
cp -a * $RPM_BUILD_ROOT/
exit 0
%pre
/opt/tomcat/bin/startup.sh
%post
%preun
%postun
%files
/opt/tomcat/webapps
%doc
%changelog
* Mon DEC 26 2022 zuiyu <zuiyu@zy.com>
- first build

8、制作RPM

rpmbuild -bb --nodigest --nosignature /home/zuiyu/rpmbuild/SPECS/app.spec

9、安装,在/home/zuiyu/rpmbuild/SPECS/RPM下,普通用户安装失败可以切换root用户安装

rpm -ivh app-1.0-1.x86_64.rpm

到这步骤就结束了,可以查询一下tomcat进程是否已经正常启动,制作其他类型的RPM包类似,自行改一下即可

有问题欢迎留言哦

本文由 mdnice 多平台发布

目录
相关文章
|
安全 关系型数据库 MySQL
MySQL数据库高效秘籍:10个小技巧,让你轻松应对各种场景!
【8月更文挑战第25天】本文介绍了十个提升MySQL数据库效率与安全性的实用技巧。涵盖查询性能分析、索引优化、慢查询日志利用、图形化工具如MySQL Workbench的应用、性能分析工具、主从复制实现、备份与恢复策略、数据库迁移方法及安全性保障等多个方面。通过具体的示例代码展示每个技巧的实际操作方式,帮助读者深入理解并有效运用MySQL数据库。
566 0
|
2月前
|
JavaScript 前端开发 小程序
Vue 3:现代前端开发的革命性进化
Vue 3:现代前端开发的革命性进化
242 54
|
4月前
BigDecimal保留两位小数
本文介绍了BigDecimal保留两位小数的三种方法:`setScale`、`DecimalFormat`和`String.format`。其中,`setScale`可设置保留规则并返回BigDecimal类型值;`DecimalFormat`通过匹配规则返回字符串类型值;`String.format`为字符串自带方法,同样返回字符串类型值。此外,文章还对比了四种保留小数规则(如`00.00`、`#0.00`等),总结出`#0.00`是最适用的规则。附有详细代码示例与控制台打印结果,便于理解与实践。
764 19
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统
基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的口腔预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
289 2
基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统
|
关系型数据库 数据库 PostgreSQL
postgresql|数据库|启动数据库时报错:FATAL: could not map anonymous shared memory的解决
postgresql|数据库|启动数据库时报错:FATAL: could not map anonymous shared memory的解决
520 1
|
Go
Golang语言基础数据类型之字符串常用的操作
这篇文章介绍了Golang语言中字符串的定义、常用操作,包括字符串长度查看、遍历、类型转换、子串统计、比较、查找位置、替换、切割、大小写转换、剔除字符、前缀后缀判断、拼接、子串包含判断以及字符串join操作,同时提供了官方文档的查看方法。
174 1
|
缓存 前端开发 Go
go中的chan管道机制
Go 语言推崇通过通信来共享内存而非共享内存来通信,其中 Channel(通常简写为 `chan`)作为关键机制之一,允许两个并发执行的协程之间进行同步和数据交换。`chan` 是一种引用类型,可通过 `make` 函数创建,
172 2
|
安全
FUSE文件系统 【ChatGPT】
FUSE文件系统 【ChatGPT】
|
存储 Ubuntu 网络协议
Linux命令hostname:探索你的主机名
`hostname`命令在Linux中用于显示或设置主机名,它是系统管理和网络配置的关键工具。简单易用,可查看(`hostname`)或通过参数如`-s`设置短主机名,`-F`指定主机名文件。示例:查看主机名、使用`hostnamectl`或直接`hostname`命令设置新主机名,以及将新名写入`/etc/hostname`。注意,更改可能需管理员权限,并影响网络配置。
|
安全 Swift Android开发
构建移动应用:Swift vs Kotlin —— 两大主流语言的对决
【5月更文挑战第11天】Swift与Kotlin在移动应用开发中各有优势。Swift是iOS开发的首选,以其简洁语法、高性能和类型安全著称;而Kotlin是Android的官方推荐语言,以其与Java的无缝互操作、空安全特性和简洁代码受到青睐。两者在语法简洁性、性能和社区支持上表现优秀,但平台兼容性不同。开发者应根据项目需求和目标平台选择合适的语言。