来源:微信公众号「编程学习基地」

文章目录

  • 1.安装rpmbuild
  • 2.rpm包制作
    • 打包rpm包
  • 3.rpm包安装
  • 4.rpm包卸载

1.安装rpmbuild

yum install rpmbuild
yum install rpmdevtools

创建rpm包管理路径,生成rpm相关目录

RPM打包的时候需要编译源码,还需要把编译好的配置文件,二进制命令文件之类的东西按照安装好的样子放到合适的位置,还要根据需要对RPM的包进行测试,这些都需要先有一个“工作空间”。rpmbuild命令使用一套标准化的“工作空间”:

[root@ ~]# rpmdev-setuptree
[root@ ~]# ls
rpmbuild
[root@iZbp1gjp1hwnsngz9ayrlnZ ~]# cd rpmbuild/
[root@iZbp1gjp1hwnsngz9ayrlnZ rpmbuild]# ls
BUILD  RPMS  SOURCES  SPECS  SRPMS

rpmdev-setuptree这个命令就是安装rpmdevtools带来的。

手动创建

如果没有安装rpmdevtools的话,其实用mkdir命令创建这些文件夹也是可以的。

#使用下面的目录手动目录
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

2.rpm包制作

下载源码

这里直接下载官方例子的源码,是个压缩包

wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
mv hello-2.10.tar.gz /root/rpmbuild/SOURCES/

编辑SPEC文件

vim soft.spec

模板如下

Name:     hello
Version:  2.1
Release:  1%{?dist}
Summary:  The "Hello World" program from GNU
Summary(zh_CN):  GNU "Hello World" 程序
License:  GPLv3+
URL:      http://ftp.gnu.org/gnu/hello
Source0:  http://ftp.gnu.org/gnu/hello/%{name}-%{version}.tar.gz%description
The "Hello World" program, done with all bells and whistles of a proper FOSS
project, including configuration, build, internationalization, help files, etc.%description -l zh_CN
"Hello World" 程序, 包含 FOSS 项目所需的所有部分, 包括配置, 构建, 国际化, 帮助文件等.%prep
%setup -q%build
%configure
make %{?_smp_mflags}%install
make install DESTDIR=%{buildroot}%files
%doc%changelog
* Sun Dec 4 2016 Your Name <youremail@xxx.xxx> - 2.10-1
- Update to 2.10
* Sat Dec 3 2016 Your Name <youremail@xxx.xxx> - 2.9-1
- Update to 2.9

本示例最终的完整SPEC

Name:     hello
Version:  2.10
Release:  1%{?dist}
Summary:  The "Hello World" program from GNU
Summary(zh_CN):  GNU "Hello World" 程序
License:  GPLv3+
URL:      http://ftp.gnu.org/gnu/hello
Source0:  http://ftp.gnu.org/gnu/hello/%{name}-%{version}.tar.gzBuildRequires:  gettext
Requires(post): info
Requires(preun): info%description
The "Hello World" program, done with all bells and whistles of a proper FOSS
project, including configuration, build, internationalization, help files, etc.%description -l zh_CN
"Hello World" 程序, 包含 FOSS 项目所需的所有部分, 包括配置, 构建, 国际化, 帮助文件等.%prep
%setup -q%build
%configure
make %{?_smp_mflags}%install
make install DESTDIR=%{buildroot}
%find_lang %{name}
rm -f %{buildroot}/%{_infodir}/dir%post
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :%preun
if [ $1 = 0 ] ; then
/sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || :
fi%files -f %{name}.lang
%doc AUTHORS ChangeLog NEWS README THANKS TODO
%license COPYING
%{_mandir}/man1/hello.1.*
%{_infodir}/hello.info.*
%{_bindir}/hello%changelog
* Sun Dec 4 2016 Your Name <youremail@xxx.xxx> - 2.10-1
- Update to 2.10
* Sat Dec 3 2016 Your Name <youremail@xxx.xxx> - 2.9-1
- Update to 2.9

打包rpm包

rpmbuild -ba soft.spec

看一下打包好的rpm包

