rpmbuild

rpmbuild中文手册(转载)

偶尔善良 提交于 2020-04-05 15:04:52
RPMBUILD(8) System Manager's Manual RPMBUILD(8) 名字 rpmbuild - 创建 RPM 包 语法 创建包 rpmbuild {-ba|-bb|-bp|-bc|-bi|-bl|-bs} [rpmbuild-options] SPECFILE ... rpmbuild {-ta|-tb|-tp|-tc|-ti|-tl|-ts} [rpmbuild-options] TARBALL ... rpmbuild {--rebuild|--recompile} SOURCEPKG ... 其他 rpmbuild --showrc rpmbuild-options [--buildroot DIRECTORY] [--clean] [--nobuild] [--rmsource] [--rmspec] [--short-circuit] [--noclean] [--nocheck] [--target PLATFORM] 描述 rpmbuild 用于创建软件的二进制包和源代码包。 一个"包"包括文件的归档以及用来安装和卸载归档中文件的元数据。 元数据包括辅助脚本、文件属性、以及相关的描述性信息。 软件包有两种: 二进制包,用来封装已经编译好的二进制文件; 源代码包,用来封装源代码和要构建二进制包需要的信息。 必须选择下列"模式"之一: (1)从

Python 3.5 create .rpm with pyinstaller generated executable

泪湿孤枕 提交于 2020-03-18 04:55:29
问题 I've got a build generated with a pyinstaller. I need to create .rpm package which will put the executable into the /usr/bin/ and create a systemd service which will run that executable. I found this https://docs.python.org/3/distutils/builtdist.html and https://docs.python.org/2.0/dist/creating-rpms.html However it doesn't give me a full picture. Is it possible to make it? What toolset do i need to use? (Basically, how to make it). If possible - sample code 回答1: First of all, forget about

《云计算》-Nginx-制作nginx的RPM包

依然范特西╮ 提交于 2020-03-06 23:07:58
制作nginx的RPM包 3.1 问题 本案例使用nginx-1.12.2版本的源码软件,生产对应的RPM包软件,具体要求如下: 软件名称为nginx 软件版本为1.12.2 RPM软件包可以查询描述信息 RPM软件包可以安装及卸载 3.2 方案 安装rpm-build软件包,编写SPEC配置文件,创建新的RPM软件包。 配置文件中的描述信息如表-2: 表-2 SPEC描述信息 3.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:安装rpm-build软件 1)安装rpm-build软件包 [root@web1 ~]# yum -y install rpm-build 2)生成rpmbuild目录结构 [root@web1 ~]# rpmbuild -ba nginx.spec //会报错,没有文件或目录 [root@web1 ~]# ls /root/rpmbuild //自动生成的目录结构 BUILD BUILDROOT RPMS SOURCES SPECS SRPMS 3)准备工作,将源码软件复制到SOURCES目录 [root@web1 ~]# cp nginx-1.12.2.tar.gz /root/rpmbuild/SOURCES/ 4)创建并修改SPEC配置文件 [root@web1 ~]# vim /root/rpmbuild/SPECS/nginx.spec

如何制作一个 RPM 文件

落爺英雄遲暮 提交于 2020-02-27 23:04:52
它们是包含文件和元数据的档案文件。当安装或卸载 RPM 时,此元数据告诉 RPM 在哪里创建或删除文件。正如你将在上一篇文章中记住的,元数据还包含有关“依赖项”的信息,它可以是“运行时”或“构建时”的依赖信息。 例如,让我们来看看 fpaste。你可以使用 dnf 下载该 RPM。这将下载 Fedora 存储库中可用的 fpaste 最新版本。在 Fedora 30 上,当前版本为 0.3.9.2: $ dnf download fpaste ... fpaste-0.3.9.2-2.fc30.noarch.rpm 由于这是个构建 RPM,因此它仅包含使用 fpaste 所需的文件: $ rpm -qpl ./fpaste-0.3.9.2-2.fc30.noarch.rpm /usr/bin/fpaste /usr/share/doc/fpaste /usr/share/doc/fpaste/README.rst /usr/share/doc/fpaste/TODO /usr/share/licenses/fpaste /usr/share/licenses/fpaste/COPYING /usr/share/man/man1/fpaste.1.gz 源 RPM 在此链条中的下一个环节是源 RPM。Fedora 中的所有软件都必须从其源代码构建。我们不包括预构建的二进制文件。因此

rpm重新打包

…衆ロ難τιáo~ 提交于 2020-02-11 06:48:23
rpm重新打包 如需转载请标明出处: http://blog.csdn.net/itas109 QQ技术交流群: 129518033 文章目录 rpm重新打包 @[toc] 前言 1.所需工具 2.解包 2.1 创建打包目录 2.2 提取SPEC文件 2.3 提取rpm文件 3.自定义修改spec文件 4.打包 5.其他 5.1 rpm和deb的转换 相关问题: 1.rpm打包 2.spec打包脚本文件 3.rpm提取spec 4.deb和rpm转化 5.rpm解包 前言 rpm是Red-Hat Package Manager(RPM软件包管理器)的缩写,类似于windows下的msi安装包等。 rpm重新打包的目的主要如下: 安装包不完全符合用途 将源码编译的结果快速生成安装包 1.所需工具 所需主要工具如下: rpm-build (打包) rpmrebuild (解包) 安装: sudo yum install rpm-build rpmrebuild 2.解包 以下以redis-5.0.5-1.fc27.x86_64.rpm进行说明。 2.1 创建打包目录 rpmrebuild -p redis-5.0.5-1.fc27.x86_64.rpm 执行后会在增加 ~/rpmbuild 目录 2.2 提取SPEC文件 rpmrebuild -s redis.spec -p

