yum概念

  • 对比rpm命令,rpm命令需要手动寻找安装该软件包所需要的一系列依赖关系。当软件包需要卸载时,容易由于卸载掉了某个依赖关系而导致其他的软件包不能用。
  • yum(Yellow dog updaterModified)起初由TerraSoft研发的,其宗旨是自动化地升级、安装和删除RPM软件包,收集RPM软件包的相关信息,检查依赖性并且一次安装所有依赖的软件包,无须繁琐地一次次安装。

yum的关键之处是要有可靠的软件仓库,可以是HTTP站点、FTP站点或者是本地软件池,但必须包括rpm的header,header包括了RPM软件包的各种信息,包括描述、功能、提供的文件以及依赖性等。正是收集了这些header并加以分析,其才能自动化地完成余下的任务。

yum的特点
  • 可以同时配置多个软件仓库。
  • 简洁的配置文件/etc/yum.conf
  • 自动解决安装或者删除RPM软件包是遇到的依赖性问题
  • 使用yum非常方便
  • 保持与RPM数据库的一致性。
repo是yum源软件仓库的配置文件

默认存储在/etc/yum.repos.d目录中

例如:方括号[]里面是软件源的名称,会被yum识别;Centos是软件仓库的名称,$releaserver定义了发行版本,baseurl是指定了软件包来源,支持的协议有http://(HTTP网站)、ftp://(FTP网站)以及file:///(本地源)这三种。enabled表示仓库中定义的源是否启用,0表示禁用,1表示启用。gpgcheck表示对从这个软件仓库中下载的RPM软件包将进行GPG校验,已确定该软件包的来源是有效和安全。gpgkey是定义用于校验的GPG密钥

