安装的工具

yum install -y  rpmdevtools

准备环境

主要是初始化,会自动创建rpm 包构建需要的目录

rpmdev-setuptree

编写简单的spec

cd ~/rpmbuild/SPECS/dalong.spec

Name: dalong-demo
Version: 1
Release: 1
Summary: this is a demo
License: fixme
%description this is a demo app %prep # nothing %build cat > dalong.sh <<EOF
#!/bin/sh
echo "dalong demo"
EOF %install mkdir -p %{buildroot}/usr/bin/
install -m 755 dalong.sh %{buildroot}/usr/bin/dalong.sh %files /usr/bin/dalong.sh %changelog # nothing

构建

rpmbuild -ba dalong.spec

效果

执行(%prep): /bin/sh -e /var/tmp/rpm-tmp.FiOyqX
+ umask 022
+ cd /root/rpmbuild/BUILD
+ exit 0
执行(%build): /bin/sh -e /var/tmp/rpm-tmp.jyWbrS
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cat
+ exit 0
执行(%install): /bin/sh -e /var/tmp/rpm-tmp.pogwtN
+ umask 022
+ cd /root/rpmbuild/BUILD
+ '[' /root/rpmbuild/BUILDROOT/dalong-demo-1-1.x86_64 '!=' / ']'
+ rm -rf /root/rpmbuild/BUILDROOT/dalong-demo-1-1.x86_64
++ dirname /root/rpmbuild/BUILDROOT/dalong-demo-1-1.x86_64
+ mkdir -p /root/rpmbuild/BUILDROOT
+ mkdir /root/rpmbuild/BUILDROOT/dalong-demo-1-1.x86_64
+ mkdir -p /root/rpmbuild/BUILDROOT/dalong-demo-1-1.x86_64/usr/bin/
+ install -m 755 dalong.sh /root/rpmbuild/BUILDROOT/dalong-demo-1-1.x86_64/usr/bin/dalong.sh
+ '[' '%{buildarch}' = noarch ']'
+ QA_CHECK_RPATHS=1
+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
处理文件:dalong-demo-1-1.x86_64
Provides: dalong-demo = 1-1 dalong-demo(x86-64) = 1-1
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: /bin/sh
检查未打包文件:/usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/dalong-demo-1-1.x86_64
写道:/root/rpmbuild/SRPMS/dalong-demo-1-1.src.rpm
写道:/root/rpmbuild/RPMS/x86_64/dalong-demo-1-1.x86_64.rpm
执行(%clean): /bin/sh -e /var/tmp/rpm-tmp.dvCayz
+ umask 022
+ cd /root/rpmbuild/BUILD
+ /usr/bin/rm -rf /root/rpmbuild/BUILDROOT/dalong-demo-1-1.x86_64
+ exit 0

安装

yum install -y  ~/rpmbuild/RPMS/x86_64/dalong-demo-1-1.x86_64.rpm

效果

 已加载插件:fastestmirror
正在检查 dalong-demo-1-1.x86_64.rpm: dalong-demo-1-1.x86_64
dalong-demo-1-1.x86_64.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 dalong-demo.x86_64.0.1-1 将被 安装
--> 解决依赖关系完成 依赖关系解决 ===============================================================================================================
Package 架构 版本 源 大小
===============================================================================================================
正在安装:
dalong-demo x86_64 1-1 /dalong-demo-1-1.x86_64 29 事务概要
===============================================================================================================
安装 1 软件包 总计:29
安装大小:29
Is this ok [y/d/N]:
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : dalong-demo-1-1.x86_64 1/1
验证中 : dalong-demo-1-1.x86_64 1/1 已安装:
dalong-demo.x86_64 0:1-1 完毕

使用

  • 命令
dalong.sh
dalong demo

参考资料

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/rpm_packaging_guide/index

 
 
 
 

