Linux下软件部署安装管理----rpmbuild打包rpm包部署安装

这篇具有很好参考价值的文章主要介绍了Linux下软件部署安装管理----rpmbuild打包rpm包部署安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

rpmbuild 安装,linux,服务器,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.gz
 
BuildRequires:  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 👉 有些时候我们的包会有别的依赖如果依赖没有安装就会导致我们这个包安装失败。所以可以使用这个参数

– force 👉有的时候我们的操作系统已经安装了这个软件并且版本高于我们要安装的,使用这个参数可以强行安装我们指定的这个

加上后面两句,可以覆盖当前版本,老换新也可以。

rpm -ivh /root/rpmbuild/RPMS/x86_64/hello-2.10-1.el7.x86_64.rpm

运行

[root@iZbp1gjp1hwnsngz9ayrlnZ rpmbuild]# rpm -ivh /root/rpmbuild/RPMS/x86_64/hello-2.10-1.el7.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:hello-2.10-1.el7                 ################################# [100%]
[root@iZbp1gjp1hwnsngz9ayrlnZ rpmbuild]# hello
Hello, world!

4.rpm包卸载

查看程序对应的rpm包名

rpm -q 'xxx'
rpm -qf 'xxx/bin/xxxx.xx'
rpm -qf mediaHttpServer

卸载rpm包安装的程序

rpm -e 'xxxxxx'
rpm -e nvr-2.0-8913_zfs.el7.aarch64

注: 也可使用--erase代替-e,效果相同

删除的不是rpm包,是卸载rpm包安装的程序,包名不带.rpm后缀

参考:https://blog.csdn.net/YangzaiLeHeHe/article/details/109188096

https://blog.csdn.net/arv002/article/details/123546081?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-9-123546081-blog-109188096.pc_relevant_3mothn_strategy_recovery&spm=1001.2101.3001.4242.6&utm_relevant_index=12文章来源地址https://www.toymoban.com/news/detail-817448.html

到了这里,关于Linux下软件部署安装管理----rpmbuild打包rpm包部署安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux软件安装指令---yum和rpm

    卸载软件 安装一个软件包的基本待遇 查询已安装的rpm表 rpm -qa 查看系统中有哪些已经安装的包 采用分页的形式查看所有的文件包,按空格翻页,按回车切换下一行 相当于给上一个题目查出的包确定位置 要去安装一个nagios3Nagios是一款网络监控软件,可以用来监测Linux系统的

    2023年04月27日
    浏览(37)
  • 【Linux安装软件apt, rpm, yum命令】

    查询、验证、安装、升级、卸载、升级、校验、维护RPM数据库信息等综合管理操作。 rpm命令参数: i:install 安装rpm包 v:显示附加信息,提供更加详细的安装系统 ,可以rpm -ih -vv 显示更加多个详细 h:–hash 显示安装的进度,安装时以#####输出 V:校验,对已经安装的软件进行

    2024年02月02日
    浏览(46)
  • 【Linux】rpm && yum(软件包的安装以及查询)

    应用程序与系统命令的关系 典型应用程序的目录结构 Linux文件 常见的软件包封装类型 Linux内核简介 RPM软件包管理器Red-Hat Package Manager ● 由Red Hat公司提出,被 众多Linux发行版 所采用 ● 建立 统一的文件数据库 ● 详细记录软件包 安装、卸载、升级等变化 信息 ● 自动分析软

    2024年02月04日
    浏览(51)
  • 【Linux的开胃小菜】常用的RPM软件包与YUM仓库包管理器使用

    systemd与System V init的区别以及作用: System V init运行级别 systemd目标名称 systemd目标作用 0 poweroff.target 关机 1 rescue.target 单用户模式 2 multi-user.target 多用户的文本界面 3 multi-user.target 多用户的文本界面 4 multi-user.target 多用户的文本界面 5 graphical.target 多用户的图形界面 6 reboot.t

    2024年02月13日
    浏览(56)
  • linux安装部署mysql服务 tar.gz rpm两种安装方式教程

    本教程为linux下安装部署mysql服务,安装方式分为两种,一种tar.gz包安装,另一种为rpm包安装。 服务器:linxu CentOS 7 mysql服务tar.gz版本:mysql-5.7.36-el7-x86_64.tar.gz mysql服务rpm版本: mysql-5.7.36-1.el7.x86_64.rpm-bundler.tar 首先连接linux服务器,将防火墙关闭: 1.下载mysql-5.7.36-el7-x86_64.ta

    2024年02月05日
    浏览(30)
  • Linux如何将文件或目录打成rpm包? -- fpm打包详解

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年01月23日
    浏览(40)
  • Linux 下杀毒软件 clamav-1.0.0.linux.x86_64.rpm 离线安装及测试CentOS7,CentOS6.8,KylinV10 arm架构

    本文主要记录在centos7以及centos6.8版本上安装记录!废话不多说,直接开始操作!后添加KylinV10 arm架构安装记录 1、下载rpm包 https://www.clamav.net/downloads 官网地址 2、上传安装包到服务器并安装 3、创建目录 4、新建日志文件 5、编辑配置conf文件 6、配置库文件 7、创建clamav用户并

    2024年02月13日
    浏览(61)
  • Linux基础笔记16 | 软件包 RPM 详解

    软件包的分类 二进制包(binary code):无须编译,可以直接安装使用 源码包(source code):没有经过编译的包,需要借助 gcc、c++ 编译器编译后才能运行 软件包的区分 二进制包:软件包存在 bin 可执行文件 源码包:软件包的文件包含有.h、.c、.cpp等结尾的源码文件 RPM CentOS 操

    2024年02月09日
    浏览(96)
  • 【Linux】RPM包管理工具

    人不走空                                                                          目录         🌈个人主页:人不走空       💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 1. RPM 包管理工具简介 2. 常见 RPM 命令及其用法 2.1 安装 RPM 软件包 2.2 查询

    2024年02月02日
    浏览(38)
  • Linux笔记——rpm与yum下载软件命令介绍

    Linux笔记——进程管理Linux笔记——进程管理与网络监控技术讲解Linux笔记——进程管理 Linux笔记——管道相关命令以及shell编程 Linux笔记——磁盘进行分区与挂载介绍 文章目录 系列文章目录 前言 一 RPM介绍 1.1 RPM简单介绍 1.2 RPM命令语法 1.2.1 rpm安装 1.2.2 RPM升级 1.2.3 卸载 1.

    2024年02月04日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包