记录一下小白 制作 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