Centos7.4制作简易RPM包

2023-11-16

准备nginx-1.10.1.tar.gz

准备php-7.1.7.tar.bz2

这两个源码编译tar包。

1、准备制作环境

yum -y install rpm-build      ##安装rpm-build软件

rpmbuild -ba xx.spec          ##用命令创建工作目录

cd rpmbuild/SOURCES/     ##进入源码tar包存放目录

mv /root/nginx-1.10.1.tar.gz .         ##把tar包放在这个目录里

mv /root/php-7.1.7.tar.bz2 .            ##把tar包放在这个目录里

cd /root/rpmbuild/SPECS/         ##进入spec文件目录

vim nginx.spec                           ##创建nginx的spec文件

原始的文件内容是这样的。因为能力有限。我们制作最简易的rpm包,前辈曾经说过。rpm包的精髓,就是spec文件

2、编写spec文件

Name:软件名字

Version:软件版本

Release:自定义修订次数

Summary:概述(对软件的描述)

Group:属于系统软件的那个组?里面分得很详细的。有兴趣的请百度一下。我这里就注释了。不把这个软件归类组

License:协议,也有好几个分类,我填写的是GPL,大概叫自由软件

URL:网站,这个软件的出处。随意你填写

Source0:tar包的名字,要填写一致。你存放在/root/rpmbuild/SOURCES/nginx-1.10.1.tar.gz

BuildRequires:编译时依赖的软件,由于我对编译时的依赖不太熟悉,所以我这里也注释了。在能力更强的情况下。这里填写好编译时的依赖环境。可以让制作成的rpm包给使用者使用的时候,会自动安装依赖

Requires:运行时依赖的软件。同上,如果有能力,编写好这里。可以让安装rpm包时,会自动安装相关的依赖包。

%description 描述。随便你填写

%prep

%setup -q 安装前的工作。这里可以填写shell命令。理解成,安装此包前,做什么操作。

%build 安装时的工作。经常会在这里添加参数。例如我这里添加了安装路径,使用用户,使用的组。ps:nginx -V 查看详情。php -i 查看详情

%install 

make install 。。。。。。

%files

%doc

