最近需要将一些php和python的程序打包成rpm包,方便在服务器上面安装,并且安装后自动添加的init.d的启动过程中。需要大致执行下面的过程:
1 rpmbuild 环境准备
1.1 自定义rpmbuild宏
$ vi ~/.rpmmacros
%_topdir /home/lht/rpmbuild
%debug_package %{nil}
%_unpackaged_files_terminate_build 0
1.2 建立rpmbuild需要的目录
在$home目录下面建立下面的目录结构
$ mkdir -p rpmbuild/BUILD rpmbuild/RPMS/athlon rpmbuild/RPMS/i386 rpmbuild/RPMS/i486 rpmbuild/RPMS/i586 rpmbuild/RPMS/i686 rpmbuild/RPMS/noarch rpmbuild/SOURCES rpmbuild/SPEC rpmbuild/SRPMS
2 创建源代码包和编写spec文件
2.1 创建源代码包
$ cd ~/rpmbuild/SOURCES
$ mkdir mirchgr; cd mirchgr
$ mkdir -p etc/init.d etc/mirchgr usr/bin var/log/mirchgr var/lib/mirchgr
拷贝要安装的文件到相应的目录中, 并打包为tgz文件
$ cd ..
$ tar czf mirchgr.tgz mirchgr
2.2 创建spec文件
$ cd ~/rpmbuild/SPEC
$ vi mirchgr.spec
Name: mirchgr
Version: 1.0.0
Release: 1%{?dist}
Summary: this is a test rpm spec
License: copyright by lht
Group: Applications
URL: http://lht.iteye.com
Source0: %{name}.tgz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Prereq: /sbin/chkconfig
Requires: MySQL-python python-sqlite2
%description
A test gateway for web site, game server and the Internet applications
%prep
%setup -q -n %{name}
%build
/usr/bin/python -m compileall usr/bin/
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/
mv usr etc var $RPM_BUILD_ROOT
mv $RPM_BUILD_ROOT/usr/bin/%{name}.pyc $RPM_BUILD_ROOT/usr/bin/%{name}
rm -f $RPM_BUILD_ROOT/usr/bin/%{name}.py*
%clean
rm -rf $RPM_BUILD_ROOT
%pre
%post
/sbin/chkconfig --add %{name}
/sbin/chkconfig --level 345 %{name} on
%postun
%files
/etc/init.d/%{name}
/usr/bin/%{name}
%defattr(-,www,www)
%dir
/var/log/%{name}
/var/lib/%{name}
%config
/etc/%{name}/logging.ini
/etc/%{name}/conf.py
%changelog
* Thu Aug 5 2009 lht 1.0.0.1-rhel5
first release
3 构建
$ rpmbuild -ba --clean mirchgr.spec
然后将生成的rpm和src.rpm拷贝就可以了。
分享到:
相关推荐
在实际应用中,理解并熟练掌握`rpmbuild`以及跨架构编译技术对于IT专业人员来说是非常有价值的,它有助于提高软件的移植性,降低维护成本,确保系统的稳定性和安全性。同时,对`openssh`和`openssl`这两个核心组件的...
在实际应用中,我们还需要关注RPM包的签名,确保安全性和完整性。此外,还可以利用`%if`条件语句实现不同操作系统或架构下的差异化构建,以及通过`%config`、`%doc`等特殊标记来控制文件的安装属性。 总而言之,`...
在CentOS系统中,RPM结合`rpmbuild`工具可以用来创建自定义的软件包,尤其对于Qt应用程序的打包非常有用。`rpmbuild`是一个命令行工具,可以帮助开发者构建符合RPM规范的软件包。 标题"rpmbuild 打成成功的demoe ...
标题中的"anacheAnt-ImageMagic-rpmbuild-arm.zip"指示了这是一个针对ARM架构的RPM打包文件,其中包含了Apache Ant和ImageMagick两个重要的软件工具。让我们深入了解一下这两个工具以及它们在ARM架构上的应用。 ...
Linux内核编译文档 根据提供的文件信息,本文档旨在...本文档提供了详细的Linux内核编译指南,包括rpmbuild工具的使用、SRPM和SPEC文件的应用、编译Linux内核、修改源代码和制作patch、应用编译好的RPM包等知识点。
在IT行业中,`rpmbuild` 是一个用于创建RPM软件包的强大工具,它遵循RPM打包规范,广泛应用于Linux发行版,如CentOS。在这个例子中,我们看到`show-timer1.0.0`是一个成功使用`rpmbuild`进行打包的应用程序,它在...
`rpmbuild`工具会创建一个工作目录结构,包括`BUILD`, `BUILDROOT`, `RPMS`, `SOURCES`, `SPECS`和`SRPMS`等子目录,它们各自有不同的用途。 - **BUILD**:存放源代码解压缩后的文件,是构建过程的临时工作区。 -...
它们的主要功能是管理和自动化项目的构建过程,包括编译源代码、运行测试、打包应用以及部署。通过对两者进行对比,我们可以更好地理解它们各自的优势和适用场景。 描述中的链接指向了一篇博客文章,虽然具体内容...
这些数据类型的特性使得Redis成为处理各种数据结构的理想选择,广泛应用于缓存、消息队列、发布订阅系统等多种场景。 1. String(字符串) - 字符串是最基础的数据类型,可以存储任意的二进制数据,如文本、图片等...
RPM是一种软件包管理器,广泛应用于Fedora、CentOS等基于Red Hat的Linux发行版,它允许用户安装、升级和管理软件包。 **RPM构建过程** 1. **自动化脚本**:Opencast-rpmbuild存储库包含了用于构建RPM的自动化脚本...
- `-bp`:仅进行准备阶段,解压缩源码并应用补丁。 - `-bc`:完成准备并进行编译。 - `-bi`:编译并安装到`BUILDROOT`目录。 - `-bl`:检查`%files`部分,确保所有文件都在预期位置。 - `-ba`:构建源码和二进制RPM...
在IT行业中,将应用程序打包成RPM(Red Hat Package Manager)格式是常见的部署方式,尤其在Linux系统中。本文档主要关注如何使用Java技术,特别是SpringBoot应用,将其打包成RPM安装包,并处理升级过程中的问题。...
利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存,对图片的操作,即可以通过...
4. **MySQL**:MySQL是一个关系型数据库管理系统,广泛应用于Web应用程序,因为它速度快、性能高且易于管理。在LAMP环境中,PHP经常通过MySQLi或PDO扩展与MySQL进行交互,实现数据的存取。 5. **LAMP环境搭建**:要...
电子vue样板-2019yarn install-all 将安装电子侧部门,然后安装前端侧部门。yarn dev 您可以在此Electron应用程序中对前端Vue应用程序使用热重载... 要构建rpm,需要可执行rpmbuild,请安装: $ sudo apt-get install
此工具需要Node 10或更高版本以及rpmbuild 4.13或更高版本来构建.rpm软件包。 注意:由于具有因此需要RPM 4.13.0或更高版本。 在Fedora上,您可以执行以下操作: $ sudo dnf install rpm-build 在Debian / ...
- **RPMBUILD参数及指令**:考生需要熟悉`rpmbuild`工具的基本用法,特别是它支持的各种参数和指令。`rpmbuild`是Red Hat Package Manager (RPM)的一个实用工具,用于创建和管理RPM包。 - **SPEC文件编写**:SPEC...