热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux之rpm安装

linux之rpm安装rpm的基本概念rpm定义RPM包的来源1.镜像文件原理2.软件的官方网站3.第三方网站4.自制rpm包rpm安装原理rpm功能查询1.查询已安装的软件2.查

linux之rpm安装

  • rpm的基本概念
    • rpm定义
    • RPM包的来源
      • 1.镜像文件
        • 原理
      • 2.软件的官方网站
      • 3.第三方网站
      • 4.自制rpm包
    • rpm安装原理
  • rpm功能
    • 查询
      • 1.查询已安装的软件
      • 2.查询安装软件的路径
      • 查询软件的预安装路径(针对未安装的软件)
      • 查询软件对应的软件包
      • 查询某个软件的配置文件
        • 未安装的软件
        • 安装的软件
      • 查询程序是哪个软件包安装提供的
    • 安装
    • 重新安装某个软件
    • 卸载
    • 升级
  • 其他选项


rpm的基本概念

rpm安装需要依赖RPM软件包进行安装。RPM可以理解成windows系统中的安装包

rpm定义

rpm:是redhat package manager的缩写,是RPM软件包的管理工具,可用来对软件的安装、卸载、更新等操作

rpm包的命名格式:
以zziplib-utils-0.13.68-8.el8.x86_64.rpm这个软件包为例:
可将rpm包划分为6个字段。
其中:

第一个字段是zziplib-utils,表示软件的名称
第二个字段是0.13.68,表示版本号
第三个字段是8,表示发布次数
第四个字段是el8,表示开发该软件的是企业版的linux,采用centos8的系统
第五个字段是x86_64,表示该软件采用的架构是x86,64位的系统。该字段也可能是noarch,表示不区分架构
第六个字段是rpm,是rpm包的后缀名


RPM包的来源


1.镜像文件


原理

镜像文件的目录是/dev/cdrom,cdrom是一个光驱文件,是sr0文件的链接文件
在这里插入图片描述

[root@localhost ~]# mount /dev/cdrom /mnt/

mount: /mnt: WARNING: device write-protected, mounted read-only.

镜像文件属于硬件,硬件是不允许直接访问的,只能通过kernel去访问,因此需要将硬件挂载到系统的某个文件夹下,通过linux内核对该挂载的文件夹进行操作,从而读取镜像文件的内容,挂载的文件夹(也可以称之为挂载点)相当于windows中的C盘,D盘。可以将挂载的过程理解成把一个u盘插入到电脑上的过程,我们不通过电脑是获取不了u盘中的内容的,镜像文件也是一样,必须要进行一个挂载(我个人理解的是一个渠道),才能进行读取

注意:镜像文件的挂载点是只读的文件夹,不能对其进行修改。

读取镜像文件的步骤:
1.将镜像文件加入光驱
2.将镜像文件挂载到指定文件夹下面,从而可以对镜像文件进行读取
在这里插入图片描述
在这里插入图片描述
读取镜像文件中的rpm软件包
在这里插入图片描述
镜像文件中的rpm包位置:

centos7的系统中的rpm安装包在/mnt/packets下。
centos8的系统中的rpm安装包在/mnt/AppStream/Packages下。

#umount -v test1:取消镜像文件的挂载
注意:
不能在光碟的挂载文件去操作,因为是只读文件,不能进行操作,光碟就是镜像文件,且从图中可以看出镜像文件的内存已满
在这里插入图片描述

2.软件的官方网站


3.第三方网站

第三方网站有一定风险,不推荐使用
第三方网站:http://rpmfind.net/

4.自制rpm包

优点:安装部署的时候更加方便
通过源码包制作的
RPM包制作过程
RPM制作使用命令

构建RPM包是有命令rpm-build在SPEC文件的指导下完成。spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件。spec文件包含建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个目录下

##查看spec文档的内容
[root@localhost Packages]# rpm -qi openssh-server

在这里插入图片描述

rpm安装原理

在这里插入图片描述

rpm功能

查询

rpm命令安装软件包,在/var/lib/rpm文件下,是rpm的一个数据库,会存放已安装的所有软件,因此,查询时会去在该目录下寻找
相当于windows里面的注册表,里面记录了已安装的软件

1.查询已安装的软件

[root@localhost log]# rpm -qa

2.查询安装软件的路径

linux中安装软件时会把软件中的内容按功能存放在不同的文件夹,不像windows系统,windows系统是全部放在一个文件夹下

这里以tree命令为例

[root@localhost log]# rpm -ql tree

在这里插入图片描述

查询软件的预安装路径(针对未安装的软件)

[root@localhost log]# rpm -qlp kacst-art-fonts-2.0-19.el8.noarch.rpm

在这里插入图片描述

查询软件对应的软件包

-q选项,当软件存在时会返回软件的安装包,软件不存在时会说未安装该软件
在这里插入图片描述

查询某个软件的配置文件


未安装的软件

[root@localhost Packages]# rpm -qip kacst-art-fonts-2.0-19.el8.noarch.rpm

在这里插入图片描述

安装的软件

[root@localhost Packages]# rpm -qi tree

在这里插入图片描述

查询程序是哪个软件包安装提供的

-qf必须接绝对路径

[root@localhost Packages]# rpm -qf /usr/sbin/tracepath

在这里插入图片描述
还可用yum去查询
在这里插入图片描述

安装

rpm安装的自主性很差,rpm安装软件需要自己去解决依赖关系,很麻烦
但是安装速度快

以zsh软件为例

[root@localhost Packages]# rpm -vih zsh-html-5.5.1-6.el8_1.2.noarch.rpm

在这里插入图片描述
-v:可以看到一些详细信息,如准备中、正在升级等字样
-i:install,进行安装的选项
-h:有###的效果,即可以看到进度条
如果想安装多个用空格间隔然后接上要安装的rpm包即可

重新安装某个软件

[root@localhost Packages]# rpm --reinstall -vh zsh-html-5.5.1-6.el8_1.2.noarch.rpm

在这里插入图片描述

卸载

[root@localhost ~]# rpm -e proftpd-1.2.8-1

升级

[root@localhost ~]# rpm -U proftpd-1.2.8-1

其他选项

–force:强制安装
–nodeps:忽略依赖关系,不检查依赖关系


推荐阅读
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 探讨如何在映射文件中处理重复的属性字段,以避免数据操作时出现错误。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 通过网上的资料我自己的实际内核编译,我把对Linux内核编译的过程写在这里,也许对其他的Linux爱好者的编译学习有些帮助,其中很大部分是 ... [详细]
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • HPE OEM Brocade 300 交换机无中断固件升级指南
    本文详细介绍了如何通过FTP方式对HPE OEM Brocade 300交换机进行无中断固件升级,确保网络服务的连续性。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 在Notepad++中配置Markdown语法高亮及实时预览功能
    本文详细介绍了如何在Notepad++中配置Markdown语法高亮和实时预览功能,包括必要的插件安装和设置步骤。 ... [详细]
  • 在Python编程中,经常需要处理文件下载的任务。本文将介绍三种常用的下载方法:使用urllib、urllib2以及requests库进行HTTP请求下载,同时也会提及如何通过ftplib从FTP服务器下载文件。 ... [详细]
author-avatar
木木的亦尘_283
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有