文章目录

  • Linux下rpm打包
    • 案例:
    • 问题:
    • 方案:
    • 步骤:
      • 步骤一:安装rpm-build软件
      • 步骤二:使用配置文件创建rpm包
      • 步骤三:测试安装

Linux下rpm打包

rpm打包:把源码转换为rpm

为什么使用rpm打包

rpm不能定制(不能选择安装路径,或者一些模块化不能出现选择)

案例:

制作nginx的rpm包

问题:

使用nginx-1.20.1版本的源码软件,生成对应的rpm包软件,具体要求如下

  • 软件名称为nginx
  • 软件版本为1.20.1
  • rpm软件包可以查询描述信息
  • rpm软件包可以安装及卸载

方案:

安装rpm-build软件包,编写SPEC配置文件,创建新的rpm软件包,配置文件中的描述信息如下表所示

选项
Name Nginx
Version 1.20.1
Release 1
Summary Nginx is a web server software
License GPL
URL www.nginx.org
Source0 nginx-1.20.1.tar.gz
BuildRequires gcc pcre-devel zlib-devel openssl-devel
%description nginx {engine x}is an HTTP and reverse proxy server…

步骤:

步骤一:安装rpm-build软件

1)安装rpm-build软件

yum -y install rpm-build

2)生成rpmbuild目录结构

rpmbuild -ba nginx.spec   #会报错,为了生成下面的目录
ls /root/rpmbuild   #上述命令自动生成的目录
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
sources   #把目标的源码放到这个文件中
rpms    #rpm-build这个软件会把源码文件转成rpm格式存放到rpms这个文件中
specs   #rpm要求,配置要求在specs中

3)准备工作,将源码软件复制到sources目录

cp nginx-1.20.1.tar.gz /root/rpmbuild/SOURCES/
#这个软件包需要我们自己来提供,nginx软件包可以去官网下载

4)创建并修改spec配置文件

