一、rpm 包制作过程
1、安装工具
# 编译工具
yum install -y gcc make
# rpm 包工作目录生成工具
yum install -y rpmdevtools
# rpm 包构建工具
yum install -y rpm-build
2、创建工作目录
2.1、手动创建
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
2.2、rpmdevtools 构建创建
此命令会生成一个 rpmbuild 的目录,这个目录就是制作 rpm 包的环境,需要注意的是:此命令只有在/root下执行生效,且已有rpmbuild目录时不重新创建。
cd /root/
rpmdev-setuptree
然后执行命令查看cd rpmbuild && ls
可看到BUILD RPMS SOURCES SPECS SRPMS文件
各个目录的一般用途如下简介:
1.BUILD 编译rpm包的临时目录
2.BUILDROOT 编译后生成的软件临时安装目录
3.RPMS 最终生成的可安装rpm包的所在目录
4.SOURCES 所有源代码和补丁文件的存放目录
5.SPECS 存放SPEC文件的目录(重要)
6.SRPMS 软件最终的rpm源码格式存放路径
3、制作rpm包前准备
3.1、拷贝源码包或源码至SOURCES目录并编译源码二进制文件、启动命令
3.2、书写编译脚本
Name: pty-xinjiang
Version: 1.0.0
Release: 1%{?dist}
Summary: pty-xinjiang
License: GPLv3+
BuildArch: noarch
%description
pty xinjiang server
%define __jar_repack %{nil}
%define _binaries_in_noarch_packages_terminate_build 0
%prep
%build
%install
pty_dir=%{buildroot}/opt/cw/pty
rm -rf %{buildroot}
mkdir -p ${pty_dir}
cp -r /home/rpm/pty/files/* ${pty_dir}/
%files
%defattr(-,root,root)
/opt/cw/pty
%preun
rm -rf /opt/cw/pty
%postun
%changelog
注:
1.pty-xinjiang为服务名称
2./opt/cw/pty 安装路径,建议找个磁盘大一点的
3.名称格式为xxx.spec
cp -r /home/rpm/pty/files/* ${pty_dir}/
用于将 /home/rpm/pty/files/ 目录中的所有文件和目录复制到 ${pty_dir} 目录中
正常cp -r /root/rpmbuild/SOURCES/* ${pty_dir}/
将spec 脚本拷贝至SPECS目录下
4、制作包
使用此命令制作包rpmbuild -bb SPECS/xxx.spec
成功会再RPMS里,如图
5、安装验证rpm -ivh xxx.rpm
6、安装完成验证
可以再脚本中配置的路径下找到安装的包
然后正常启动
7、卸载rpm -e 包名
包名 是要卸载的 RPM 包的名称。请注意,这里使用的是包的名称
比如:rpm -e pty-adapter-1.0.0-1.el7.noarch
二、rpmbuild 常见命令
-bp 文件中安装执行前的地方
-bc 执行spec的%pre和%build 段(准备并编译)
-bi 执行spec中%pre,%build与%install(准备,编译并安装)
-bl 检查spec中的%file段(查看文件是否齐全)
-ba 建立源码与二进制包(常用)
-bb 只建立二进制包(常用)
-bs 只建立源码包
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。