[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Sources.repo
# CentOS-Sources.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
# [base-source]
name=CentOS-$releasever - Base Sources
baseurl=http://vault.centos.org/centos/$releasever/os/Source/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates
[updates-source]
name=CentOS-$releasever - Updates Sources
baseurl=http://vault.centos.org/centos/$releasever/updates/Source/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful
[extras-source]
name=CentOS-$releasever - Extras Sources
baseurl=http://vault.centos.org/centos/$releasever/extras/Source/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages
[centosplus-source]
name=CentOS-$releasever - Plus Sources
baseurl=http://vault.centos.org/centos/$releasever/centosplus/Source/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
创建本地软件仓库

要在本地磁盘上创建本地软件仓库配置软件仓库配置文件,还要将linux系统安装光盘中的软件包复制到系统中。

  • 安装软件包 deltarpm、python-deltarpm和crearterepo软件包 1.使用cd切换到linux系统按光盘软件包目录 2.再使用rpm -ivh [软件包] 进行安装。
  • 复制安装包
  • 创建软件出口配置文件

例如:创建配置文件/etc/yum.repos.d/rhel.repo内容如下

[root@localhost ~]# mkdir /root/yum.repos.d
[root@localhost ~]# vi /root/yum.repos.d/rhel.repo
[root@localhost ~]# cat /root/yum.repos.d/rel.repo
cat: /root/yum.repos.d/rel.repo: No such file or directory
[root@localhost ~]# cat /root/yum.repos.d/rhel.repo
name=Red Hat Enterprise Linux 7
baseurl=file:///root/fhel
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
  • 使用createrepo命令创建软件仓库
[root@localhost ~]# createrepo /root/rhel

如果提示createrepo命令不存在时执行以下命令

[root@localhost ~]# yum -y install createrepo
yum命令可以安装、更新、删除、显示软件包。yum可以自动进行系统更新,基于软件仓库的元数据分析,解决软件包依赖性关系。

命令语法:yum [选项] [命令]

选项 含义
-y 安装过程所有问题都回答yes
-q 安静模式操作
-v 显示详细信息
-c<配置路径> 指定配置文件路径
-x<软件包> 排查指定软件包
--nogpgcheck 禁用GPG签名检查
--installroot=路径 设置安装根目录路径

yum目录部分描述

命令 描述
install<软件包名> 按指定的软件包
reinstall<软件包名> 重新安装软件包
search<软件包名> 通过给定的字符串搜索软件包
list 列出目前yum所管理的所有的软件包名称和版本
list <软件包名> 列出指定软件包安装情况
list installed 列出所有已安装的软件包
ist installed<正则表达式> 列出软件仓库中与正则表达式匹配的所以已经安装的软件包
list extras 列出所有已安装但不在yum软件仓库内的软件包
list extras<正则表达式> 列出与正则表达式匹配的已安装的但不包含在软件仓库中的软件包
list updates 列出所有可更新的软件包
list updates<正则表达式> 列出软件仓库中与正则表达式匹配的所有可以更新的软件包
list aviailable 列出软件仓库中所有可以安装的软件包
list aviailable<正则表达式> 列出软件仓库中与正则表达式匹配的所有可以安装的软件包
list recent 列出最近被添加到软件仓库中的软件包
info 列出目前yum所管理的所有的软件包名称、版本和详细信息
info<软件包名> 列出指定的软件包安装情况和详细信息
info installed 列出所有已安装的软件包和详细信息
info extras 列出所有已安装但不在yum软件仓库内的软件包
info updates 列出所有可更新的软件包信息
provides<软件包> 查找提供指定内容的软件包
deplist<软件包名> 查看知道软件包的依赖关系
update 全部更新
update<软件包名> 更新指定的软件包
check-update 检查可更新的软件包
upgrade<软件包名> 更新指定的软件包
updateinfo 显示软件仓库更新信息
localupdate<软件包名> 本地更新软件包
remove<软件包名> 删除指定软件包
erase<软件包名> 从系统中删除一个或多个软件包
clean packages 清除缓存目录下的软件包
clean headers 清除缓存目录下的头文件
clean 清除缓存数据
clean all 清除缓存目录下的软件包及旧的头文件
version 显示机器或可用仓库的版本
shell 运行交互式的yum shell
history 显示yum使用历史
load-transaction 从文件名加载保存的事物
makecache 生成数据缓存
repolist 显示配置的软件仓库
resolvedep 确定哪个软件包提供了给定的依赖
distibution-synchronization 同步安装的软件包到最新版本
tar包:用户将文件和目录进行归档或压缩以做备份用。比如:将许多文件一起一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件

命令语法:tar [选项] [文件|目录]

选项 含义
-c 创建新的归档文件
-A 追加tar文件支归档
-r 追加文件至归档结尾
-t 列出归档文件的内容,查看已经备份了那些文件
-u 仅追加比归档中副本更新的文件
-x 从归档文件中释放文件
-f 使用归档文件或设备
-k 保存已经存在的文件。在还原文件时遇到相同的文件时,不会进行覆盖
-m 不要解压文件的修改时间
-M 创建多卷的归档文件,以便在几个磁盘中存放
-v 详细报告tar处理的信息
-w 每一步操作都要求确认
-C<目录> 解压缩到特定目录
-z 通过gzip过滤归档
-j 通过bzip2过滤归档
-J 通过xz过滤归档
-a 使用归档后的后缀名来决定压缩程序

例如:归档/root/abc目录,生成文件为/root/abc.tar

[root@localhost ~]# tar cvf /root/abc.tar /root/abc
tar: Removing leading `/' from member names
/root/abc
[root@localhost ~]# ls -l /root/abc.tar
-rw-r--r--. 1 root root 10240 Jul 23 18:21 /root/abc.tar

使用tar命令指定选项时可以不在选项前面输入-,比如cvf和-cvf起到作用是一样的

例2:将文件/root/abc/d添加到/root/abc.tar归档文件中

[root@localhost ~]# touch /root/abc d
[root@localhost ~]# tar rvf /root/abc.tar /root/abc/d
tar: Removing leading `/' from member names
tar: /root/abc/d: Cannot stat: Not a directory
tar: Exiting with failure status due to previous errors
[root@localhost ~]# tar tvf /root/abc.tar
-rw-r--r-- root/root 282 2019-07-17 18:20 root/abc
tar命令特殊使用:在打包或解包的同时调用其他的压缩程序,比如调用gzip、bzip2和xz等。
  • tar调用gzip

gzip是GNU组织开发的一个压缩程序,以".gz“结尾的文件就是gzip压缩的结果,与gzip想对应的解压缩程序是gunzip、tar目录中使用-z选项来调用gzip 例子:将/root/abc目录压缩成/root/abc.tar.gz文件

[root@localhost ~]# tar tvf /root/abc.tar
-rw-r--r-- root/root 282 2019-07-17 18:20 root/abc
[root@localhost ~]# tar zcvf /root/abc.tar.gz /root/abc
tar: Removing leading `/' from member names
/root/abc
[root@localhost ~]# ls -l /root/abc.tar.gz
-rw-r--r--. 1 root root 243 Jul 23 18:54 /root/abc.tar.gz
  • tar调用bzip2

bzip2是一个压缩能力更强的压缩程序,以".bz2"结尾的我呢见就是bzip2压缩的结果,与bzip相对应的解压程序是bunzip2.

tar命令中使用-j选项来调用bzip2

例子:将/root/abc目录压缩成/root/abc.tar.bz2文件

[root@localhost ~]# tar jcvf /root/abc.tar.bz2 /root/abc
tar: Removing leading `/' from member names
/root/abc
[root@localhost ~]# ls -l /root/abc.tar.bz2
-rw-r--r--. 1 root root 0 Jul 23 18:59 /root/abc.tar.bz2
  • tar调用xz

xz是一个使用LZMA压缩算法的无损数据压缩文件格式,以".xz"结尾的文件就是xz压缩的结果。tar目录中使用-J选项来调用。

例子:将/root/abc目录压缩成/root/abc/tar.xz

[root@localhost ~]# tar Jcvf /root/abc.tar.xz /root/abc
tar: Removing leading `/' from member names
/root/abc
[root@localhost ~]# ls -l /root/abc.tar.xz
-rw-r--r--. 1 root root 300 Jul 23 19:07 /root/abc.tar.xz

查看压缩文件/root/abc.tar.xz

root@localhost ~]# tar Jtvf /root/abc.tar.xz
-rw-r--r-- root/root 282 2019-07-23 18:47 root/abc

将压缩文件/root/abc.tar.xz文件解压缩出来

root@localhost ~]# tar Jxvf /root/abc.tar.xz
root/abc
-rw-r--r--. 1 root root 300 Jul 23 19:07 /root/abc.tar.xz 

查看压缩文件/root/abc.tar.xz

root@localhost ~]# tar Jtvf /root/abc.tar.xz
-rw-r--r-- root/root 282 2019-07-23 18:47 root/abc

将压缩文件/root/abc.tar.xz文件解压缩出来

root@localhost ~]# tar Jxvf /root/abc.tar.xz
root/abc


摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著

使用yum管理RPM软件包的更多相关文章

  1. Linux网络原理及基础设,yum管理RPM包

    一:ifconfig命令 1,ifconfig命令的功能:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址. 2. 使用ifup和ifdown命令启动和停止网卡(详见linux系统管理P42 ...

  2. linux基础-第十六单元 yum管理RPM包

    第十六单元 yum管理RPM包 yum的功能 本地yum配置 光盘挂载和镜像挂载 本地yum配置 网络yum配置 网络yum配置 Yum命令的使用 使用yum安装软件 使用yum删除软件 安装组件 删 ...

  3. linux软件管理之yum管理rpm包

    YUM 使用官方源 ==================================================================================== 阿里镜像站 ...

  4. day61:Linux:权限管理&rpm软件包管理&yum工具

    目录 1.权限管理 2.rpm软件包管理 3.yum工具(联网) 权限管理 1.什么是权限? 权限主要用来约束用户能对系统所做的操作 2.为什么要使用权限? 因为系统中不可能只存在一个root用户,一 ...

  5. linux软件管理之yum管理操作软件包

    什么是rpm 1.1`RPM` 全称 `RedHat Package Manager` 缩写,由红帽开发用于软件包的安装.升级.卸载与查询. 1.2rpm包名组成部分 `RPM` 包命名以-将软件分成 ...

  6. Linux基础(4)-硬盘分区、格式化及文件系统的管理、软件包的管理、yum管理RPM包和python的源码安装

    一: 1)  开启Linux系统前添加一块大小为15G的SCSI硬盘 2)  开启系统,右击桌面,打开终端 3)  为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑 ...

  7. 第十六单元 yum管理RPM包

    yum的功能 本地yum配置 光盘挂载和镜像挂载 本地yum配置 网络yum配置 网络yum配置 Yum命令的使用 使用yum安装软件 使用yum删除软件 安装组件 删除组件 清除缓存 查询 课后作业 ...

  8. linux中yum与rpm区别

    一.源代码形式 1.      绝大多数开源软件都是直接以原码形式发布的 2.      源代码一般会被打成.tar.gz的归档压缩文件 3.      源代码需要编译成为二进制形式之后才能够运行使用 ...

  9. 【Linux】CentOs中yum与rpm区别

    一.源代码形式 1.      绝大多数开源软件都是直接以原码形式发布的 2.      源代码一般会被打成.tar.gz的归档压缩文件 3.      源代码需要编译成为二进制形式之后才能够运行使用 ...

  10. yum 系列(一) yum 和 rpm 常用命令

    yum 系列(一) yum 和 rpm 常用命令 一.yum 常用命令 yum 命令:http://man.linuxde.net/yum yum 是在 Fedora 和 RedHat 以及 SUSE ...

随机推荐

  1. DevChat:将 GPT-4 无缝融入 VS Code,极致提升你的编程体验

    目录 一.絮絮叨叨 1.1 缘起 1.2 嫌弃 1.3 征服 二.认真聊聊 2.1 老板给了少年一个任务 2.2 少年祭出了 DevChat 2.3 让 DevChat 帮着选 web 框架 2.4 ...

  2. EasyExcel · 填充Excel

    原文地址 Demo地址 最简单的填充 模版 效果 对象 @Getter @Setter @EqualsAndHashCode public class FillData { private Strin ...

  3. 基于Taro开发京东小程序小记

    一.小程序基础模型 这里要从微信小程序的历史说起,从前身到现在大概分为3个阶段: 阶段1: 微信网页需要用到app的原生能力,微信官方推出了js-sdk 阶段2: 解决移动端白屏问题,采用微信web资 ...

  4. Oracle定时任务(执行某一SQL语句)

    Oracle定时任务,是定时调用存储过程,执行存储过程中的SQl语句 SQl实例 建立存储过程 -- 建立存储过程 CREATE or replace PROCEDURE UPDATE_AGENCY ...

  5. 分布式ID性能评测:CosId VS 美团 Leaf

    分布式ID性能评测:CosId VS 美团 Leaf 基准测试环境 MacBook Pro (M1) JDK 17 JMH 1.36 运行在本机的Docker 的 mariadb:10.6.4 运行基 ...

  6. 体验IntelliJ IDEA的远程开发(Remote Development)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 IDEA的远程开发功能,可以将本地的编译.构 ...

  7. Redis从入门到放弃(4):3种新数据类型

    1.介绍 前面的文章已经介绍了redis的5种基本数据类型,redis6中另外还有3种特殊的数据类型,分别是 Bitmaps (位图).HyperLogLogs(基数统计)和 geospatial ( ...

  8. sqli笔记

    MySQL数据库自带的数据库information_schema 里面有三个比较重要的表  SCHEMATA .TABLES . COLUMNS  保存数据库所有的数据库名 表名  字段名 SCHEM ...

  9. JS语言里常见的随机函数示例,实验结果分布规律分析

    在JavaScript语言里有个 Math.random() 随机函数,用于生成指定范围内的随机数. Math.random()函数 根据官方的定义: Math.random() 函数返回一个浮点数, ...

  10. 部署ELK+filebeat收集nginx日志

    前言 简介 ELK(Elasticsearch.Logstash.Kibana)是开源的实时日志收集分析解决方案. Elasticsearch:开源搜索引擎,是一个基于Lucene.分布式.通过Res ...