银河麒麟服务器操作系统 V10 SP1 RPM打包
银河麒麟V10 SP1 RPM打包
RPM(Redhat Package Manager)是用于Redhat、CentOS、Fedora等Linux 分发版(distribution)的常见的软件包管理器。因为它允许分发已编译的软件,所以用户只用一个命令就可以安装软件。
1 准备
首先请准备一个银河麒麟服务器操作系统,可直接从麒麟官网申请下载
一、首先安装rpm打包工具
1、yum install rpmdevtools
二、创建rpm工作空间
2、rpmdev-setuptree
可以看到运行了这个命令之后,在$HOME家目录下多了一个叫做rpmbuild的文件夹,里边内容如下:
$ tree rpmbuild
rpmbuild
├── BUILD
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS
SPECS下是RPM包的配置文件,是RPM打包的“图纸”,这个文件会告诉rpmbuild
命令如何去打包。“宏代码”这一列就可以在SPEC文件中用来代指所对应的目录,类似于编程语言中的宏或全局变量。当然~/rpmbuild
这个文件夹也是有宏代码的,叫做%_topdir
。
打包的过程有点像是流水线,分好几个工序:
1. 首先,需要把源代码放到%_sourcedir中;
2. 然后,进行编译,编译的过程是在%_builddir中完成的,所以需要先把源代码复制到这个目录下边,一般情况下,源代码是压缩包格式,那么就解压过来即可;
3. 第三步,进行“安装”,这里有点类似于预先组装软件包,把软件包应该包含的内容(比如二进制文件、配置文件、man文档等)复制到%_buildrootdir中,并按照实际安装后的目录结构组装,比如二进制命令可能会放在/usr/bin下,那么就在%_buildrootdir下也按照同样的目录结构放置;
4. 然后,需要配置一些必要的工作,比如在实际安装前的准备啦,安装后的清理啦,以及在卸载前后要做的工作等等,这样也都是通过配置在SPEC文件中来告诉rpmbuild命令;
5. 还有一步可选操作,那就是检查软件是否正常运行;
5. 最后,生成的RPM包放置到%_rpmdir,源码包放置到%_srpmdir下。
2.创建SPEC文件
在Spec目录下新建spec文件,示例如下
vim test.spec
Name: test
Version: 1.0
Release: 1%{?dist}
Summary: test
Group: Applications/Editors
License: GPT
%description
test
%prep
echo "extract tar package"
%build
echo "make"
%install
echo "make install"
pwd
mkdir -p $RPM_BUILD_ROOT/etc ps:根据实际需要创建安装目录
cp -rf /root/test $RPM_BUILD_ROOT/etc/test ps:将需要打包的文件复制到安装目录
%clean
echo "clean"
rm -rf $RPM_BUILD_ROOT
%pre
echo "start to install test demo"
%post
echo "finsh to install test demo"
%preun
echo "start to uninstall test demo"
%postun
echo "finsh to uninstall test demo"
#package file to rpm
%files
%defattr(-,root,root) ps:定义安装文件的权限
/etc/test ps:定义RPM包内,那些文件需要被安装,此文件必须在打包空间存在
%doc
%changelog
3.开始打包
rpmbulid -ba xxx.spec
即可在RPMS目录下生成RPM包
更多推荐
所有评论(0)