RPM打包教程
# 检查是否有 rpmbuild
rpmbuild --version # 安装 rpmbuild
yum install rpm-build # 安装 rpmdevtools
yum install rpmdevtools
# 方法一:使用命令创建
rpmdev-setuptree # 目录树
rpmbuild
- BUILD // 编译时用到的暂存目录
- RPMS // 打包后生成的 rpm 包会放在这里
- SOURCES // 源码压缩包
- SPECS // 放 xx.spec 文件
- SRPMS // 打包后生成的 srpm 包会放在这里
# 使用命令可以创建中 x.spec 文件模板
rpmdev-newspec eloam.spec
Name: 名称
Version: 版本号
Release: release版本
Summary: 对包的描述 License: 开源协议
URL: 项目主页
Source0: 源码包 # 没有用到,所以注释掉了
#BuildRequires:
#Requires: %description
# 详细描述,多行,每行小于等于80个字符,否则算新的一段 %prep
# 静默模式解压,并进入解压后的目录,常用:%setup -q %build
# 编译过程 %install
# 安装过程 %files
# 要打包的文件
六、打包
rpmbuild -bb SPECS/elaom.spec --define="_topdir `pwd`"
七、RPM 的安装 & 卸载
# rpm 安装 sudo rpm -ivh 包名 --nodeps
# rpm 卸载 sudo rpm -e --nodeps 包名
# rpm 生成 rpmbuild -bb SPECS/elaom.spec --define="_topdir `pwd`"
八、 ** 特别重要 · 核心 **
# 打压缩包命令
tar -czvf eloamwss-1.0.tar.gz eloamwss-1.0 # 压缩包结构
eloamwss-1.0.tar.gz
- eloamwss-1.0
- eloamwss.conf
- eloamwss
- doc
- lib
- eloamwss
Name: eloamwss
Version: 1.0
Release: 1
Summary: web rpm package License: GPL
URL: http://sdk.eloam.net
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXX} %description
THIS IS A WEB ELOAM PACKAGE %prep
#%setup -n %{name}
%setup -q %build %install
mkdir -p %{buildroot}/usr/local/lib
mkdir -p %{buildroot}/etc/ld.so.conf.d/
mkdir -p %{buildroot}/etc/udev
mkdir -p %{buildroot}/opt/eloamwss
mkdir -p %{buildroot}/opt/eloamwss/lib
mkdir -p %{buildroot}/opt/eloamwss/doc
mkdir -p %{buildroot}/opt/eloamwss/Image
mkdir -p %{buildroot}/opt/eloamwss/icon install eloamwss.conf %{buildroot}/etc/ld.so.conf.d/
install eloamwss/eloam.rules %{buildroot}/etc/udev
install -m 0755 eloamwss/*.sh %{buildroot}/opt/eloamwss
install -m 0755 eloamwss/eloamwss %{buildroot}/opt/eloamwss
install eloamwss/lib/* %{buildroot}/opt/eloamwss/lib
install eloamwss/doc/* %{buildroot}/opt/eloamwss/doc
install eloamwss/icon/* %{buildroot}/opt/eloamwss/icon %define _unpackaged_files_terminate_build 0 %clean
rm -rf $RPM_BUILD_ROOT %files
%defattr(-,root,root,-)
/opt/eloamwss/*
/etc/ld.so.conf.d/eloamwss.conf
/etc/udev/eloam.rules %post
chmod 755 /opt/eloamwss/*.sh
chmod 755 /opt/eloamwss/eloamwss
ldconfig %preun
/opt/eloamwss/shutdown.sh %define __debug_install_post \
%{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
%{nil}
RPM打包教程的更多相关文章
- 【centos7常用技巧】RPM打包
一.RPM打包的目的 1.当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh *.rpm安装即可. 2.当需要在目标机中安装多个软件或者增加多个文件时,可以将 ...
- Centos6_64 rpm打包实践
安装rpmbuild sudo yum install rpm-build 普通用户的配置 /home/you/rpmbuild/ 假设是要构建rpm的目录 先说说rpmbuild有什么用,给一个例子 ...
- Inno打包教程_百度经验
Inno打包教程 Inno工具,是比较常用的打包软件.简简单单,一招叫你学会使用inno打包. 工具/原料 inno setup 软件 方法/步骤 双击桌面的:Inno setup compiler图 ...
- rpm打包过程
[需求] 接触那么久的Linux,还没有试验过怎么打rpm包 [过程] 1.rpm打包准备工作 系统默认的rpmbuild的相关路径
- linux 版本控制及rpm打包
版本控制 subversion:是一个自由/开源的版本控制系统,在subversion管理下,文件和目录可以超越时空subversion允许你数据恢复到早期版本,或者是检查数据修改历史许多人将版本控制 ...
- RPM打包原理、示例、详解及备查
原文地址:https://blog.csdn.net/qq_16542775/article/details/80961213 RPM(Redhat Package Manager)是用于Redhat ...
- 使用rpm 打包开发的postgres extension
环境准备 安装依赖包 rpmdevtools rpm-build yum install -y rpm-build rpmdevtools 初始化rpm pacakge 项目 主要是rpm 打包的 ...
- 关不掉的小姐姐程序python tkinter实现 学习---打包教程
首先,我们先准备两个.py文件,还要图片文件 代码//是我自己手写的,copy时记得删掉,不然有可能错误,比如中英文啥的 当然 一些语法的无问题就百度,都能给你答案 第一个.py ...
- RPM打包原理、示例、详解及备查( 转)
RPM(Redhat Package Manager)是用于Redhat.CentOS.Fedora等Linux 分发版(distribution)的常见的软件包管理器.因为它允许分发已编译的软件,所 ...
- WeX5 苹果APP打包教程
来源:http://docs.wex5.com/app-packing/ WeX5平台App打包教程 WeX5是前端快速开发框架,可开发跨端运行应用,是移动App/微信/WebApp开发利器,一次开发 ...
随机推荐
- 【Azure App Service for Linux】Linux Web App如何安装系统未安装的包
问题描述 Linux Web App中如何安装系统默认未安装的包,如何来执行如 apt install XXX命令呢?现在遇见的问题时,通过Azure App Service门户中的SSH登录后,执行 ...
- C++ STL 容器 forward_list类型
C++ STL 容器 forward_list类型 介绍 std::forward_list 是 C++ 标准模板库 (STL) 中的一个单向链表容器.与 std::list 不同,std::forw ...
- Mybatis分页插件有效范围
一.问题由来 在修改了一段代码后,将修改后的功能放在测试环境简单测试后,发现没有任何问题,因为测试环境数据量非常少(10条以下),因此 也就没有怀疑修改的代码存在问题,直接上生产环境,测试的时候发现后 ...
- python tcp socket 源码分享
服务端的源码: import socketserver class Handler_TCPServer(socketserver.BaseRequestHandler): ""&q ...
- 基于ads1292心电数据存储和状态显示
一 前记 ads1292芯片在专业的心电采集这块应用十分广泛.随着医疗可穿戴的发展,便携式心电测量这块前景十分广阔.基于现在的几个项目,团队在这里花费了不少精力,借此机会把这个方向打造成团队的特色之一 ...
- websocket服务器的创建
就这上篇文章的代码,我们会继续实现以下websocket的协议. 为什么要使用websocket呢? 它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平 ...
- Android13源码下载环境搭建
由于AOSP的下载&编译等工作,需要用到git与python的支持,所以需要提前安 装好 VMware解决Ubuntu不占满全屏问题和Windows复制粘贴问题 https://blog.cs ...
- OSI七层协议和TCP/IP五层协议
OSI七层模型概略: OSI 中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 HTTP,SMTP,FTP,DNS 表示层 数据压缩,解压,数据加密 无 会话层 解 ...
- 面试官:volatile如何保证可见性的,具体如何实现?
写在开头 在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块,方法参 ...
- FreeRTOS教程9 软件定时器
1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) Keil µVision5 IDE(MDK-Arm) 野火DAP仿真器 XCO ...