【运维】rpm 包制作

记录一下小白 制作 rpm 的历程;

fedora 官网相关的说明文档:RPM Guide

RPM中SPEC常用路径以及宏变量:RPM中SPEC常用路径以及宏变量

c 实例:  c实例

使用单一文件构建 rpm 实例:使用单一文件构建 rpm 实例

基础的东西就不介绍了,直奔主题;

需要完成的任务是

把环境所需的几个相关 应用 打成一个 rpm包,方便后期环境的安装:当然这里的相关应用都是提前配置好的,不需要再改动,可能需要配置一些其他的环境变量。

直接 spec 文件:

Name:		georelation #对应源文件的名称
Version:	1.0 #对应源文件的版本
Release:	1%{?dist}
Summary:	geo relation files

Group:		vastio
License:	GPL
URL:		www.vastio.com
Source0:	georelation-1.0.tar.gz #SOURCE 下的源文件
BuildArch:      x86_64	
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #默认
AutoReqProv: no  #不需要加载依赖

%description
geo relation install

%global debug_package %{nil} #关闭debug package

%prep
%setup -q #解压缩源文件


%build
%install
rm -rf $RPM_BUILD_ROOT
install -d -m 0755 $RPM_BUILD_ROOT/opt #创建目录
install -d -m 0755 $RPM_BUILD_ROOT/usr/local #创建目录
cp -pr %_topdir/BUILD/%{name}-%{version}/elasticsearch-6.1.2/ $RPM_BUILD_ROOT/opt/ #将BUILD 下的文件移动到BUILDROOT 下准备制作rpm包
cp -pr %_topdir/BUILD/%{name}-%{version}/es-loader/ $RPM_BUILD_ROOT/opt/
cp -pr %_topdir/BUILD/%{name}-%{version}/data/ $RPM_BUILD_ROOT/opt/
cp -pr %_topdir/BUILD/%{name}-%{version}/geoserver-9090/ $RPM_BUILD_ROOT/opt/
cp -pr %_topdir/BUILD/%{name}-%{version}/python3 $RPM_BUILD_ROOT/usr/local/

exit 0 #因为源文件中包含python,防止python 文件的编译

%clean
rm -rf $RPM_BUILD_ROOT #清空BUILDROOT 目录

%files
%defattr(-,root,root,-) #文件,用户,群组,目录
/opt/elasticsearch-6.1.2/ #决定安装哪些目录下的文件
/opt/es-loader/
/opt/data/
/opt/geoserver-9090/
/usr/local/python3/


%changelog


相关命令:

rpmbuild -bc / -bp / -bb / -ba xxx.spec  

rpm -ivh xxx.rpm  //安装rpm
rpm -e xxx.rpm //卸载 rpm
rpm -q xxx.rpm  //是否安装该 rpm








猜你喜欢

转载自blog.csdn.net/lihuapiao/article/details/80068172