vim /root/rpmbuild/SPECS/nginx.spec  #扩展名必须为spec
#填写软件的基本信息
Name:nginx     #源码包软件名称
Version:1.20.1      #源码包软件的版本号
Release:        1%{?dist}   #制作的rpm包版本号
Summary:this is web server               #rpm软件的情况
#Group:              #组包 一般都注释
License:GPL                    #软件的协议
URL:www.nginx.com                       #网址
Source0:  nginx-1.20.1.tar.gz                       #源码包文件的全称
#BuildRequires: 因为nginx不需要依赖包,所以注释掉      #制作rpm时的依赖关系
#Requires:                    #安装rpm时的依赖关系
%description
this is web server        #软件的描述#源码的安装过程(源码转化为rpm的过程)
%post        #安装后脚本
useradd  nginx -s /sbin/nolongin  #非必须操作%prep   #准备工作
%setup -q     #自动解开tar包,并cd进入目录
%build        #编译安装
./configure --user=nginx
make %{?_smp_mflags}
%install
%make_install
%files
%doc     #需要打包的文件
/usr/local/nginx/*
%changelog

接上述的组包

把很多软件放到一个组,安装的时候可以直接安装这个组包,就能安装这个组包的所有软件

查看组包 yum grouplist
安装组包 yum groupinstall 组包名

步骤二:使用配置文件创建rpm包

1)安装依赖软件包

yum -y install gcc pcre-devel openssl-devel

2)rpmbuild创建rpm软件包

rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
ls /root/rpmbuild/RPMS/x86_64/
nginx-1.20.1-1.el8.x86_64.rpm            nginx-debugsource-1.20.1-1.el8.x86_64.rpm
nginx-debuginfo-1.20.1-1.el8.x86_64.rpm
第一个为我们做好的rpm包 ,第三个为我们的源码包

步骤三:测试安装

/usr/local/nginx/sbin/nginx -s stop
rm -rf /usr/local/nginx/*   #卸载我们服务器中的nginx,如果没有安装这一步,请忽略
rpm -ivh /root/rpmbuild/RPMS/x86_64/nginx-1.20.1-1.el8.x86_64.rpm
/usr/local/nginx/sbin/nginx   #开启服务
id nginx   #刚刚我们在配置文件中写了,安装完之后会创建用户
curl http://127.0.0.1/
yum info nginx
可以查看软件的信息,与我们刚才写的一致

Linux下rpm打包相关推荐

  1. rpm打包的流程包括以下哪些_Linux下RPM打包流程分享

    本文主要和大家分享Linux下RPM打包流程,希望能帮助到大家. 开始前的准备 安装rpmbuild软件包yum -y install rpm-build 生成相关目录 要生成rpm相关目录,可以手动 ...

  2. linux下rpm,yum学习

    linux下RPM及yum学习 linux中程序管理程序主要分为两类 dpkg(Debian Packager):debian,Ubuntu,Knoppix         rpm(Redhat Pa ...

  3. Linux下开源打包工具fpm的安装与使用(超详细)

    Linux下开源打包工具fpm的安装与使用 一.fpm概述 二.fpm的安装 1.安装ruby环境 2.安装fpm 三.fpm的使用 1.fpm常用参数 2.举例要求 3.准备目录 4.编写脚本文件 ...

  4. 第十章 Linux下RPM软件的安装与卸载

    第十章 Linux下RPM软件的安装与卸载 第一节 RPM软件包安装 rpm命名原则 如: vsftpd-3.0.2-9.el7.x86_64.rpm vsftpd 3.0.2 9 e17 x86_6 ...

  5. linux下rpm方式安装mysql(2012-5-12)

    由于感觉前几篇博客中关于linux下rpm方式安装mysql的方法问题太多,今天抽时间重新实践和整理了一下,现在拿出来和大家分享,希望对家有用. 系统环境: Rat had enterprise li ...

  6. linux rpm 查找,Linux下 rpm 命令查询方法

    [root@wang /]# rpm -qa // 查看安装所有包 [root@wang /]# rpm -qa |grep vim // 查询所安装的包 +包名 [root@wang /]# rpm ...

  7. Linux 下文件打包和压缩

          在 Windows 下我们通常会用好压或者是 Winrar 来进行压缩文件,一般没有打包的说法.在 Linux 下却不太一样,我们可以利用一些命令完成对文件的打包和压缩.这篇文章介绍 ta ...

  8. linux下的打包与压缩

    linux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tar,bzip2,xz 和gziplinux压缩或解压缩工具有很多,除了已经很少有人使用的compress外 ...

  9. Linux下 RPM 包和Deb包的安装(代码指令+案列)

    目录 案列一:(Centos下)RPM包的安装: --tree的安装 案列二:(Kali linux 下)安装Deb包: --安装dpkg -- 安装 gdebi RPM [1]  是Red-Hat ...

  10. Linux下rpm安装软件

    软件包类型 bin文件 .bin (适合所有Linux发行版),bin是可以执行的文件. rpm文件 .rpm,yum(redhat系列)大多数官方下载的安装包都是rpm格式 # 安装rpm文件 rp ...

最新文章

  1. 利用人类神经网络进行蛋白质设计
  2. R语言ggplot2可视化指定图像标题(title)、副标题(subtitle)的内容、字体大小、字体类型、色彩、对齐方式等实战
  3. 是什么阻碍了你的 AI 致富路?
  4. CATransform3D的m34值动画
  5. PHP 5.5.38 + mysql 5.0.11 + zabbix3.0 + nginx 安装
  6. wxWidgets:wxSashEvent类用法
  7. VTK:Filtering之SelectionSource
  8. C# asp:Repeater DataSource ListT
  9. OpenCV3.2+VS2013+Tesseract3.02.02配置
  10. 【扩展欧几里得】Bzoj 1477:青蛙的约会
  11. Gogs代码托管系统安装配置手册
  12. man综述--系统调用和库函数的关系
  13. 2019年6月全国程序员工资统计--两个月岗位减少11%,互联网寒冬来了
  14. 浙江树人大学计算机大类专业分类,浙江树人学院各专业收费明细表
  15. plt 固定X轴、Y轴的范围 ax设置横纵坐标的范围 ax.set_ylim(ymin = 0, ymax = 130)ax.set_xlim(xmin = -5, xmax = 5)
  16. 怎么制作一个蒙版效果
  17. 男闺蜜下载 v1.6.2 安卓版
  18. 七夕快到了,用python给女朋友画张素描吧
  19. 天嵌E9卡片i.mx6q-Linux12.04搭建nfs环境以及从nfs启动开发板
  20. IntelliJ IDEA集成svn

热门文章

  1. 塔式太阳能热发电技术在我国发展现状与前景分析
  2. 微信测试账户申请以及测试
  3. Go Tools安装
  4. 机器学习 - 概念学习
  5. 数据结构之数组和列表
  6. jQuery Validate插件验证
  7. 高考数学计算机题,高考数学大题
  8. 整天说“B超”,你知道“B”指的是什么吗?
  9. 利用计算机技术设计直流稳压电源,数字化控制在直流稳压电源中 - 稳压电源 - 电子发烧友网...
  10. redis命令之哈希表类型lpush命令用法详情