今天为了测试搭建自己的yum仓库并安装升级软件包,因此需要一个rpm包来做测试,所以就想到了自己来做一个最简单rpm,因为仅仅就是做一个测试所以没有添加需要编译的文件,而是只使用了一个shell文件来输出可爱的Hello World。

1. 首先需要下载安装rpm包制作工具

$ sudo yum install -y rpm-build rpmdevtools

2. 运行 rpmdev-setuptree 来生成一个 rpm 包的骨架目录

$ rpmdev-setuptreer

pmdev-setuptree命令默认将再当前用户的根目录下创建一个RPM构建根目录结构 ~/rpmbuild/

3. 生成源代码包

mkdir -p ~/rpmbuild/SOURCES/helloworld-1.0.0

touch ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld

chmod 755 ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld

echo "#!/bin/sh" >> ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld

echo "echo Hello World!" >> ~/rpmbuild/SOURCES/helloworld-1.0.0/helloworld

cd ~/rpmbuild/SOURCES; tar zcvf helloworld-1.0.0.tar.gz helloworld-1.0.0

4. 在 ~/rpmbuild/SPECS 目录下用 rpmdev-newspec 来生成一个 spec 骨架文件

$ rpmdev-newspec  helloworld.spec

编辑 helloworld.spec 文件,内容如下

Name:          helloworld

Version:        1.0.0

Release:        1%{?dist}

Summary:        helloworld

Group:          Development/Tools

License:        GPL

#URL:

Source0:        %{name}-%{version}.tar.gz

#BuildRequires:

#Requires:

%description

%prep

%setup -q

%build

mkdir -p $RPM_BUILD_ROOT/usr/bin

cp $RPM_BUILD_DIR/%{name}-%{version}/helloworld $RPM_BUILD_ROOT/usr/bin/

%install

%clean

rm -rf $RPM_BUILD_ROOT

%files

%defattr(-,root,root,-)

%doc

/usr/bin/helloworld

%changelog

5. 打包

rpmbuild -ba SPECS/helloworld.spec

6. 测试

6.1 安装测试

sudo yum install ~/rpmbuild/RPMS/x86_64/helloworld-1.0.0-1.el6.x86_64.rpm

6.2 升级测试

修改 helloworld.spec 文件,将其中 Release 修改为

Release:        2%{?dist}

然后运行 "rpmbuild -ba SPECS/helloworld.spec" 打包

最后运行使用下面的命令来升级 rpm 包

sudo yum update ~/rpmbuild/RPMS/x86_64/helloworld-1.0.0-2.el6.x86_64.rpm

linux怎么制作运行包,简单 RPM 包制作相关推荐

  1. linux yum仓库制作,yum仓库搭建之RPM包制作

    常见的软件安装方式有以下几种 1.yum安装,可自动解决依赖,但不能自定义软件安装位置 2.编译安装,可指定安装路径,指定装模块,但编译参数冗长,且耗时较长,不能解决依赖问题. 3.rpm安装,安装速 ...

  2. linux rpm 包制作详解

    一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...

  3. linux安装spec编译器,RPM包制作之Spec文件参数详解

    看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...

  4. linux spec 脚本,RPM包制作之Spec文件详解

    看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...

  5. rpm包制作介绍及实战操作讲解01(学生分享)

    说明:本文来自老男孩linux运维实战培训-高级架构师班学生分享内容,本文分为两部分,此为第一部分. 第一次观看本视频前,建议博友先观看:人人都是讲师的教学培训体系介绍 http://oldboy.b ...

  6. 基于suse linux系统的cacti系统部署——rpm包方式

    豆丁 http://www.docin.com/p-191889788.html rpm包方式:啊扬--沙迳:2010-12-1:更改:2011/5/16:一.Cacti的简介(来源:网络):Cact ...

  7. centos7全盘备份到本地_CentOS7下制作openssl1.1.1i RPM包并升级

    点击上方"walkingcloud"关注,并选择"星标"公众号 CentOS7下制作openssl1.1.1i RPM包并升级 OpenSSL最新漏洞 Open ...

  8. RPM包制作及yum仓库搭建

    RPM包制作 rpm包的制作是通过fpm软件来生成的,所以首先要安装fpm软件.又因为fpm的软件是ruby开发的,所以安装fpm的话首先要安装ruby等包 FPM功能简单说就是将一种类型的包转换成另 ...

  9. Openssh rpm 包制作

    0X01 下载openssh 源文件 rpm包制作的前期各种文件略过,我选择在http://mirror.aarnet.edu.au/pub/OpenBSD/OpenSSH/portable/ 下载合 ...

最新文章

  1. html br/引起的”血案“
  2. python 最快 因式分解_python中怎么对一个数进行因式分解?
  3. Ioc 控制反转 实例
  4. office excel Query 功能
  5. UI5 repository mapping and Component-preload.js UI5RepositoryPathMapping.xml
  6. AM2320 温湿度计 单总线读取数据
  7. consul 日志配置_Go语言微服务架构实战:第十一节 启动Consul
  8. python连接redis哨兵_python连接redis sentinel集群
  9. Spring内建可查找的依赖
  10. D7控件\dw_cd_VirtualTreeview_v4.5.2\Demos\Advanced---TVirtualStringTree用法
  11. 15. (附加)链表是否有环(C++版本)
  12. php正则表达式修饰符详解
  13. python局域网监控系统_python 实现局域网监控
  14. 计算机用户配置如何查看,怎么查看电脑内存和配置 教你查看电脑真实配置的方法...
  15. CoreDNS篇7-性能压测
  16. IT互联网行业猎头的年终总结:结束后开始
  17. 神经网络 高维空间的理解
  18. 文章排版——上机实验,C语言
  19. view-ui中select全选实现
  20. 生物统计学(Biostatistics)笔记第七讲-Linear regression and correlation analysis

热门文章

  1. AV1解码器dav1d性能提升100%
  2. 2022年十大科技应用趋势 | 万字报告PDF
  3. 写给前端工程师的 Flutter 详细教程
  4. 游戏通讯技术:帧同步技术
  5. TensorFlow前向传播
  6. python使用matplotlib绘制k线图
  7. 树的高度 递归法和非递归法
  8. Tomcat 在 SpringBoot 中是如何启动的
  9. java小编程----最接近的三数之和
  10. leetcode 1328. Break a Palindrome | 1328. 破坏回文串(贪心)