`
lht
  • 浏览: 199779 次
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
最近需要将一些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拷贝就可以了。
分享到:
评论

相关推荐

    ARM架构和X86_64架构rpmbuild制作openssh和openssl的rpm包

    在实际应用中,理解并熟练掌握`rpmbuild`以及跨架构编译技术对于IT专业人员来说是非常有价值的,它有助于提高软件的移植性,降低维护成本,确保系统的稳定性和安全性。同时,对`openssh`和`openssl`这两个核心组件的...

    RPM包rpmbuild SPEC文件深度说明

    在实际应用中,我们还需要关注RPM包的签名,确保安全性和完整性。此外,还可以利用`%if`条件语句实现不同操作系统或架构下的差异化构建,以及通过`%config`、`%doc`等特殊标记来控制文件的安装属性。 总而言之,`...

    rpmbuild 打成成功的demoe testrpm

    在CentOS系统中,RPM结合`rpmbuild`工具可以用来创建自定义的软件包,尤其对于Qt应用程序的打包非常有用。`rpmbuild`是一个命令行工具,可以帮助开发者构建符合RPM规范的软件包。 标题"rpmbuild 打成成功的demoe ...

    anacheAnt-ImageMagic-rpmbuild-arm.zip

    标题中的"anacheAnt-ImageMagic-rpmbuild-arm.zip"指示了这是一个针对ARM架构的RPM打包文件,其中包含了Apache Ant和ImageMagick两个重要的软件工具。让我们深入了解一下这两个工具以及它们在ARM架构上的应用。 ...

    kernel RPM包编译文档.docx

    Linux内核编译文档 根据提供的文件信息,本文档旨在...本文档提供了详细的Linux内核编译指南,包括rpmbuild工具的使用、SRPM和SPEC文件的应用、编译Linux内核、修改源代码和制作patch、应用编译好的RPM包等知识点。

    rpmsbuild 打包成功的例子

    在IT行业中,`rpmbuild` 是一个用于创建RPM软件包的强大工具,它遵循RPM打包规范,广泛应用于Linux发行版,如CentOS。在这个例子中,我们看到`show-timer1.0.0`是一个成功使用`rpmbuild`进行打包的应用程序,它在...

    rpm安装包的制作1

    `rpmbuild`工具会创建一个工作目录结构,包括`BUILD`, `BUILDROOT`, `RPMS`, `SOURCES`, `SPECS`和`SRPMS`等子目录,它们各自有不同的用途。 - **BUILD**:存放源代码解压缩后的文件,是构建过程的临时工作区。 -...

    Maven 与 Ant 之比较

    它们的主要功能是管理和自动化项目的构建过程,包括编译源代码、运行测试、打包应用以及部署。通过对两者进行对比,我们可以更好地理解它们各自的优势和适用场景。 描述中的链接指向了一篇博客文章,虽然具体内容...

    Redis数据类型.docx

    这些数据类型的特性使得Redis成为处理各种数据结构的理想选择,广泛应用于缓存、消息队列、发布订阅系统等多种场景。 1. String(字符串) - 字符串是最基础的数据类型,可以存储任意的二进制数据,如文本、图片等...

    opencast-rpmbuild:用于Opencast的RPM构建基础架构

    RPM是一种软件包管理器,广泛应用于Fedora、CentOS等基于Red Hat的Linux发行版,它允许用户安装、升级和管理软件包。 **RPM构建过程** 1. **自动化脚本**:Opencast-rpmbuild存储库包含了用于构建RPM的自动化脚本...

    CentOS系统rpm打包简易教程

    - `-bp`:仅进行准备阶段,解压缩源码并应用补丁。 - `-bc`:完成准备并进行编译。 - `-bi`:编译并安装到`BUILDROOT`目录。 - `-bl`:检查`%files`部分,确保所有文件都在预期位置。 - `-ba`:构建源码和二进制RPM...

    java 打包rpm打包文档.zip

    在IT行业中,将应用程序打包成RPM(Red Hat Package Manager)格式是常见的部署方式,尤其在Linux系统中。本文档主要关注如何使用Java技术,特别是SpringBoot应用,将其打包成RPM安装包,并处理升级过程中的问题。...

    ImageMagic 开源代码

    利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存,对图片的操作,即可以通过...

    rpm的php+apache安装包

    4. **MySQL**:MySQL是一个关系型数据库管理系统,广泛应用于Web应用程序,因为它速度快、性能高且易于管理。在LAMP环境中,PHP经常通过MySQLi或PDO扩展与MySQL进行交互,实现数据的存取。 5. **LAMP环境搭建**:要...

    electronic-vue-boilerplate-2019:最小的Electron + Vue应用

    电子vue样板-2019yarn install-all 将安装电子侧部门,然后安装前端侧部门。yarn dev 您可以在此Electron应用程序中对前端Vue应用程序使用热重载... 要构建rpm,需要可执行rpmbuild,请安装: $ sudo apt-get install

    electron-installer-redhat:为您的Electron应用程序创建Red Hat RPM软件包

    此工具需要Node 10或更高版本以及rpmbuild 4.13或更高版本来构建.rpm软件包。 注意:由于具有因此需要RPM 4.13.0或更高版本。 在Fedora上,您可以执行以下操作: $ sudo dnf install rpm-build 在Debian / ...

    华为认证HCIP鲲鹏知识点整理

    - **RPMBUILD参数及指令**:考生需要熟悉`rpmbuild`工具的基本用法,特别是它支持的各种参数和指令。`rpmbuild`是Red Hat Package Manager (RPM)的一个实用工具,用于创建和管理RPM包。 - **SPEC文件编写**:SPEC...

Global site tag (gtag.js) - Google Analytics