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