/usr/local/nginx/* 我在这里添加这句,代表。打包这路路径下的所有。这个路径是nginx的路径。就等于打包nginx了

3、运行rpmbuild -ba nginx.spec

报错

这里的意思是,我不具备编译前的环境,

安装

yum -y install gcc prec-devel openssl-devel zlib-devel

rpmbuild -ba nginx.spec

好了,自动模拟编译,安装了

写了三个文件,第一个是二进制的包,第二个是x86的包,第三个是x86的调试包。一般来说。我们只需要第二个。把这个包拷贝出来,发给其他机器,就可以使用rpm -ivh 安装了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Centos7.4制作简易RPM包 的相关文章

  • TCP的半关闭状态以及tcp-keepalive

    文章目录 半关闭状态 实现方法 tcp keepalive 开启 tcp keepalive 方法1 Linux系统全局开启 方法2 setsockopt 设置 socket 半关闭状态 一次TCP四次挥手的过程如上图所示 设左侧为客户端
  • 记mount NFS遇到的一个问题(-o nolock)

    前两天 测试 过程中 测试机始终 mount 不上我们的 nfs 比如我使用命令 mount vt nfs share mnt share 开始是mount命令一直hang在那里 卡住了 另一种情况是 有类似如下的错误输出 portmap
  • VirtualBox中Ubuntu 14.04 LTS安装GATE7.1

    开发环境 win7 VirtualBox Ubuntu 14 04 LTS 主要参考博客 1 Compilation Instructions V7 1 2 Gate7 1在Ubuntu下编译 3 Package Requirements
  • 实例一 LINUX OS 简单制作 JAVA WEB + TOMCAT7.0 RPM 安装包

    1 安装rpmbuild 并配置环境 1 1 首先 你应该检查 rpmbuild 是否已经被安装在你的系统上 你将会利用这个工具从 spec 文件或 SRPM 组件创建 RPM 要检查它是否被安装了 请执行 rpmbuild showrc
  • 臻识车牌识别摄像头对接

    一 臻识车牌识别摄像头 1 非常有用的官方代码 内部有TCP HTTP等协议 2 官方常见问题 3 官方下载专区 二 http对接例子 1 自己使用java mock 模拟后台服务 你会用到的配置文件 java jar moco runne
  • Linux sh命令

    sh a c C e E f h i I k m n p r s t T u v x argument a Export all variables assigned to c Pass the string argument to the
  • Ubuntu安装java

    转自 https www cnblogs com ziyue7575 p 13898610 html java8 apt安装 参考 https www cnblogs com zzy1024 p 11406269 html 若是没有配置国内
  • docker教程:从头基于空镜像scratch创建一个新的Docker镜像

    从头基于空镜像scratch创建一个新的Docker镜像 我们在使用dockerfile构建镜像时 一种方式是使用预制镜像 这样可以省很多工作量 但问题是镜像会变得特别大 尤其是安装一些应用程序所需的依赖后 镜像的尺寸会更大 如果我们的需求
  • CentOS8 MySQL 主主模式+keepalived高可用环境搭建非docker版

    概述 采用了MySQL KeepAlived实现MySQL高可用 旨在当主机发生宕机等异常情况时 使用备机的MySQL服务 以此保证系统服务的高可用 这套环境的搭建过程中 需要注意的事项如下 1 MySQL是否数据同步 在大批量数据写入的情
  • Centos 7安装mysql

    1 安装前清理工作 1 1 1 清理原有的mysql数据库 使用以下命令查找出安装的mysql软件包和依赖包 rpm pa grep mysql 显示结果如下 mysql80 community release el7 1 noarch m
  • Linux系统图形界面,字符界面切换快捷键。启动图形界面服务。

    Ctrl Alt F3 启动字符界面 Ctrl Alt F7 启动图形界面 启动图形界面服务 cd etc init d service lightdm restart
  • makeinfo: command not found解决方法

    sudo apt get install texinfo
  • spark_hadoop集群搭建自动化脚本

    bin bash 脚本使用说明 1 使用脚本前需要弄好服务器的基础环境 2 在hadoop的每个节点需要手动创建如下目录 data hdfs tmp 3 修改下面的配置参数 4 脚本执行完备后需要收到格式化namenode
  • begin to drop messages due to rate-limiting

    对于syslog保存的日志会有很多重要信息 但是一旦打印的日志数量超过设置的阈值 就会丢掉 imuxsock pid 48 begin to drop messages due to rate limiting 这是在调试时不愿看到的 可以
  • 创建 Python RPM

    我一直在阅读有关为 Python 2 6 4 创建 RPM 的内容 在此页面中 http docs python org distutils builtdist html它说你可以使用当前Python创建一个RPMpython setup
  • rpm 和 rpmbuild - 在 %files 部分使用全局环境变量

    我已经为此苦苦挣扎了一段时间 所以我为我的项目编写了一个 specs 文件 一切都很顺利 rpm 已构建 安装很顺利 但后来我遇到了一些麻烦 因为现在我必须使用自定义全局环境变量来设置安装路径 这将给出一个 files 部分 如下所示 fi
  • 如何在 rpm 构建中包含 pip 包

    我想包含一个 Python 包依赖项 使用安装pip3 install in an rpm包裹 我无法安装使用dnf因为它的版本已经过时了 rpm如果我使用安装依赖项 则会返回以下错误pip3 install error Failed de
  • RPM 规范通过添加前缀可重新定位,但在安装时我看不到已安装的文件

    Summary A small lighttpd Name lighttpd Version 1 4 28 Release 1000 License LGPL Group Applications Webserver URL http ww
  • 如何控制rpmbuild的buildroot和安装目录

    我对 rpmbuild 中的一些目录感到困惑 1 buildroot 用于存储最终用户安装二进制包时应安装的文件 问题 如何控制这个目录 构建根是什么意思 cat 3 spec BuildRoot opt abc prep echo bui
  • 如果specfile中的某些条件不满足,如何中止rpm包的安装?

    还有一些事情Requires标签不满足 所以我写了一个脚本来验证这些东西 但是我把它们放在哪里呢 如果没有找到 那么我想退出安装 提示用户在尝试再次安装此 rpm 之前执行这些步骤 writing exit 1 in installtag

随机推荐

  • Gitee的使用

    一 window环境下的使用 1 在window系统下创建一个文件 这里在电脑的F盘下创建gitee文件夹 打开Git Bash窗口 进入这个文件夹中 2 使用git init进行初始化 3 信息的配置 去掉 global 之后 操作只对本
  • 静态代码检查 - SourceInsight_Scan 使用说明

    SourceInsight Scan是一款集成在 SourceInsight 中的c c 代码静态分析插件 集成了cppcheck coverity pclint等业界优秀的静态分析工具的优点 旨在帮助开发人员 在IDE中快速发现编译器无法
  • 设计模式(六)适配器模式

    前面介绍的几种设计模式都是创建型模式 用于以不同的方式创建对象 下面我们来看看适配器模式 这是一种结构型模式 用于在两个无关的接口之间搭建桥梁 适配器模式主要用于在新旧代码直接转换 直接看例子吧 假设我们有一个音乐播放器 public in
  • 这些年我用过的软件

    文章目录 1 uTools 2 BCompare 3 Wireshare 4 Postman 5 Sourcetree 6 Another Redis Desktop Manager 7 XMind 8 逍遥模拟器 9 ScreenToGi
  • JavaScript的执行机制

    JavaScript的执行机制 在理解JavaScript 以下简称js 的执行机制之前 先要理解几个概念 js是单线程语言 为什么要将js设计为单线程 原因是js最初是专门为浏览器设计的 可以想象一下 如果js是多线程的 那么当你对同一个
  • Atom 和 markdown 基本使用

    Atom 和 markdown 基本使用 Atom 常用的快捷键 Cmd Shift P 打开命令窗口 可以运行各种菜单功能 Cmd T 快速的多文件切换 Ctrl G 文件内跳转到指定行 Cmd F 文件内查找和替换 Cmd Shift
  • selenium模拟登录爬取多页面vivio手机信息

    selenium模拟登录爬取多页面vivio手机信息 xpath进行数据解析 最终追加保存为csv形式 from selenium import webdriver from selenium webdriver common by imp
  • 【Docker】初识Docker以及Docker安装与阿里云镜像配置

    目录 一 初识Docker 二 安装Docker 三 Docker架构 四 配置Docker镜像加速器 一 初识Docker Docker是一个开源的应用容器引擎 诞生于2013年 基于Go语言实现 dotCloud公司出品 Docker开
  • java编程题检索一个字符串中出现元音字符长度最长是多少?

    java编程题 题目 给定一个字符串 返回最长元音字母字串长度 测试举例 输入为 asdbuiodea 输出为3 因为uio三个元音字姆是最长的 分析题目 可以理解为元音字母连续且最长 遍程思路 我个人是将用户输入的字符串和元音字符串分别转
  • 基于LSTM神经网络模型来预测股票的收益率

    一 项目背景以及目标 2 1 1项目背景 2 1 2项目目标 2 二 数据的准备 2 2 1数据说明 2 2 2数据探索和数据可视化 3 三 模型的选择 4 3 1 LSTM模型原理 4 3 2 LSTM模型工作原理 4 四 模型的训练 6
  • Feign GET方式传递多个参数

    Feign GET方式传递参数 单个参数 错误示例 FeignClient name demoFeignClient public interface DemoFeignClient RequestMapping value test me
  • C++ 中的指针使用

    1 指针的定义和声明 指针是一个变量 其值是一个内存地址 指向内存中的某个数据 指针变量的类型与它所指向的数据类型相同 在 C 中 指针的定义和声明方式如下 int p 定义一个指向 int 类型数据的指针变量 p double q 定义一
  • 一文了解什么是web3

    一 web1 0和web2 0 Web 1 0和Web 2 0指的是万维网历史上的时代 因为它通过各种技术和格式发展 Web 1 0 大致指的是从 1991 年到 2004 年期间 大部分网站由静态页面组成 绝大多数用户是内容的消费者 而不
  • win10 64位下载64位python

    下载步骤 1 打开Python官网 https www python org 如果是32位的可以直接点击download下载 否则点击downloads 点击windows 2 选择安装版本 eg 选择安装版 然后一直默认下一步 安装 期间
  • K8s存储管理——volume、pv、pvc

    目录 介绍 前言 emptyDir存储卷 hostPath存储卷 本地 NFS共享存储卷 PV PVC NFS使用pv pvc 介绍 来自官方文档 存储的管理是一个与计算实例的管理完全不同的问题 PersistentVolume 子系统为用
  • java基础——内存和变量

    目录 前言 一 java的内存 1 栈内存 2 堆内存 3 方法区内存 二 成员变量与局部变量 1 成员变量 2 局部变量 3 成语变量和局部变量的区别 前言 介绍Java的三种内存分配 栈 堆 方法区 成员变量和局部变量 一 java的内
  • 渗透漏洞 Bugku CTF-Web5

    Bugku CTF Web5 一 开启环境 点击链接 二 查看源代码 发现PHP弱类型 三 构造出 payload 提交获得 flag 一 开启环境 点击链接 二 查看源代码 发现PHP弱类型 1 PHP 比较 2 个值是否相等可以用 或
  • 神策学堂“训练营+特训营”,种子学员招募中,来一起出圈呀!

    2020 年难吗 难 失业 瓶颈 焦虑包围着互联网人 面对这个现状 神策学堂准备了一系列精品课程 芒种训练营 高级特训营 让大家逆流 出圈 神策数据分析芒种训练营 突破瓶颈 晋升高阶岗位 3 场直播 6 实战案例 教你用数据高效赋能业务 1
  • oracle数据库找不到主库,Oracle DG 主库丢失归档

    DG 主库丢失归档 主要原因就是备库没有APP呢 主库就误把归档删除了 常见的这种情况都是主库RMAN做备份的时候把归档删除了 丢失归档解决方法 用RMAN 增量备份恢复 还有恢复控制文件 备库 SQL gt select sequence
  • Centos7.4制作简易RPM包

    准备nginx 1 10 1 tar gz 准备php 7 1 7 tar bz2 这两个源码编译tar包 1 准备制作环境 yum y install rpm build 安装rpm build软件 rpmbuild ba xx spec