rpm 简单 package 创建demo的更多相关文章

  1. C#开发微信公众平台-就这么简单(附Demo)转载

    C#开发微信公众平台-就这么简单(附Demo)  来源:https://www.cnblogs.com/xishuai/p/3625859.html#!comments 写在前面 阅读目录: 服务号和 ...

  2. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  3. Maven+SpringMVC+Dubbo 简单的入门demo配置

    转载自:https://cloud.tencent.com/developer/article/1010636 之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程 ...

  4. MVC CodeFirst简单的创建数据库(非常详细的步骤)

       最近在学习MVC的开发,相信有过开发经验的人初学一个新的框架时候的想法跟我一样最关心的就是这个框架如何架构,每个架构如何分工,以及最最关键的就是如何与数据库通信,再下来才是学习基础的页面设计啊等 ...

  5. Xamarin.Android再体验之简单的登录Demo

    一.前言 在空闲之余,学学新东西 二.服务端的代码编写与部署 这里采取的方式是MVC+EF返回Json数据,(本来是想用Nancy来实现的,想想电脑太卡就不开多个虚拟机了,用用IIS部署也好) 主要是 ...

  6. ionic2新手入门整理,搭建环境,创建demo,打包apk,热更新,优化启动慢等避坑详解

    onic官方文档链接:http://ionicframework.com/docs/ 如果是新的环境会有很多坑,主要是有墙,请仔细阅读每个步骤 文档包含以下内容: l  环境搭建 l  创建demo并 ...

  7. [.NET] 使用VALIDATIONCONTEXT快速进行模型资料的验证 》简单xml创建-json转xml

    [.NET] 使用VALIDATIONCONTEXT快速进行模型资料的验证 在进行WebAPI功能开发的时候,一般传统的验证资料是否合法的方式,都是透过if/else的方式进行判断若是使用Valida ...

  8. 简单数学算法demo和窗口跳转,关闭,弹框

     简单数学算法demo和窗口跳转,关闭,弹框demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...

  9. vue+node+es6+webpack创建简单vue的demo

    闲聊: 小颖之前一直说是写一篇用vue做的简单demo的文章,然而小颖总是给自己找借口,说没时间,这一没时间一下就推到现在了,今天抽时间把这个简单的demo整理下,给大家分享出来,希望对大家也有所帮助 ...

随机推荐

  1. 软件测试人员必备的Python知识图库

    UI自动化测试(Python+Selenium等) 接口测试(Python requests等) 性能测试(Python Locust等) 安全性测试(Python Scapy等) 兼容性测试(Pyt ...

  2. jwt的思考

    什么是jwt jwt的问题 jwt的是实践 https://www.pingidentity.com/en/company/blog/posts/2019/jwt-security-nobody-ta ...

  3. C#设计模式之12:中介者模式

    中介者模式 在asp.net core中实现进程内的CQRS时用mediatR是非常方便的,定义command,然后定义commandhandler,或者notification和notificati ...

  4. np.random模块的使用介绍

    np.random模块常用的一些方法介绍 名称 作用 numpy.random.rand(d0, d1, …, dn) 生成一个[d0, d1, …, dn]维的numpy数组,数组的元素取自[0, ...

  5. 下载Spring

    下载Spring Spring官网并不直接提供Spring的下载,Spring现在托管在GitHub上. 1.进入Spring官网 -> PROJECTS -> SPRING FRAMEW ...

  6. 手动实现KNN算法

    手动实现KNN算法 计算距离 取k个邻近排序 距离(欧氏) 预习 import numpy as np # 数组运算是面向元素级别的 arr1 = np.array([1,2,3]) arr2 = n ...

  7. Ubuntu 开发环境搭建

    一.修改权限 Ubuntu 用户权限相关命令 - 彭浪 - 博客园 Ubuntu 文件文件夹查看权限和设置权限 - 朝阳的向日葵 - 博客园 二.安装简体中文支持 三.安装搜狗输入法 四.安装Goog ...

  8. 使用SSH配置git服务器免密提交

    1. 生成SSH 1.1下载 下载工具 puttygen.exe ,当然其他工具请自行搜索. 下载地址: 下载地址1   百度网盘 (提取码: if8g)https://pan.baidu.com/s ...

  9. Linux命令——gdisk、fdisk、partprobe

    gdisk.fdisk MBR分区表请使用fdisk分区,GPT分区表请使用gdisk分区 MBR与GPT区别参考:Linux磁盘管理——MBR 与 GPT gdisk.gdisk这两个命令参数不需要 ...

  10. opencv图像阈值操作

    使用threshold方法和adaptivethreshold方法对图像进行阈值分割操作. 1.使用threshold方法,设置一个阈值,将大于阈值的值变换为最大值,小于阈值的值变换为0. #-*- ...