【从脚本到软件包:打造你的第一个Python RPM】

1.环境准备

1.1 如果需要多平台运行,需要准备好打包编译的环境如ARM/X86,两套环境编译后的文件只能在各自的平台上运行,我这里准备的环境为如下

在这里插入图片描述

2.依赖安装

2.1 首先需要安装python编译库

pip3 install pyinstaller

2.2 确保你的系统上已经安装了rpm-build包,如果没有安装,可以使用以下命令进行安装:

sudo yum install rpm-build    # For Red Hat, CentOS, Fedora

sudo apt-get install rpm-build   # For Ubuntu, Debian

3.打包文件准备

3.1 首先准备需要打包的python的源文件

就是你需要打包的py文件

3.2 准备需要打包的RPM的spec文件

spec文件规范如下附件,需要按照这个规范来编写
3.3 X86 编写spec

Summary: XXX tool
Name: tool name
Version: 1.0.9
Release: 2
License: GPLv2+
Group: Applications/System
BuildArch: x86_64
%description
This is a command line tool to get PCIe device information.
%files
%defattr(-,root,root,-)
/usr/bin/pcietool
%install
mkdir -p %{buildroot}/usr/bin
cp %{_sourcedir}/pcietool  %{buildroot}/usr/bin
%clean
rm -rf %{buildroot}

%post
#Optional post-installation scripts or commands
%preun
#Optional pre-uninstallation scripts or commands
%postun
#Optional post-uninstallation scripts or commands

3.4 arm编写spec

Name:  pcietool
Version: 1.0.9
Release: 1%{?dist}
License: MIT
Group: Applications/System
Summary:  tool

#依赖关系
Requires: python3
%description
This is a command line tool to get PCIe device information.

#描述文件的安装位置和权限
%files
%defattr(-,root,root,-)
/usr/bin/pcietool
%prep
%build
%install
mkdir -p %{buildroot}/usr/bin
cp %{_sourcedir}/pcietool  %{buildroot}/usr/bin
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
/usr/bin/pcietool

4.打包

4.1首先将py文件打包成二进制可执行文件,因为py文件里依赖了很多运行库和python的库,这里可以使用一键打包成一个可文件(文件会比较大,因为会把所有运行依赖都打包到这里),X86和ARM通用

pyinstaller --onefile tool.py

如下提示就是打包成功
在这里插入图片描述

打包成功之后会在打包目录生成一个dist文件夹,这个就是打包成功之后的二进制文件

4.2 打包成rpm包

将上面dist目录的二进制文件拷贝到rpm 的/root/rpmbuild/SOURCES目录下
在这里插入图片描述

执行打包命令,可以在RPM按照的SPECS目录下执行,也可以在脚本目录执行都可以,前提是需要存在打包的spec文件,我这里直接在脚本目录打包,需要注意的是:打包的spec文件需要和打包的二进制文件同一个命名
在这里插入图片描述

执行命令,我这里执行加的参数是bb,意思就是只构建二进制包,也可根据自己的需求自行编译。

rpmbuild -bb mypackage.spec  # 根据你的spec文件名定义

在这里插入图片描述

编译成功之后会在该目录生成这个rpm文件包,(X86和ARM不在同一个目录,可自己查看编译后的路径)可下载执行rpm -ivh 安装,如果之前有安装过可添加rpm -ivh --force参数

在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Python的.rpm安装包是一种用于在Linux操作系统中安装Python解释器和相关库的软件包。.rpm文件是一种专门用于Red Hat基于rpm包管理系统的Linux发行版的软件包格式。 要安装Python.rpm包,可以按照以下步骤进行操作: 1. 首先,确保已经下载了所需的.rpm安装包文件。可以从Python官方网站或其他来源获取。 2. 打开终端,并使用root或sudo权限登录系统。 3. 使用以下命令执行安装操作:sudo rpm -i package.rpm 其中"package.rpm"是要安装的.rpm文件的名称。 4. 在安装过程中,系统将显示安装进度和确认信息。根据需要,可能需要输入root或sudo密码。 5. 安装完成后,可以使用以下命令验证Python是否已成功安装:python -V 或者 python3 -V 这将显示Python版本信息,确认Python是否已成功安装。 此外,还可以使用其他.rpm软件包管理工具安装Python.rpm包,例如yum、dnf等。这些工具可以自动解决依赖关系,并确保所需的库和依赖项也同时安装。 需要注意的是,.rpm安装包适用于Red Hat系列的Linux发行版,如CentOS、Fedora等。对于其他Linux发行版,可能需要使用其他软件包格式或方法进行安装,如.deb包格式和apt命令等。 总结起来,使用.rpm安装包可以方便地在Linux上安装Python解释器和相关库。以上是关于如何使用.rpm包进行Python安装的基本步骤和注意事项。 ### 回答2: RPM(Red Hat Package Manager)是一种在Linux中安装软件包的格式,也是一种软件包管理工具。Python自身并没有提供RPM包,但是可以通过使用RPM包管理工具来安装Python。 要安装PythonRPM包,首先需要在网上或者通过其他渠道下载所需的PythonRPM包文件。这个RPM包文件通常以.rpm作为后缀名。接下来,打开终端,并使用以下命令进行安装: sudo rpm -ivh 文件名.rpm 这里,"文件名"是你下载的PythonRPM包文件名。执行这个命令将会以管理员权限安装该RPM包。系统将自动解析和安装该RPM包,并将Python及其相关组件安装到系统中。 在安装完成后,可以通过以下命令来验证Python安装是否成功: python --version 如果成功安装,终端将会显示Python的版本号。此时,你可以在终端中直接运行Python解释器,执行Python脚本。 需要提醒的是,使用RPM包安装Python时要注意与系统版本的兼容性。不同版本的RPM包适用于不同的操作系统版本,而且RPM包中还包含了Python的一些依赖项,如库文件、模块等。因此,在选择RPM包时,请务必确保与系统版本和架构的匹配,以免出现不兼容的情况导致安装失败。 当然,也可以通过其他方式安装Python,如源码编译安装、使用包管理工具等。每种安装方式都有其特点和适用范围,可以根据具体需求选择合适的方法。 ### 回答3: RPM(Red Hat Package Manager)是一种常用的Linux软件包管理工具,可以用来安装、升级和删除软件包。下面是关于使用Python安装RPM包的基本步骤: 1. 首先,确保你已经安装了Python解释器。可以通过运行`python --version`命令来验证是否已安装Python,并查看其版本号。 2. 下载所需的RPM 包。可以在官方软件仓库、第三方软件站点或其他可信来源找到所需的RPM包。请确保选择与你的操作系统版本和架构兼容的RPM包。 3. 使用`cd`命令进入下载目录,然后使用`ls`命令查看已下载的RPM包。 4. 运行以下命令使用Python安装RPM包:`sudo rpm -i package_name.rpm`,其中`package_name.rpm`是你要安装的RPM包的名称。 5. 系统会要求你输入管理员密码,以获得安装RPM包所需的权限。输入密码后,按下Enter键。 6. 安装过程可能需要一些时间,取决于RPM包的大小和系统配置。安装完成后,系统会显示安装成功的消息。 7. 要验证安装是否成功,可以使用`rpm -q package_name`命令查询已安装的软件包,其中`package_name`是你要查询的软件包的名称。 需要注意的是,如果需要安装的RPM包依赖于其他软件包,系统可能会提示你缺少依赖项。此时,你需要手动安装所有依赖项,然后再尝试安装RPM包。可以使用`yum`命令来管理和解决软件包依赖关系。 以上就是使用Python安装RPM包的简单步骤。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏天Aileft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值