定制activemq_RPM包,注册系统服务并开机自启

news2025/8/10 9:15:36

rpmbuild命令用于创建软件的二进制包和源代码包。

1.准备环境

系统:Centos7

安装所需编译环境:

# yum install epel-release -y

# yum install rpmdevtools rpm-build gcc make tcl jemalloc -y 

2.提前编译安装redis,此处以activemq-5.16.5-版本为例

activemq源码包下载地址:http://archive.apache.org/dist/activemq/5.16.5/apache-activemq-5.16.5-bin.tar.gz

#  mv apache-activemq-5.16.5-bin.tar.gz   apache-activemq-5.16.5.tar.gz

3.生成rpm包

执行如下命令来生成rpmbuild的工作目录

# rpmdev-setuptree

# vim activemq.spec

​
Name:           apache-activemq
Version:        5.16.5
Release:        1%{?dist}
Summary:        apache-activemq

License:        GPLv3
Source0:        apache-activemq-5.16.5.tar.gz

BuildRequires:  bash

%global         app_bin_dir             /opt/%{name}-%{version}
%global         debug_package           %{nil}

%description
apache-activemq

%prep
%setup -q -n %{name}-%{version}

%install
mkdir -p %{buildroot}/%{app_bin_dir}/
cp -r ./* %{buildroot}/%{app_bin_dir}/


%files
%defattr(-,root,root,500)
%{app_bin_dir}/*

%post
# 生成activemq.service文件
cat > /etc/systemd/system/activemq.service <<EOF
[Unit]
Description=Apache ActiveMQ Message Broker
After=network-online.target
[Service]
Type=forking

User=root
Group=root
WorkingDirectory=%{app_bin_dir}/bin
ExecStart=%{app_bin_dir}/bin/activemq start
ExecStop=%{app_bin_dir}/bin/activemq stop
Restart=on-abort
[Install]
WantedBy=multi-user.target

EOF
systemctl enable activemq.service

# 启动
#systemctl start activemq

#%preun
#systemctl stop activemq

%postun
rm -fr %{app_bin_dir}

​

将上步打包好的文件放到此目录下/root/rpmbuild/SOURCES/

# cp -rf  /usr/local/apache-activemq-5.16.5.tar.gz/root/rpmbuild/SOURCES/

编译打包

# rpmbuild -ba activemq.spec

 会在此目录下生成rpm包

# ls /root/rpmbuild/RPMS/x86_64/

apache-activemq-5.16.5-1.el7.x86_64.rpm

4.在新的环境上安装redis的rpm包,测试是否可以正常启停

# rpm -ivh apache-activemq-5.16.5-1.el7.x86_64.rpm

配置文件中添加以下内容,否则会启动报错

# vim /opt/apache-activemq-5.16.5/bin/env

JAVA_HOME=/usr/local/jdk

 # systemctl status activemq

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nodejs学习week01

说明&#xff1a;学习nodejs之气那应该掌握html&#xff0c;css&#xff0c;JavaScript等前端基础技术 目录 一、什么是nodejs 二、nodejs的内部模块 1.fs文件系统模块 2.path路径模块 3.http服务器模块 三、module.exports对象 四、时间格式化 1.使用JavaScript的方…

Python自动化运维之一(Python入门)

Python简介 python是吉多范罗苏姆发明的一种面向对象的脚本语言&#xff0c;可能有些人不知道面向对象和脚本具体是什么意思&#xff0c;但是对于一个初学者来说&#xff0c;现在并不需要明白。大家都知道&#xff0c;当下全栈工程师的概念很火&#xff0c;而Python是一种全栈的…

docker-compose模板文件、命令的使用

docker-compose官网 一、docker-compose的命令 1、up(启动) 格式为 docker-compose up [options] [SERVICE…] 该命令十分强大&#xff0c;它将尝试自动完成包括构建镜像&#xff0c;&#xff08;重新&#xff09;创建服务&#xff0c;启动服务&#xff0c;并关联服务相关容器…

FAQ是什么?该如何编辑FAQ?

“FAQ”这个关键词可能很多人都见过&#xff0c;但是如果不是行业内的人&#xff0c;大概还不知道它的含义&#xff0c;所以本文将介绍 FAQ和 FAQ文档的编写。 “FAQ”是中文意思&#xff0c;意思是“常见问题解答”或“帮助中心”。研究显示&#xff0c;客户服务支持每天要花…

第四章. Pandas进阶—数据分组统计

第四章. Pandas进阶 4.3 数据分组统计 1.分组统计函数(groupby函数) 1).功能&#xff1a; 根据给定的条件将数据拆分成组每个组否可以独立应用函数&#xff08;sum&#xff0c;mean&#xff0c;min&#xff09;将结果合并到一个数据结构中 2).语法&#xff1a; DataFrame.gro…

5G无线技术基础自学系列 | 物理上行共享信道

素材来源&#xff1a;《5G无线网络优化实践》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 NR PUSCH支持两种波形&#xff08;参阅TS…

Python入门自学进阶-Web框架——26、DjangoAdmin项目应用-数据记录操作

对于每个表显示的数据&#xff0c;点击其中一条&#xff0c;进入这条数据的修改页面&#xff0c;显示此条数据的具体内容&#xff0c;并提供修改、删除等功能。主要是ModelForm的应用。 一、记录数据修改 首先是路由项的添加&#xff0c;点击一条记录后&#xff0c;进入相应的…

MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作

什么是MaxEnt模型&#xff1f; MaxEnt模型的原理是什么&#xff1f;有哪些用途&#xff1f; MaxEnt运行需要哪些输入文件&#xff1f;注意那些事项&#xff1f; 融合R语言的MaxEnt模型的优势&#xff1f; 常用数据检索与R语言自动化下载及可视化方法 常用数据下载网站&…

第一章《初学者问题大集合》第7节:编写第一个Java程序

下载并安装好IDEA之后&#xff0c;就可以编写Java程序啦&#xff01;前文曾经讲过&#xff0c;Java程序最初的存在形式是Java源文件&#xff0c;经过编译之后又会产生字节码文件。当今时代&#xff0c;软件项目的规模越来越大&#xff0c;因此软件项目中会有多个Java源文件和字…

Android Gradle - AGP(Android Gradle Plugin)更新失败,你遇到了吗?

因为项目中有Java和Kt&#xff0c;同时也是组件化项目&#xff0c;所以配置方面一直存在一些问题&#xff08;项目可正常运行&#xff0c;只是影响开发效率&#xff09;&#xff0c;此处仅记录我在AndroidStudio中更新AGP&#xff08;Android Gradle Plugin,即Android 官方开发…

jmeter 使用

下载安装 去官网下载binary文件https://jmeter.apache.org/download_jmeter.cgi 解压后&#xff0c;进入解压目录的 /bin/ &#xff0c;通过 sh jmeter 命令来启动 Jmeter。 使用jmeter GUI创建test plan 创建线程组流程&#xff1a;测试计划–>右键–>添加–>线程…

threeJS与模型交互

效果预览 该场景是模拟两个楼层&#xff0c;当鼠标放到不同的楼层上时改变其透明度 blender中的模型如下图&#xff1a; 首先导入模型 import { FBXLoader } from three/examples/jsm/loaders/FBXLoader.js addfbx () {const loader new FBXLoader()loader.load(/models/…

算法:最长递增子序列

一、题目描述 给定一个长度为N的数组a0,a1,a2…,an-1&#xff0c;找出一个最长的单调递增子序列&#xff08;注&#xff1a;递增的意思是对于任意的i<j&#xff0c;都满足ai<aj&#xff0c;此外子序列的意思是不要求连续&#xff0c;顺序不乱即可&#xff09;。例如&…

K8s自动化集群环境搭建

文章目录一、环境规划1.1 集群类型1.2 安装方式二、环境搭建1、主机安装2、主机名分配3、时钟同步4. 禁用firewalld、selinux、postfix5. 禁用swap分区6. 开启IP转发&#xff0c;和修改内核信息7. 配置IPVS功能8. ssh免密认证三、安装docker1、更换阿里云镜像仓库2、安装docker…

【前端】HTTP —— HTTP 协议中的细节(超详细!!)

JavaEE传送门JavaEE 【前端】JavaScript —— JS的基本语法之数组, 函数… 【前端】JavaScript —— WebAPI 目录HTTP 协议抓包工具 fiddler协议格式RequestResponseHTTP 协议中的细节认识 URLURL 基本格式URL encode/ decode认识 "方法" methodGETPOSTGET 和 POST…

感叹之余随手记—他山之石,可以攻玉

如上是开源webRTC项目的一个OC代码文件&#xff0c;注意到文件名是mm后缀了吗&#xff1f; 是的&#xff0c;它是一个OC特性之OC跟C/C代码混编&#xff0c;上面的代码就C runtime跟OC runtime的string对象的互相转化。 开源成就了很多人很多事&#xff01; 开源提升了我们的工作…

MySQL高级学习笔记(二)

文章目录MySQL高级学习笔记(二)1.Mysql的体系结构概览2. 存储引擎2.1 存储引擎概述2.2 各种存储引擎特性2.2.1 InnoDB2.2.2 MyISAM2.2.3 MEMORY2.2.4 MERGE2.3 存储引擎的选择3. 优化SQL步骤3.1 查看SQL执行频率3.2 定位低效率执行SQL3.3 explain分析执行计划3.3.1 环境准备3.3…

【JavaSE】内部类介绍与总结

文章目录内部类的概念静态内部类实例内部类局部内部类匿名内部类内部类的概念 什么是内部类呢&#xff1f;在一个类里面定义了另一个类&#xff0c;我们就把前者称为外部类&#xff0c;后者称为内部类。 静态内部类 内部类也是有分类的&#xff0c;我们先来看看静态的内部类…

开源的滚滚浪潮:近年来开源多样化的几大亮点

导读目前参与进开源社区的人群仍然缺乏多样性&#xff0c;但是好的一面是&#xff0c;许多人、项目和社区正在努力改善这一现状。我从开源社区在2015年以来为提高多样性作出的努力中收集了几大亮点。Outreachy 发展多样性的实习项目 Outreachy 作为软件自由管理局的成员项目之…

7种方式企业内部资料共享,你pick谁?

企业内部资料共享&#xff0c;很多公司也还停留在用微信和QQ分享文件&#xff0c;但小编认为通过IM方式&#xff0c;只能说“发送”文件而已&#xff0c;并没有达到“共享”的需求。 试想一下这几个场景就能明白&#xff1a; 内部材料收集&#xff0c;是一份份地通过微信发送给…