要使用rpm将可执行程序打包为XXXX.rpm的文件,可以在centos中一键安装python程序。
默认认为大家知道rpm,若不清楚请自行百度,这里不再讲解。
废话不多说,直接上过程
全过程最好使用root用户
第一步----安装rpmbuild:
安装完成后,查看/root/rpmbuild/目录下,是否存在BUILD、BUILDROOT、RPMS、SOURCES、SPECS、SRPMS目录。
若不存在则需要手动创建,命令如下:
[root@bogon ~]$ mkdir -p /root/rpmbuild/{
BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
各个目录的用途如下:
BUILD 编译rpm包的临时目录
BUILDROOT 编译后生成的软件临时安装目录
RPMS 最终生成的可安装rpm包的所在目录
SOURCES 所有源代码和补丁文件的存放目录,一般将源代码压缩文件放置到该目录
SPECS 存放SPEC文件的目录(重要)
SRPMS 软件最终的rpm源码格式存放路径
第二步----编写xx.spec文件(重中之重)
rpmbuild就是根据这个文件进行打包的,第一次写比较难写,有些绕,下面结合我的修改做讲解,##号后是我写的注解,只是为了让大家理解每一行是在干什么,实际文件中并没有,注意注意注意!!!!
重点参数讲解:
BuildRoot:安装或编译时使用的“虚拟目录”,后面可以使用$RPM_BUILD_ROOT引用,当安装生成的rpm文件时,会依据在%instal中写的路径放置文件,$RPM_BUILD_ROOT后为根目录。(%install里写的是在安装过程中会根据里面的语句去执行对应的操作)
以%install中的“cp $RPM_BUILD_DIR/%{name}-%{version}/bin/iDesktopAgent $RPM_BUILD_ROOT/usr/local/bin/”为例:
“$RPM_BUILD_DIR/%{name}-%{version}” 结合spec文件转义过来的实际路径为: /ro