rpm打包tomcat
1.制作rpm包
yum install rpm-build -y
2.创建工作目录
mkdir -pv ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
3.准备要打包的文件
tomcat请自行下载
下载后修改配置文件,关闭ajp 8009监听
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
修改catalina参数
CATALINA_HOME=/usr/local/tomcat
JAVA_HOME=/usr/local/jdk
CATALINA_PID=/usr/local/tomcat/var/tomcat.pid
JAVA_OPTS="${JAVA_OPTS} -Duser.timezone=Asia/Shanghai -Dfile.encoding=utf-8 -server -XX:PermSize=512m -XX:MaxPermSize=512m -Xms4096m -Xmx4096m -Djava.awt.headless=true"
配置tomcat日志自动切割
修改catalina.sh,搜索关键词 touch "$CATALINA_OUT"
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"
修改为
org.apache.catalina.startup.Bootstrap “$@” start 2>&1 \
| /usr/local/sbin/cronolog “$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >> /dev/null &
下载cronlog
yum install -y cronlog
tomcat启动脚本
本次试验为centos7.3,顾准备systemd所需的单元文件
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target [Service]
Type=forking
PIDFile=/usr/local/tomcat/var/tomcat.pid
ExecStart=/usr/local/tomcat-8.5.29/bin/startup.sh &>/dev/null
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true [Install]
WantedBy=multi-user.target
4.编写tomcat.spec文件
%define path_name usr/local
%define name_ tomcat-8.5.29
Name: tomcat
Version: 8.5.29
Release: 1%{?dist}
Summary: tomcat
Group: tomcat
License: GPL
URL: http://www.test.net
Packager: tomcat
Vendor: tomcat
Source0: tomcat-8.5.29.tar.gz
Source1: tomcat.service
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
%description
tomcat %prep
mkdir -pv %{buildroot}/%{path_name}
%setup -q %install
mkdir -pv $RPM_BUILD_ROOT/%{path_name}/%{name_}/var cp -rf * $RPM_BUILD_ROOT/%{path_name}/%{name_}/
%{__install} -p -D %{SOURCE1} %{buildroot}/usr/lib/systemd/system/tomcat.service %post
ln -s $RPM_BUILD_ROOT/%{path_name}/%{name_}/ $RPM_BUILD_ROOT/%{path_name}/tomcat %postun
rm -fr /%{path_name}/%{name_}
rm -fr /%{path_name}/tomcat %files
%defattr(-,root,root,-)
%attr(0755,root,root) /usr/local/
%attr(0755,root,root) /usr/lib/systemd/system/tomcat.service
%attr(0755,root,root) /usr/local/tomcat-8.5.29/var %changelog
* Sat Oct 24 2015 yeho 1.15-1
- Initial version
5.制作rpm包
将tomcat.service与tomcat包放置rpmbuild/SOURESC中
将tomcat.spec放置在rpmbuild/SPECS中
rpmbuild -bb rpmbuild/SPECS/tomcat.spec # 制作二进制包
没解决事项:tomcat.pid尝试在tomcat目录外生成,但是在使用systemd启动时不能创建此文件,最后导致不能启动,最终在tomcat目录内生成pid文件
查看tomcat安装状态



