网站建站解决方案,软文推广模板,wordpress创建搜索页面模板,惠州市建筑信息平台#x1f468;#x1f393;博主简介 #x1f3c5;CSDN博客专家 #x1f3c5;云计算领域优质创作者 #x1f3c5;华为云开发者社区专家博主 #x1f3c5;阿里云开发者社区专家博主 #x1f48a;交流社区#xff1a;运维交流社区 欢迎大家的加入#xff01… 博主简介 CSDN博客专家 云计算领域优质创作者 华为云开发者社区专家博主 阿里云开发者社区专家博主 交流社区运维交流社区 欢迎大家的加入 希望大家多多支持我们一起进步 如果文章对你有帮助的话欢迎 点赞 评论 收藏 ⭐️ 加关注 文章目录 前言一、使用rpmbuild将python环境及依赖包打成rpm包1.1 准备打包环境1.2 创建 Python 环境的 SPEC 文件1.3 准备 Python 环境1.4 构建 RPM 包1.5 安装、卸载 RPM 包1.5.1 安装rpm包1.5.2 查找刚刚安装rpm包1.5.3 卸载刚刚安装的rpm包 二、使用rpmbuild将docker离线安装包打成rpm包2.1 准备打包环境2.2 创建 docker 安装包的 SPEC 文件2.3 准备 docker安装包 环境2.4 构建 RPM 包2.5 安装、卸载 RPM 包2.5.1 安装rpm包2.5.2 查找刚刚安装rpm包2.5.3 卸载刚刚安装的rpm包 三、相关文章 前言 最近因为遇到一个服务器受系统限制只能上传rpm包才能使用而我们的服务都是文件那么怎么将文件都打成rpm包呢我也是找了好几个终于找到了一个简单好用的打包方式下面来给大家讲解一下部署及打包、安装 rpm是什么呢 rpm是一种安装包的格式。就像在Windows系统上我们常见的安装包格式是exe和msi一样在linux上常见的安装包格式是deb和rpm。一般在红帽系列的系统上不支持deb所以我们需要将程序打包成rpm安装。 本文已docker离线安装包及python环境两种类型文件打包为例子将其打成rpm包并在新的服务器上安装
操作系统为Centos 7.6、中科方德开发版系统
一、使用rpmbuild将python环境及依赖包打成rpm包
在使用 rpmbuild 将 Python 环境打包成 RPM 包之前需要确保已经安装 rpmbuild 工具并配置好相关的 RPM 打包环境。以下是具体的步骤和说明
1.1 准备打包环境
首先确保安装了 rpmbuild可以通过以下命令安装
sudo yum install rpm-build -y
# 安装 rpmdevtools
yum install rpmdevtoolsrpmdevtools为开发者提供了极大的便利用于制作RPM包涵盖了从创建rpmbuild开发树、MD5验证、spec文件的生成到解压归档文件、归档文件前后版本对比diff等一系列功能。
创建打包文件夹
创建打包文件夹有两种方法
方法一使用命令 rpmdev-setuptree 来创建但是创建的文件夹是在用户主目录home如果是root就是在root下我们可以将rpmbuild整个文件夹拷贝到项目文件夹这样可以方便我们项目管理。
方法二手动的去创建文件夹具体文件夹结构可以参考下面的目录树
# 方法一使用命令创建
rpmdev-setuptree# 方法二手动创建文件夹
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}# 目录树
rpmbuild- BUILD // 编译时用到的暂存目录- RPMS // 打包后生成的 rpm 包会放在这里- SOURCES // 源码压缩包- SPECS // 放 xx.spec 文件- SRPMS // 打包后生成的 srpm 包会放在这里 1.2 创建 Python 环境的 SPEC 文件
在 ~/rpmbuild/SPECS 目录中创建一个 .spec 文件用于定义 RPM 包的相关信息例如 python_env.spec。以下是一个基本的 spec 文件模板
或者使用rpmdev-newspec python_env.spec命令创建*.spec模板
Name: python_env
Version: 1.0
Release: 1%{?dist}
Summary: Python Environment PackageLicense: YourLicense
Source0: %{name}-%{version}.tar.gz%description
This package provides a Python environment including dependencies.%prep
# 静默模式解压并进入解压后的目录常用%setup -q%build
# 编译过程%install
# 安装过程
# 假设你已经将Python环境打包为.tar.gz文件将其解压到 /opt/
tar -xzvf %{SOURCE0} -C %{buildroot}/opt/%files
/opt/python_env/*%changelog
* Tue Nov 12 2024 Your Name youremailexample.com - 1.0-1
- Initial package for Python environment以下是这个 RPM SPEC 文件的配置内容的详细解析 基本配置信息 Name: python_env 定义了 RPM 包的名称这里指定为 python_env。 Version: 1.0 指定了 RPM 包的版本号。在后续版本更新中可以根据需要调整这个数字。 Release: 1%{?dist} 定义了 RPM 包的发布版本1 表示初次发布%{?dist} 会自动添加当前的发布版本分发标记如 .el7 表示适用于 CentOS 7。 Summary: Python Environment Package 这是一个简短的描述用于概括 RPM 包的内容。 License: YourLicense 指定了软件包的许可证。这里应替换为实际的许可证名称如 MIT、GPL 等。 Source0: %{name}-%{version}.tar.gz 定义了源代码文件的名称通常与 SPEC 文件同名格式为 Name-Version.tar.gz。%{name} 和 %{version} 会分别替换为 python_env 和 1.0因此实际值为 python_env-1.0.tar.gz。
包的详细描述
%description 该字段提供了包的详细描述将会显示在 RPM 的信息中。这里说明此包包含了 Python 环境及其依赖项。
构建和安装过程 %prep 这个部分用于准备构建环境通常会执行一些解压缩或预处理操作。此例中注释提到可以在此处解压环境包但没有实际命令。 %build 定义了构建过程中需要执行的操作例如编译代码。但对于不需要编译的包这部分可以为空。 %install 在安装阶段中指定了将内容安装到目标目录的操作。tar -xzvf %{SOURCE0} -C %{buildroot}/opt/python/将 Source0即 python_env-1.0.tar.gz解压到安装路径中以便包含完整的 Python 环境。
包含的文件
%files 指定在安装包中包含哪些文件。/opt/python_env/*将 /opt/python_env/ 中的所有内容添加到最终生成的 RPM 包中。
变更日志
%changelog 记录包的变更历史。每条日志包括日期、作者、版本及更新说明。在此例中 日期是 2024 年 11 月 12 日作者是 Your Name youremailexample.com更新描述是 “Initial package for Python environment”表示首次打包。
这个 SPEC 文件的作用是将 Python 环境打包为一个 RPM安装时会解压到指定目录并可方便安装在其他系统上。
1.3 准备 Python 环境
可以使用 virtualenv 或 venv 来创建 Python 虚拟环境并安装所需的库然后将整个环境打包为 .tar.gz 文件例如
# 创建python3虚拟环境
python3 -m venv python_env【要创建的虚拟环境名称也就是到时候打包的名称】
# 激活python3虚拟环境
source python_env/bin/activate
# 然后就可以在虚拟环境里安装需要的东西了。安装完之后就可以退出虚拟环境打包了
# 打包python虚拟环境格式为包名-版本.tar.gz版本为spec文件里写的版本
tar -czvf python_env-1.0.tar.gz python_env
# 将打好的包移动到rpmbuild/SOURCES/下用于打包rpm文件
mv python_env-1.0.tar.gz ~/rpmbuild/SOURCES/1.4 构建 RPM 包
使用以下命令在 rpmbuild 环境中创建 RPM 包
rpmbuild -ba ~/rpmbuild/SPECS/python_env.spec执行后生成的 RPM 包会保存在 ~/rpmbuild/RPMS/noarch/ 目录中。
noarch是根据你系统生成的x86的就是x86_64。
1.5 安装、卸载 RPM 包
首先要将打的rpm包上传到服务器上
1.5.1 安装rpm包
默认安装路径是你写的SPEC文件里的路径【本文是/opt/】
rpm -ivh python_env-1.0-1.noarch.rpm
# 强制安装
rpm -ivh python_env-1.0-1.noarch.rpm --nodeps1.5.2 查找刚刚安装rpm包
rpm -qa | grep python_env-1.01.5.3 卸载刚刚安装的rpm包
rpm -e python_env-1.0-1.x86_64
# 强制卸载
rpm -e python_env-1.0-1.x86_64 --nodeps二、使用rpmbuild将docker离线安装包打成rpm包
在使用 rpmbuild 将 docker离线安装包打包成 RPM 文件之前需要确保已经安装 rpmbuild 工具并配置好相关的 RPM 打包环境。以下是具体的步骤和说明
2.1 准备打包环境
首先确保安装了 rpmbuild可以通过以下命令安装
sudo yum install rpm-build -y
# 安装 rpmdevtools
yum install rpmdevtoolsrpmdevtools为开发者提供了极大的便利用于制作RPM包涵盖了从创建rpmbuild开发树、MD5验证、spec文件的生成到解压归档文件、归档文件前后版本对比diff等一系列功能。
创建打包文件夹
创建打包文件夹有两种方法
方法一使用命令 rpmdev-setuptree 来创建但是创建的文件夹是在用户主目录home如果是root就是在root下我们可以将rpmbuild整个文件夹拷贝到项目文件夹这样可以方便我们项目管理。
方法二手动的去创建文件夹具体文件夹结构可以参考下面的目录树
# 方法一使用命令创建
rpmdev-setuptree# 方法二手动创建文件夹
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}# 目录树
rpmbuild- BUILD // 编译时用到的暂存目录- RPMS // 打包后生成的 rpm 包会放在这里- SOURCES // 源码压缩包- SPECS // 放 xx.spec 文件- SRPMS // 打包后生成的 srpm 包会放在这里 2.2 创建 docker 安装包的 SPEC 文件
在 ~/rpmbuild/SPECS 目录中创建一个 .spec 文件用于定义 RPM 包的相关信息例如 docker.spec。以下是一个基本的 spec 文件模板
或者使用rpmdev-newspec docker.spec命令创建*.spec模板
Name: docker
Version: 24.0.5
Release: 1%{?dist}
Summary: docker install PackageLicense: MIT
# 尽量不要使用中文名
Source0: %{name}%{version}.zip%description
This install docker package.%prep
# 这里可以解压环境包%build
# 打包需要的构建操作可以在这里定义%install
# 假设你已经将把docker安装包已经打好了为.zip文件将其解压到 /opt/
unzip %{SOURCE0} -d %{buildroot}/opt/%files
/opt/docker24.0.5/*%changelog
* Tue Nov 14 2024 Your Name youremailexample.com - 1.0-1
- Initial package for Python environment2.3 准备 docker安装包 环境
将docker的安装包放到rpmbuild/SOURCES/下
# 复制过去
cp -ar docker24.0.5.zip ~/rpmbuild/SOURCES/
# 或者移动过去
mv docker24.0.5.zip ~/rpmbuild/SOURCES/2.4 构建 RPM 包
使用以下命令在 rpmbuild 环境中创建 RPM 包
rpmbuild -ba ~/rpmbuild/SPECS/docker.spec执行后生成的 RPM 包会保存在 ~/rpmbuild/RPMS/noarch/ 目录中。
noarch是根据你系统生成的x86的就是x86_64。
2.5 安装、卸载 RPM 包
首先要将打的rpm包上传到服务器上
2.5.1 安装rpm包
默认安装路径是你写的SPEC文件里的路径【本文是/opt/】
rpm -ivh docker-24.0.5-1.nfs.x86_64.rpm
# 强制安装
rpm -ivh docker-24.0.5-1.nfs.x86_64.rpm --nodeps2.5.2 查找刚刚安装rpm包
rpm -qa | grep docker-24.0.52.5.3 卸载刚刚安装的rpm包
rpm -e docker-24.0.5-1.nfs.x86_64
# 强制卸载
rpm -e docker-24.0.5-1.nfs.x86_64 --nodeps三、相关文章
文章标题文章链接Linux如何将文件或目录打成rpm包 – fpm打包详解https://blog.csdn.net/liu_chen_yang/article/details/134270559Linux如何将文件或目录打成rpm包-- rpmbuild打包详解https://blog.csdn.net/liu_chen_yang/article/details/143715019 希望大家多多支持我们一起进步 如果文章对你有帮助的话欢迎 点赞 评论 收藏 ⭐️ 加关注