MySQL5.6.12 rpm制作及及自动化部署安装

◇◆丶佛笑我妖孽 提交于 2020-01-26 01:06:27
转自:http://blog.itpub.net/29254281/viewspace-1268918/ 首先,下载rpmbuild yum install rpm-build -y 它是Red Hat用于打RPM包的工具. 安装之后重启计算机,可以看到/root/rpmbuild目录下有如下文件夹 这个工具打包的过程大致如下, 编写spec指定打包的过程 将源码压缩包放在SOURCES目录下, 将源码解压缩到BUILD目录,执行make命令 将make install 的结果放在BUILDROOT目录下, 最后将BUILDROOT下编译好的二进制文件制作成RPM包。 并且可以指定在RPM安装之前,安装之后,卸载等过程执行的命令 首先,下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.14.tar.gz 并将其复制到指定的目录 /root/rpmbuild/SOURCES/mysql-5.6.14.tar.gz 安装编译MySQL需要的依赖包 yum -y install make gcc-c++ cmake bison-devel ncurses-devel 编写spec脚本 vim mysql.spec Name: MySQL Version: 5.6.14 Release: 1%{?dist} Summary:

linux RPM manager

感情迁移 提交于 2020-01-26 01:05:57
RPM manage:rpm2cpio package_name | cpio -id #将一个rpm包解压至当前目录rpm -qi package_name #查看一个已安装的rpm包信息rpm -qpi package_name #查看一个文件系统上的制定rpm包信息rpm -Uvh package_name #升级一个rpm包rpm -e package_name #卸载rpm包 -ivh 显示详细信息 --nodpes 忽略依赖rpm -i package_name #安装rpm包 -ivh 显示详细信息 rpm -qd package_name #查看rpm包生成的文档路径rpm -qc package_name #查看rpm包生成的配置文件路径rpm -q --scripts package_name #查看安装rpm包前运行的脚本RPM Build:构建rpm需要创建指定的文件夹:BUILD BUILDROOT RPMS SOURCES SPECS SRPMS可以手动创建,也可以在任何目录下直接运行rpmbuild test.spec error: failed to stat /root/test.spec: 没有那个文件或目录虽然会报错,但是这时已经自动在当前目录下生成了rpmbuild目录结构了: rpmbuild ├── BUILD #当我们rpmbuild

把mysql5.7源码包生成rpm包

别说谁变了你拦得住时间么 提交于 2020-01-26 01:03:04
公司安装服务器 boos编译安装太慢 需要把mysql5.7生成rpm包 yum install rpm* rpm-build rpmdev* yum install -y gcc make gcc-c++ cmake bison-devel ncurses ncurses-devel bzip2-devel python-devel python-libs bzip2 libicu-devel 1.建立一个普通用户,有普通用户来制作rpm,用root的可能会因为代码问题导致毁灭的后果 useradd ibuler su - ibuler 2.确定我们在哪个目录下制作RPM,通常这个目录我们topdir,这个需要在宏配置文件中指定,这个配置文件称为macrofiles,它们通常为 /usr/lib/rpm/macros:/usr/lib/rpm/macros.*:~/.rpmmacros,这个在rhel 5.8中可以通过rpmbuild --showrc | grep macrofiles 查看,6.3的我使用这个找不到,但使用是一样的。你可以通过rpmbuild --showrc | grep topdir 查看你系统默认的工作车间 rpmbuild --showrc | grep topdir -14: _builddir %{_topdir}/BUILD -14:

Adding a patch using mock

不问归期 提交于 2020-01-25 04:24:12
问题 I am trying to create a rpm using mock. https://fedoraproject.org/wiki/Projects/Mock I am able to build an rpm through source rpm. Now I want to add a patch to this package and I have no idea how to proceed. Can you please let me know how can I go ahead with this? What is the way to modify/patch a package using mock? 回答1: The normal approach here is not to use mock to modify your package in any way. Mock is just a way to ensure that your package is built in a clean environment every time (a

Adding a patch using mock

爷,独闯天下 提交于 2020-01-25 04:24:07
问题 I am trying to create a rpm using mock. https://fedoraproject.org/wiki/Projects/Mock I am able to build an rpm through source rpm. Now I want to add a patch to this package and I have no idea how to proceed. Can you please let me know how can I go ahead with this? What is the way to modify/patch a package using mock? 回答1: The normal approach here is not to use mock to modify your package in any way. Mock is just a way to ensure that your package is built in a clean environment every time (a