参考资料:https://www.cnblogs.com/seaspring/articles/5282516.html
rpm打包tomcat的更多相关文章
- 【centos7常用技巧】RPM打包
一.RPM打包的目的 1.当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh *.rpm安装即可. 2.当需要在目标机中安装多个软件或者增加多个文件时,可以将 ...
- Centos6_64 rpm打包实践
安装rpmbuild sudo yum install rpm-build 普通用户的配置 /home/you/rpmbuild/ 假设是要构建rpm的目录 先说说rpmbuild有什么用,给一个例子 ...
- maven打包 tomcat运行pom配置 或 打成jar包
maven打包 tomcat运行pom配置,同时还需要配置org.apache.tomcat.maven插件,这里省略. <groupId>com.company</groupId& ...
- rpm打包过程
[需求] 接触那么久的Linux,还没有试验过怎么打rpm包 [过程] 1.rpm打包准备工作 系统默认的rpmbuild的相关路径
- linux 版本控制及rpm打包
版本控制 subversion:是一个自由/开源的版本控制系统,在subversion管理下,文件和目录可以超越时空subversion允许你数据恢复到早期版本,或者是检查数据修改历史许多人将版本控制 ...
- RPM打包原理、示例、详解及备查
原文地址:https://blog.csdn.net/qq_16542775/article/details/80961213 RPM(Redhat Package Manager)是用于Redhat ...
- 使用rpm 打包开发的postgres extension
环境准备 安装依赖包 rpmdevtools rpm-build yum install -y rpm-build rpmdevtools 初始化rpm pacakge 项目 主要是rpm 打包的 ...
- RPM打包原理、示例、详解及备查( 转)
RPM(Redhat Package Manager)是用于Redhat.CentOS.Fedora等Linux 分发版(distribution)的常见的软件包管理器.因为它允许分发已编译的软件,所 ...
- 用 RPM 打包软件,第 1 部分
http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part1/ RPM(Red Hat Package Manager ...
随机推荐
- 关于Windows 2019 antimalware 进程占用CPU 过多的处理方法 关闭windows 病毒防护的方法
0. 客户端打开报错 重启之后 响应速度很慢. 解决办法: 1. 打开组策略 gpedit.msc 2. 选择位置为 3. 查看 进程里面后台程序 antimalware 进程消失 即可
- Angular 简单的Get
<!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta ...
- 查询数据SELECT 之单表查询
一.单表查询的语法与关键字的执行优先级""" # 单表查询# 单标查询完整与法:# select distinct(关键字,代表查询的意思,后面跟)字段1,字段2...( ...
- python学习笔记九——序列
4.4 序列 序列是具有索引和切片能力的集合.元组.列表和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力,因此元组.列表和字符串都属于序列.序列索引功能演示: tuple=(&quo ...
- html 文档类型
<!doctype>用来声明html的版本,浏览器只有知道html的版本后才能正确显示文档,<!DOCTYPE>本身不是一个标签,而是一个声明.
- 深度学习网络压缩模型方法总结(model compression)
两派 1. 新的卷机计算方法 这种是直接提出新的卷机计算方式,从而减少参数,达到压缩模型的效果,例如SqueezedNet,mobileNet SqueezeNet: AlexNet-level ac ...
- BZOJ1299[LLH邀请赛]巧克力棒——Nim游戏+搜索
题目描述 TBL和X用巧克力棒玩游戏.每次一人可以从盒子里取出若干条巧克力棒,或是将一根取出的巧克力棒吃掉正整数长度.TBL先手两人轮流,无法操作的人输. 他们以最佳策略一共进行了10轮(每次一盒). ...
- 理解C语言递归up_and_down
函数调用.理解递归 对于程序,编译器会对其分配一段内存,在逻辑上可以分为代码段,数据段,堆,栈. 代码段:保存程序文本,指令指针EIP就是指向代码段,可读可执行不可写 数据段:保存初始化的全局变量和静 ...
- 【AtCoder010】A - Addition(奇偶)
AtCoder Grand Contest 010 A题 题目链接 题意 n个数,每次取两个奇偶性相同的数用他们的和代替他们,问最后能否只剩下一个数. 题解 因为奇偶相同的两个数之和一定是偶数,所以Y ...
- 【BZOJ2434】【NOI2011】阿狸的打字机(AC自动机,树状数组)
[BZOJ2434]阿狸的打字机(AC自动机,树状数组) 先写个暴力: 每次打印出字符串后,就插入到\(Trie\)树中 搞完后直接搭\(AC\)自动机 看一看匹配是怎么样的: 每次沿着\(AC\)自 ...