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开发利器,一次开发 ...
随机推荐
- C++的智能指针
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问题 ,指针指针需要的是浅拷贝,并且需要处理资源释放问题 ...
- ui转py文件
ui文件转py文件并且使用 简单做一个笔记,以后忘了回来看看 转换 在QT Designer中创建完ui文件后,回到pycharm中,右键点击ui文件,选择pyuic 完成后获得了和ui文件同名的py ...
- Postman/Jmeter工具实现接口测试,为什么还要用代码来实现接口自动化测试?
这种工具包括一些开源框架最大缺点就是不够灵活,如果是单接口的测试还行,但是有的项目接口比较庞大和负责,这种情况下就不大适用工具(工具适用于小型项目,代码适用于中大型项目) 主要有以下几个原因: 1敏捷 ...
- Java 常用类 String类与其他结构之间的转换-----String 与 基本数据类型,包装类之间的转换
1 /* 2 涉及到String类与其他结构之间的转换 3 4 */ 5 6 //String 与 基本数据类型,包装类之间的转换 7 //String --->基本数据类型,包装类:调用包装类 ...
- Vue实现图片瀑布流
在线演示地址:点击前往 一,创建一个Waterfall组件 代码如下: <template> <div class="waterfall"> <!-- ...
- Codeforces Round #851 (Div. 2) 题解
Codeforces Round #851 (Div. 2) 题解 A. One and Two 取 \(\log_2\),变成加号,前缀和枚举 \(s[i]=\dfrac{s[n]}{2}\). B ...
- 玩转Vue3之shallowRef和shallowReactive
前言 Vue3 作为一款现代的 JavaScript 框架,引入了许多新的特性和改进,其中包括 shallowRef 和 shallowReactive.这两个功能在Vue 3中提供了更加灵活和高效的 ...
- Wireshark在多媒体开发中的使用
一 概要: Wireshark(前称Ethereal)是一个网络抓包工具. 是一款非常棒的Unix和Windows上的开源 网络协议分析器.尽可能显示出最为详细的网络封包资料.Wireshark使用W ...
- 智慧公安!3DCAT实时云渲染助力某公安机关打造数字孪生可视化系统
近年来,随着大数据.数字孪生.云计算.人工智能等技术的飞速发展,数字化浪潮席卷全国各地公安系统.2022年全国公安工作会议中也提到,数字化改革是推动公安工作创新发展的大引擎.培育战斗力生成新的增长点. ...
- C++中虚表是什么
虚函数表,以及虚函数指针是实现多态性(Polymorphism)的关键机制.多态性允许我们通过基类的指针或引用来调用派生类的函数 定义 虚函数(Virtual Function) 定义:类中使用vir ...