【无标题】Linux应用程序中 rpm yum

发布时间:2023年12月23日


一.Linux不仅需要系统命令还需要应用程序

用途区别

系统命令:一般安装操作系统一起安装,用于辅助操作系统本身的管理。

应用程序:一般在操作系统之外另行安装,提供相对独立操作系统的功能,有时候等同于“软件“的概念。

1.典型? ? ? ? ? ?应用程序? ? ? ? ? ?目录

文件类型保存目录
普通执行程序文件/usr/bin
服务器执行程序文件和管理程序文件/usr/sbin
应用程序? ? ? ?配置文件/etc
日志? ?文件/var/log
应用程序? ? ?参考文档? ? ? 文件/usr/share/doc
2 常见软件包封包类型


文件类型? ? ? ? ? ? ? ? ? ? ?保存目录


RPM软件包? ? ? ? ? ? ? ? 扩展名为? “rpm”


DEB软件包? ? ? ? ? ? ? ? ?扩展名为? “deb”


源代码软件包?? ?一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码


绿色免安装的软件包? ? 扩展名不一,以TarBall格式的居多 在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用

二 rpm包管理工具

  1. 由Red Hat公司提出,被众多Linux发行版所采用
  2. 建立统一的数据库文件
  3. 详细记录软件包安装、卸载等变化信息
  4. 自动分析软件包依赖关系

2 rpm软件包格式

拥有约定俗称的命名格式:bash-4.12-15.el6_4.x86_64.rpm

3 rpm命令功能:

  • 查询、验证RPM软件包的相关信息
  • 安装、升级、卸载RPM软件包
  • 维护RPM数据库信息等综合管理操作

4 查询已安装的rpm软件信息


格式: rpm ?-q ?[子选项] ?软件名

选项? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?功能
rpm ?-q? ? ? ? ? ?? ? ? ? ? ?对已安装的软件进行查询


rpm ?-ql ?? ? ? ? ? ? ? ? ? ? ?查看某软件的所有安装目录


rpm ?-qc?? ? ? ? ? ??? ? ? ? ?查看软件的配置文件

? ??
rpm ?-q?? ? ? ? ? ? ??? ? ? ? ? 查看软件是否安装


rpm ?-qa? ? ? ? ? ??? ?显示当前系统中以 rpm 方式安装的所有软件列表

rpm ?-qi ?? ? ? ? ? ? ? ? ? 查看指定软件包的名称、版本、许可协议、用途描述等详细信息

rpm ?-qd? ? ? ? ? ? ??? ? 列出已安装的指定软件的软件包文档所在位置


rpm ?-qf(file)? ? ? ??? ? 查看指定的文件或目录是由哪个软件包所安装的

rpm ?-qF? ? ? ? ? ??? ? 查询已安装的指定软件属于哪个安装包


4 查询未安装的rpm软件的文件中的信息

? ? ??
格式:rpm -qp ?[子选项] ?rpm包文件名(绝对路径的软件包名)

选项? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 说明
rpm ?-qpd? ? ? ? ? ? ?查询未安装指定软件包的文档位置


rpm ? -qpi? ? ? ? ? ? ?查询未安装指定软件包的完整名称详细信息

?
rpm ? -qpl? ? ? ? ? ? ? 查询未安装指定软件包的文件列表


rpm ?-qpc? ? ? ? ? ? ? ?查询未安装指定软件包的配置文件位置

5 挂载目的:提供安装包

系统内部文件夹与硬件设备关联,访问文件夹就等于访问硬件设备的文件

? ? ? ?挂载格式:? ? ? mount 设备 加文件夹路径?

? ? 解挂载格式:? ? ? umount ? ?挂载的文件夹

安装软件首先要有软件包,安装软件包的获取方法

  1. 从网上下载(红帽官方下载;该软件的官网)
  2. 从光盘里面复制(命令格式:wget 链接)

注意:

(1)最好使用空文件进行挂载
(2)一个文件夹挂载多个设备 1光驱 2磁盘 谁后挂显示谁,同一时间只能挂一个
(3)一个设备可以挂载在多个文件夹上 光驱abc
?

6.安装、升级、卸载rpm软件包


格式:rpm ?[选项] ?rpm包文件

常用选项

选项? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 功能
-i? ? ? ? ? ? ? ? ? ? ? ? ? ?安装一个新的rpm软件包


-v? ? ? ? ? ? ? ? ? ? ? ? ? 显示软件安装过程中的详细信息


