centos7中如何打包用户目录

centos7中如何打包用户目录,第1张

一、RPM打包的目的

1、当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh *.rpm安装即可。

2、当需要在目标机中安装多个软件或者增加多个文件时,可以将整体打成RPM包,方便使用。

二、RPM打包命令

$cd ~ #进入home目录 $ sudo yum -y install rpmdevtools #安装rpm打包所需的工具 $rpmdev-setuptree #生成rpm打包目录 $cd rpmbuild/SPECS #进入SPECS目录 $rpmdev-newspec test.spec #生成spec文件模板 $mv your_path/source.tar.gz ../SOURCES #将要打包的源码以tar.gz的格式移动到SOURCES目录

此时会在home目录下生成一个rpmbuild目录,此目录下有五个子目录 BUILD 编译时所用的暂存目录 RPMS 放打包好的二进制rpm包 SOURCES 放置源代码和补丁文件 SPECS 放置spec文件 SRPMS 放置RPM源码包

三、spec文件简要说明

RPM打包的关键之处就在于spec文件的编写

1、spec基本信息

Name: 软件名称 Version: 软件版本 Release: 发布次数 如: 1%{?dist} Summary: 软件说明 Group: 软件分组 License: 授权模式,例如 GPL,即自由软件 URL: 源码包的URL地址,可随意填写 Source0: 源码包,可指定多个,下面可用%{SOURCE0}变量引用 BuildRoot: 编译过程中的中间存档目录,考虑到多用户的环境,一般定义为: %{_tmppath}/%{name}-%{version}-%{release}-root , 后面可使用$RPM_BUILD_ROOT 方式引用 BuildArch: 平台 %{_arch} BuildRequires: 编译过程依赖的工具 Requires: 打包生成的rpm包安装时所依赖的软件包 %description 说明文档 %prep 准备部分,比如创建目录,解压源码包等,可使用%setup内部函数 %build 在BUILD目录编译,可使用%configure内部函数,或者其他编译工具,如cmake, perl等 %install 安装到BUILDROOT虚拟目录 %clean 清理文件 %files 将指定的文件添加到rpm包中,文档类型可用%doc,配置文件可 用%config %changelog 更新记录.格式: 第一行 "* 日期 作者 " 第二行 "- 更新内容" 最终的生成的rpm名称: {Name}-{Version}-{Relesae}-{BuildArch}.rpm

2、spec内部变量

在spec文件运行时,定义的宏会主动读取/usr/lib/rpm/macros中的变量

RPM_BUILD_DIR ~/rpmbuild/BUILD

RPM_BUILD_ROOT ~/rpmbuild/BUILDROOT

3、spec文件示例(以git为例)

Name: git Version: 2.10 Release: 1%{?dist} Summary: this is the test code License: GPL URL: http://www.hao123.com Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-root BuildRequires: automake Requires: rpm %description %prep %setup -q %build autoconf ./configure --prefix=/opt/git/ make %{?_smp_mflags} %install make DESTDIR=$RPM_BUILD_ROOT install %clean [ "$RPM_BUILD_ROOT" != "/" ] &&rm -rf "$RPM_BUILD_ROOT" make clean %files %defattr (-,root,root) /opt/git/ %changelog

4、生成RPM包

$rpmbuild -ba test.spec #生成RPM包

生成的RPM包在rpmbuild/RPMS目录下。

python的程序的缺点是: 需要提供源码,如果不想让源码被第三方获得,可以将其打包成二进制文件的形式。

pyinstaller就可以完成这个要求。

vim test.py

直接用python程序调用,结果如下:

大写的-F表示生成单一文件。

运行结果:

生成的可执行文件在dist目录中

https://www.pyinstaller.org/downloads.html

https://blog.csdn.net/aaronjzhang/article/details/8778338

https://www.cnblogs.com/LarryGen/p/5427102.html

https://www.cnblogs.com/alan-babyblog/p/5147770.html

https://www.cnblogs.com/zflibra/p/4180796.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11494447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存