tree /root/rpmbuild/*RPMS
/root/rpmbuild/RPMS
└── x86_64├── hello-2.10-1.el7.x86_64.rpm└── hello-debuginfo-2.10-1.el7.x86_64.rpm
/root/rpmbuild/SRPMS
└── hello-2.10-1.el7.src.rpm

3.rpm包安装

rpm -ivh xxx.rpm --nodeps --force

– nodeps

Linux下软件部署安装管理----rpmbuild打包rpm包部署安装相关推荐

  1. 安装jdk步骤rpm_jenkins rpm包方式安装

    war包方式安装jenkins已经说过java openjdk的安装和注意事项,这里不做赘述 前提:确保 java的jdk或者jre已安装 #]java -version #]whereis java ...

  2. Centos7 安装GPU驱动(rpm包方式安装) 亲测,出坑 NVIDIA-SMI has failed because it couldn’t communicate...

    删除驱动 查看安装的nvidia模块命令 rpm -qa|grep -i nvid|sort 删除找到的模块 yum remove kmod-nvidia-* 一.查看支持CUDA的GPU列表 :ls ...

  3. centos6/7 yum安装mysql客户端和rpm包方式安装方式

    查看操作系统版本 cat /etc/redhat-release 这个命令就会查看该操作系统上是否已经安装了mysql数据 rpm -qa | grep mysql [root@larry ~]# r ...

  4. 项目打包rpm包(rpmbuild)

    这里以python项目为例,通过rpmbuild工具打包成rpm包,并进行安装验证 rpmbuild打包 rpm流程 构建rpmbuild打包目录 rpmbuild 默认变量配置文件 将我们的pyth ...

  5. linux用卸载软件管理,Linux下软件的安装卸载管理

    一.Linux应用程序组成 1. 普通执行程序文件,保存在"/usr/bin"目录中 2. 服务器执行程序文件和管理程序文件,保存在"/usr/sbin"目录中 ...

  6. linux下软件的安装[转]

    linux下软件的安装 先来看看Linux软件扩展名.软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用:后缀为.deb是Debain Linux ...

  7. Linux下软件的安装与卸载

    在Windows下安装软件时,只需运行软件的安装程序(setup.install等)或者用zip等解压缩软件解开即可安装,运行反安装程序(uninstall.unware."卸载" ...

  8. 【转】Linux下软件安装的几种方式

    转自Linux下软件安装的几种方式 Linux 系统的/usr目录 Linux 软件安装到哪里合适,目录详解 Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统 ...

  9. linux下软件更新,Linux安装软件每次靠百度,这次花了些时间,终于算是搞明白了...

    Linux下安装命令虽然经常使用,但也仅仅是会使用,每次再用时依然的百度 .于是就花了些时间整理了一番,以便于更好地理解. 1.安装流程介绍 在Linux下安装软件,其实也是遵循着和Windows一样 ...

  10. Linux下软件的安装与卸载方法

    第一章   linux下安装软件,如何知道软件安装位置 注:一般的软件的默认安装目录在/usr/local或者/opt里,可以到那里去找找. 指令名称:whereis 功能介绍:在特定目录中查找符合条 ...

最新文章

  1. 开发者AI职业指南:CSDN《AI技术人才成长路线图V1.0》重磅发布
  2. 人群密度估计--Fully Convolutional Crowd Counting On Highly Congested Scenes
  3. 判断某个元素是否使用jquery绑定方法
  4. 自反ACL访问控制列表的应用
  5. Program terminated with signal SIGSEGV, Segmentation fault.
  6. 160 - 54 eKH
  7. java 实现不同用户编辑 word 文档的不同区域
  8. (76)FPGA面试题-Verilog实现下降沿检测
  9. IRQL的理解和认识
  10. Q-Q图和P-P图傻傻整不明白?
  11. 管理学之父彼得·德鲁克:目标管理的基本思路、原则及分解方法
  12. 搭建直播平台过程中的全能“辅助”——流媒体服务器
  13. sqoop -D 指定资源池( mapred.job.queue.name=root.myqueue)或者( mapred.job.queuename=root.myqueue)
  14. windows10文件资源管理器打开时显示此电脑
  15. python程序员培训_推荐给未来Python程序员的自学路线,不再背负小白名称
  16. 2022年国内私网IP地址
  17. 别当工具人了,手摸手教会你 Jenkins !
  18. 字节流与字符流(一)
  19. 交换机之间的链路聚合
  20. win10系统作为文件服务器,win10作为云服务器吗

热门文章

  1. R语言cochran_armitage检验
  2. 五. jmeter参数化
  3. Java单元测试之Mock指定方法
  4. 十种常用的设计模式(总结)
  5. Linux 设备树(三) 设备树语法
  6. 如何提高OpenCV人脸检测正确率
  7. Spark GraphX原理介绍
  8. Basemap和Seaborn
  9. 分布式的几件小事(十一)分布式session如何实现
  10. FIFO,LRU,OPT算法及缺页次数计算