-h? ? ? ? ? ? ? ? ? ? ? ? ? 在安装或升级软件过程中,以“#”号显示安装进度


-e? ? ? ? ? ? ? ? ? ? ? ? ? ?卸载指定名称的软件包


-U? ? ? ? ? ? ? ? ? ? ? ? ? ?升级某个软件包,若未安装过,则进行安装


-F? ? ? ? ? ? ? ? ? ? ? ? ? ?升级某个软件包,若未安装过,则放弃安装


–force? ? ? ? ? ? ? ? ? ? ?强制安装某个软件包,比如要安装版本更久的软件包


–nodeps? ? ? ? ? ? ? ? ?在安装或升级、卸载一个软件包时,不检查与其它软件包的依赖关系(会导致软件无法使用)


7.维护rpm数据库


?重建RPM数据库,当RPM数据库发生损坏,可通过重建RPM数据修复

基本格式:

rpm --rebuilddb 或rpm --initdb

导入验证公钥,在没有导入用于数字签名的公钥文件之前,安装光盘中的一部分rpm软件包时会报错,需要向rpm数据库中导入位于光盘跟目录下的公钥文件。

基本格式:

mount ?/dev/sr0 ?/mnt/ ? #先挂载

rpm --import /mnt/RPM-GPG-KEY-CentOS-7 #导入公钥

8.解决软件包依赖关系的方法


①安装有依赖关系的多个软件时

被依赖的软件包需要先安装

可同时制定多个 .rpm包文件进行安装

②卸载有依赖关系的多个软件时

依赖其他的程序的软件包需要先卸载

可同时制定多个软件名进行卸载

③忽略依赖关系

结合“ - -nodeps”选项,但可能会导致软件异常

二 源代码?编译安装的基本过程


1 源代码安装软件的优点


获得最新的软件版本,及时修复bug
根据用户需要,灵活制定软件功能


2 使用源代码应用场合?

  1. 安装较新版本的应用程序时

  2. 当前安装的程序无法满足需要时

  3. 需要为应用程序添加新的功能?

configure文件是作者放在源码包中给我们使用,是一个脚本文


3 编译安装准备工作


(1)选择装在哪里
(2)检测编译环境
(3)选择安装模块,默认安装,额外的一些软件功能
(4) /configure (文件是作者放在源码包中给我们使用的一个脚本文件)
? ? ? /configure --help 看到可以安装的模块

4.安装过程中会遇到的问题


(1)/configure缺少编译工具,先删除makefile文件,然后观察报错信息,去百度少什么编译工具,然后yum install去装编译工具
(2)make? 将所有的源代码翻译成二进制,会形成一个绿色的可执行文件
(3)make install将执行文件及相关的一些依赖文件拷贝到之前的指定目录中

编译安装过程

三 yum

  • 基于rpm包管理,能够从制定的服务器自动下载rpm包并且安装,
  • 可以自动处理依赖性关系,且一次安装所有依赖的软件包,不需要频繁安装。
  • 提供了查找、安装、删除某一个、一组甚至全部软件包的命令
? 1 实现yum安装服务

①客户端根据配置文件找到服务端

②客户端将元信息下载到本地(元信息:安装包位置,以及安装的依赖关系)

③根据元信息去下载对应的安装的安装包到本地后,然后安装

④安装完成后,再删除安装包

4 安装步骤

  1. 客户端根据配置文件找到服务端
  2. 客户端将元信息下载到本地(元信息:安装包的位置,以及安装包的依赖关系)
  3. 根据元信息去下载对应的安装包到本地后,然后安装
  4. 安装完成后再删除安装包

①元信息:是一个文件,记录安装包的路径和安装包的依赖关系

②配置文件

  • 必须要放在 /etc/yum.repos.d/文件夹下
  • 必须要以 .repo 结尾


③客户端匹配置文件的格式

  1. [local](代表仓库的描述)
  2. name=local(代表仓库的名字)
  3. baseurl=服务器的地址(指明安装包的位置)
  4. gpgcheck=0(代表关闭验证安装包的安全性)

⑥服务器地址:

  1. file:// — 代表本机位置
  2. file:// /mnt — 代表本机光盘的挂载点(在/mnt文件夹下)
  3. http:// ip地址 — 代表网络地址
  4. https:// ip地址 — 代表网络地址

⑦本地yum仓库? ? :没有网络情况下救急使用本地yum仓库

⑧本地yum仓库安装命令步骤

文章来源:https://blog.csdn.net/MCB134/article/details/134650606
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。