制做RPM包

[[email protected] ~]#  yum install pcre-devel zlib-devel openssl-devel make cmake gcc gcc-c++ bison ncurses-devel rpm-build rpmdevtools -y
[[email protected] ~]# rpmdev-setuptree
#直接执行rpmdev-setuptree就会新建工作目录和.rpmmacros文件
[[email protected] ~]# cat .rpmmacros
%_topdir      %(echo $HOME)/rpmbuild
%_smp_mflags  -j3
%__arch_install_post   /usr/lib/rpm/check-rpaths   /usr/lib/rpm/check-buildroot

下载源码包到:SOURCE中

[[email protected] x86_64]# ls /root/rpmbuild/
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
[[email protected] x86_64]# ls /root/rpmbuild/SOURCES/
nginx-1.4.4.tar.gz  nginx.conf

制作xxx.spec文件在 SPECS中

[[email protected] x86_64]# ls /root/rpmbuild/SPECS/
nginx.spec
[[email protected] x86_64]# cat /root/rpmbuild/SPECS/nginx.spec
Name: nginx
Version: 1.4.4
Release: 1%{?dist}
Summary: nginx rmp package production
Group: Applications/Archiving
License: GPLv2
URL: http://www.nginx.org
Source: http://nginx.org/download/nginx-1.4.4.tar.gz
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: gcc
Requires: openssl,openssl-devel,pcre-devel,pcre
%description
Custom nginx rpm package
%prep
rm -rf $RPM_BUILD_DIR/nginx-1.4.4
tar fx $RPM_SOURCE_DIR/nginx-1.4.4.tar.gz
%build
cd nginx-1.4.4
./configure --user=www --group=www --prefix=/home/application/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module
make %{?_smp_mflags}
%install
rm -rf %{buildroot}
cd nginx-1.4.4
make install DESTDIR=%{buildroot}
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
/home/application/nginx

xxx.spec文件解释:

#:以#开头是注释,rpm会忽略它。
Summary:   简单描述软件。
Name :    定义rpm的名称。
Version:   定义软件版本
Release:   发行版本
License:   定义许可证
Group:    软件分类
Source:   源码下载地址
URL:      源码相关网站
Distribution: 发行版系列
Packager: 打包人的信息
%description:软件详细描述,可多行
%prep :软件编译之前的处理,如解压。
%build :开始编译软件,如make
%install :开始安装软件,如make install
%files :指定哪些文件需要被打包,如/usr/local/nginx
%preun :定义卸载之前的动作,如杀掉进程。

开始制作:

[[email protected] x86_64]# rpmbuild -bb  /root/rpmbuild/SPECS/nginx.spec

生成RPM包:

[[email protected] x86_64]# tree /root/rpmbuild/RPMS/
/root/rpmbuild/RPMS/
└── x86_64
    ├── nginx-1.4.4-1.el6.x86_64.rpm
    └── nginx-debuginfo-1.4.4-1.el6.x86_64.rpm

1 directory, 2 files
时间: 2024-08-10 09:33:41

制做RPM包的相关文章

制做rpm包工具fpm安装

安装ruby模块 [[email protected] ~]# yum install ruby rubygems ruby-devel -y # 查看当前使用的rubygems仓库 [[email protected] ~]# gem sources list *** CURRENT SOURCES *** http://rubygems.org/ 添加国内的 淘宝的Rubygems仓库 [[email protected] ~]# gem sources --add http://gems.

linux制做RPM包

制作rpm包 1.制作流程 1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制作的对象,是源码包编译打包还只是一些库文件打包 3)编写SPEC文件 4)开始制作 1.2 RPM制作过程 1)读取并解析 filename.spec 文件 2)运行 %prep 部分来将源代码解包到一个临时目录,并应用所有的补丁程序. 3)运行 %build 部分来编译代码. 4)运行 %ins

linux软件包管理之一(rpm包管理)

开场白 1.软件的安装卸载是很平常的事情,但是在linux上面却也这么的不简单.Linux的其中一个哲学思想就是 一个程序只做一件事,并且做好. 组合小程序来完成复杂任务.这样做有很多好处.但世界上的东西总是两面的,有得必有失.各个小程序之间往往会存在着复杂的依赖关系. 2.再往前走一步.软件最初的安装方式只有一种,那就是源代码编译安装,这种方式安装的软件更贴近本机的系统运行环境,但也更复杂.不仅要解决软件之间的依赖关系(所依赖的软件还要再编译安装),还要配置开发编译环境(可能会抓狂的),一切都

LAMP基于RPM包搭建

一:简述 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准. HTTP是一个客户端和服务器端请求和应答的标准(TCP).客户端是终端用户,服务器端是网站.通过使用Web浏览器.网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求.(我们称这个客户端)叫用户代理(user agent).应答的服务器上存储着(一些)资源,比如HTML文件和图像.(我们称)这个

RPM包安装LAMP及httpd虚拟机SSL实现

简单罗列基础命令,只分享我的想法! 目的:通过RPM包安装LAMP,提供两个虚拟主机,一个用于WordPress,一个用于phpMyAdmin,为后一个提供ssl访问方式. 环境是vmware的虚拟机CentOS6.6,实机win7,后面的测试会用到win7上面的浏览器,已经把虚拟机中CentOS中的两个httpd的虚拟机的名字加入到win7的hosts文件中. 1.  修改yum源,指向CentOS的系统光盘,需要使用RPM包,配置如下: 图1 2.  安装apache的httpd,直接yum

rpm包安装mysql的常见问题

我们在Linux系统中,如果要使用关系型数据库的话,基本都是用的mysql,而且以往7以下版本的centos 系统都是默认的集成有mysql.然而对于现在最新的centos7系统来说,已经不支持mysql数据库,它默认 内部集成了maridb,如果我们想要使用 mysql 的话,就要先将原来的maridb卸载掉,不然会引起冲突. 注:这里说的冲突是指我们用rpm包的方式安装mysql会产生错误:mariadb-libs is obsoleted by mysql**.然而笔者使用源码包进行安装时

Linux-rpm命令-查看已安装软件包信息及未安装rpm包信息

博文说明[前言]: 本文将通过个人口吻介绍rpm命令,包括查看已安装软件包信息及未安装rpm包信息. 在目前时间点[2017年6月12号]下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容. 正文: RPM常用命令中的各种缩写选项,其实是有依据的,弄明白之后,其实很好玩,我们可以参考下方:q=queryp=packagei=infol=listf=filec=conf... 一:查看系统已

自己编译生成k8s的rpm包

我指的是以下几个安装包: -rw-r--r--. 1 root root 8976134 Jul 13 10:19 kubeadm-1.7.0-0.x86_64.rpm-rw-r--r--. 1 root root 9362110 Jul 13 10:19 kubectl-1.7.0-0.x86_64.rpm-rw-r--r--. 1 root root 17238982 Jul 13 10:19 kubelet-1.7.0-0.x86_64.rpm-rw-r--r--. 1 root root

通过nginx源码包制作rpm包

目录 目录... 1 版权声明:... 2 文档信息:... 2 一.通过nginx源码包制作rpm包... 2 1.制作前环境准备:... 3 2.创建普通用户... 3 二.编写spec规则... 3 1.在模板里添加规则... 3 2.关于保存*.spec报错的解决... 4 2.1解决办法:... 5 2.2使用rpmbuild命令生成 rpm包... 5 三.在其他主机测试rpm包... 5 1. 需要按照依赖包... 5 2. 上传并安装nginxRPM包... 5 3. 查看端口开