YUM 简介(类似于yum-conda,rpm-pip)

YUM 的全称是 Yellowdog Updater, Modified,它是一个 C/S 架构的软件,能够对基于 RPM 格式的软件包进行管理,它提供了包括自动解决依赖关系,软件包的分组,软件包的升级等功能。 2013 年 7 月 10 日, yum 工具的开发者 Seth Vidal 先生因为车祸不幸去世, 我们为计算机领域失去这位专家感到惋惜。

构成一个完整的 yum 服务,需要以下部分:

  1. yum 服务器上的服务仓库(存储 rpm 文件和索引文件)
  2. 提供 rpm 和索引下载的网络服务(http 或者 ftp)
  3. 客户端的 yum 命令行工具
  4. 客户端仓库配置信息和插件扩展模
  5.  1. YUM: Yellowdog Update Modifier
  6. 完成RHEL系列前端自动解决依赖关系安装工具,依赖rpm存在

        2.工作模式:C/S 架构

          Server端(yum仓库):依赖关系库、原文件、校验码文件

          Client端:yum客户端程序、配置文件(连接Server路径信息)

        3.设计缺陷:

    某一次安装过程中半途终止,再次重启后将无法解决程序间的依赖关系

    yum升级版dnf就是为了解决此类问题

        2.yum repository: yum repo,yum仓库

    存储rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata);

yum 的配置

yum 仓库的配置

搭建一个简单的 yum 仓库

搭建一个简单的 yum 仓库,只需要:

  • 将 rpm 软件包放在某个目录下
  • 对此目录使用 createrepo 命令,对 rpm 包生成索引信息
  • 使用 http 或者 ftp 将此目录提供给客户端下载

yum 客户端配置

要使用 yum 需要在客户端配置好 yum 仓库的位置(这里的仓库可以是本地文件系统上的,也可以是远程的)。

yum 命令行使用相关的配置在 /etc/yum.conf 中,这里可以定义 yum 命令使用的配置,如是否使用缓存,缓存文件路径等。这个文件的设定一般不需要改动。

用于指明 yum 仓库的配置文件在 /etc/yum.repos.d/*.repo 中,这些文件以 .repo 为后缀名。

仓库配置的可用选项有:

  1. [repositoryid]

  2. # 对于当前系统的yum来讲,此repositoryid用于惟一标识此repository指向,因此,其必须惟一;

  3. name=

  4. # 当前仓库描述信息;

  5. baseurl=url://path/to/repository/

  6. # 指明repository的访问路径;通常为一个文件服务器上输出的某repository;url 可以是 ftp,http 或者本地文件系统的 url

  7. enabled={1|0}

  8. 此仓库是否可被使用

  9. gpgcheck={1|0}

  10. 是否对程序包做校验

  11. gpgkey=url://path/to/keyfile

  12. 指明gpgkey文件路径;

  13. cost=#

  14. 指明当前repository的访问开销,默认为1000;

下面是一个配置范例:

  1. [root@bogon yum.repos.d]# cat nginx.repo

  2. # nginx.repo

  3. [nginx]

  4. name=nginx repo

  5. baseurl=http://nginx.org/packages/centos/6/$basearch/

  6. gpgcheck=0

  7. enabled=1

这里的 baseurl 中使用了 $basearch 变量,使得这个配置文件更具有通用性。在 *.repo 文件中常用的变量有:

  1. $releasever

  2. 当前 OS 发行版的主版本号,如对 CentOS 6.6 系统,这个值为 6

  3. $arch

  4. 当前系统的平台,如 i386, x86_64 等

  5. $basearch

  6. 基础平台,如 x86_64 和 amd64 平台的基础平台同为 x86_64

yum 客户端命令的使用

仓库管理

repolist:列出已经配置的所有可用仓库

yum repolist [all|enabled|disabled]

缓存管理

clean 清理缓存

yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

makecache 缓存创建

yum makecache 将会自动连接至每一个可用仓库,下载其元数据,并将其创建为缓存。

程序包查看

yum list [all] 查看所有仓库的可用软件包,还可以跟上包名查看特定的软件包,包名可以使用通配符匹配,如列出所有以 zlib 开头的软件包:

  1. [root@bogon ~]# yum list zlib*

  2. Loaded plugins: downloadonly, fastestmirror, refresh-packagekit, security

  3. Loading mirror speeds from cached hostfile

  4. base | 3.7 kB 00:00

  5. extras | 3.4 kB 00:00

  6. Installed Packages

  7. zlib.x86_64 1.2.3-29.el6 @anaconda-CentOS-201410241409.x86_64/6.6

  8. Available Packages

  9. zlib.i686 1.2.3-29.el6 base

  10. zlib-devel.i686 1.2.3-29.el6 base

  11. zlib-devel.x86_64 1.2.3-29.el6 base

  12. zlib-static.x86_64 1.2.3-29.el6 base

可以单独查看所有已安装,可升级,可用软件包,使用

yum list {available|updates|installed|extras|obsoletes} [glob_exp1] [...]

查看软件包组,使用 grouplist

yum grouplist [glob_exp]

程序包安装

安装使用 install 子命令,并跟上需要安装的包名

yum install package1 [package2] [...]

例如,安装 mysql-server 软件包:

yum install mysql-server

在安装过程中,程序会交互式的提示是否确认安装,需要按 y 进行确认,如果需要不提示,可以使用 -y 选项,如 yum -y install mysql-server

如果一个软件包有多个版本可用,yum 默认安装最新的那个,如果向指定版本,那么在包名后跟上想要安装的版本号

yum install PACKAGE-VERSION

重新安装

重新安装使用 reinstall,其使用方式和 install 相同。

程序包升级

软件包的升级使用 update 子命令,并接上需要升级的包名

yum update [package1] [package2] [...]

程序包降级

软件包降级使用 downgrade 子命令,并跟上需要降级的包名

yum downgrade package1 [package2] [...]

检查可用升级

使用 yum check-update 检查有哪些包可以升级

卸载

卸载使用 remove 子命令

yum remove package1 [package2] [...]

如果一个软件包被其他软件包依赖,那么卸载它的时候依赖此软件包的其他软件包也将被卸载。卸载也可以使用-y 表示非交互式模式。

查询

查询软件包的概要信息,使用 info 子命令

yum info PACKAGE

在软件包的包名和概要中搜索某个关键字,使用 search 子命令。

yum search KEYWORD

查询某个文件由哪个软件包所安装生成,使用 provides 子命令,如查询 /usr/bin/passwd 有哪个软件包所生成:

  1. [root@bogon ~]# yum provides /usr/bin/passwd

  2. Loaded plugins: downloadonly, fastestmirror, refresh-packagekit, security

  3. Loading mirror speeds from cached hostfile

  4. passwd-0.77-4.el6_2.2.x86_64 : An utility for setting or changing passwords using PAM

  5. Repo: base

  6. Matched from:

  7. Filename: /usr/bin/passwd

查询的文件还可以使用通配符进行通配。

安装或升级本地的软件包

安装本地软件包使用 localinstall 子命令,也可以直接使用 install 子命令,安装本地软件包指定的软件包的文件名。

包租管理

列出所有包组:grouplist

显示指定包组详情:groupinfo group1 [...]

安装包组:groupinstall

卸载:groupremove

升级:groupupdate

这些子命令的用法和安装普通软件包时的用法是相同的。安装包租是也可以使用 installremove 或 update来管理,如安装 Development tools 软件包:

yum install @Development tools

yum 命令的可用选项

-y :自动在交互式回答 "yes"

--disablerepo=:临时禁用在配置文件中配置并启动的某仓库

--enablerepo=:临时启用指定的某仓库

--nogpgcheck=:禁止做包校验

yum 插件

yum 还能够支持插件的安装,能够扩展 yum 的功能,这里列举 yum-downloadonly 插件,这个插件的功能是使用 yum 下载一个 rpm 包到某个目录中而不安装它。

下载插件:

yum install yum-downloadonly

使用 --downloadonly 选项来下载 rpm 包而不安装:

yum install --downloadonly --downloaddir=<directory> <package>

YUM客户端配置

1.yum配置文件路径

/etc/yum.conf:为所有yum仓库提供公共配置

/etc/yum.repos.d/*.repo:为仓库的指向提供配置

2./etc/yum.conf主配置定义

[root@localhost ~]# man 5 yum.conf           #可获得yum.conf的详解

[root@localhost ~]# cat /etc/yum.conf

[main]            #通用主配置段

cachedir=/var/cache/yum/$basearch/$releasever          # 缓存文件路径

keepcache=0                     # 缓存到本地的文件是否保存

debuglevel=2                   # 调试级别

logfile=/var/log/yum.log                 # 安装的日志文件

exactarch=1                                              # 精确严格的平台release匹配

obsoletes=1

gpgcheck=1                      #检测来源合法性和完整性

plugins=1                         #支持插件机制

installonly_limit=5                    #同时安装多少程序包

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bu        #追踪bug路径

distroverpkg=centos-release               # 当前发行版版本号从哪儿获取

#  This is the default, if you make this bigger yum won't see if the metadata

# is newer on the remote and so you'll "gain" the bandwidth of not having to

# download the new metadata and "pay" for it by yum not having correct

# information.

#  It is esp. important, to have correct metadata, for distributions like

# Fedora which don't keep old packages around. If you don't like this checking

# interupting your command line usage, it's much better to have something

# manually check the metadata once an hour (yum-updatesd will do this).

# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo

# in /etc/yum.repos.d

3.仓库(*.repo)配置文件定义:

[repositoryID]        #仓库ID,唯一标识别,不能重复

name=Some name for this repository       #  完整的仓库名称

baseurl=url://path/to/repository/          # yum仓库指明的访问路径

enabled={1|0}           #是否启用此yum仓库,默认启用

gpgcheck={1|0}              #是否检查完整性和来源合法性

gpgkey=URL                     #秘钥文件位置,可能是对方仓库提供

enablegroups={1|0}              #是否基于组来批量管理程序包

failovermethod={roundrobin|priority}    #故障转移方法:轮询、根据优先级选择; 默认roundrobin随机

cost=#                    #设置开销,默认为1000

说明:

1)*.repo可以将多个[repositoryID]的配置信息放在一个而文件内,也可以切成多个方便管理

2)baseurl可以使用:ftp:// 、http:// 、nfs:// 、file:///  指明URL路径

3)baseurl等号两边不能有空格,其后可以填写多个镜像访问路径,每行一个,不能顶行写

多个访问路径间联系是镜像相同,目的是为了做备用访问

4)更多选项使用man  5  yum.conf查看,基本配置只需前三行就可以

5)发行版光盘镜像安装可能会自动配置网络镜像URL地址

三、yum命令的用法

yum   [options]   [command]   [package ...]

1.OPTIONS

--nogpgcheck:禁止进行gpg check;

-y:    自动回答为“yes”;

-q: 静默模式,不输出显示信息;

--disablerepo=repoidglob:临时禁用此处指定的repo;

--enablerepo=repoidglob:临时启用此处指定的repo;

--noplugins:禁用所有插件;

2.常用COMMAND

(1)显示仓库列表:repolist

# yum repolist [all|enabled|disabled]    [所有|可用的|不可用]

(2)显示程序包:list

# yum list [all | glob_exp1] [glob_exp2] [...]     [所有的|符合glob通配条件的]

# yum list {available|installed|updates} [glob_exp1] [...]   可用尚未安装的,已经安装的,可升级的

(3)安装程序包:install

# yum  install package1 [package2] [...]

# yum reinstall package1 [package2] [...]  (重新安装)

(4)卸载程序包:此时依赖于此安装包也会被卸载

yum remove | erase package1 [package2] [...]

(5)升、降级安装程序包:update、downgrade

# yum update [package1] [package2] [...]         升级操作

# yum downgrade package1 [package2] [...]       降级操作

(6)检查可用升级:check-uodate

# yum check-update

(7)查看程序包简要信息:info

# yum info [package1]  [package2]  [...]

(8)查看指定的特性(可以是某文件)是由哪个程序包所提供:provides

yum  provides | whatprovides feature1 [feature2] [...]

(9)清理本地缓存:clean

# yum  clean  <packages | metadata | expire-cache | rpmdb | plugins | all >

包、源数据、过期缓存、rpmdb、插件、所有

包安装完了会自动清除、而元数据(依赖关系等)不会自动,但下次yum安装会自动重新校验

(10)构建缓存:重新yum安装会自动创建缓存数据:makecache

#  yum makecache

(11)以指定的关键字搜索程序包名及summary信息:search

# yum  search  string1  [string2]  [...]

(12)查看指定包所依赖的功能(capabilities):

# yum deplist  package1  [package2] [...]

(13)查看yum事务历史:history

history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

3.COMMAND:安装及升级本地程序包

指定安装本地的*.rpm,但是会根据yum源现有依赖关系,解决此安装可能出现的依赖关系

# yum  localinstall rpmfile1 [rpmfile2] [...]

# yum  localupdate rpmfile1 [rpmfile2] [...]

4.COMMAND:包组管理的相关命令:

包组:一堆程序的一个集合,用于一起安装,因为某些程序安装需要依赖包组内容

# yum  groupinstall group1 [group2] [...]     安装包组

# yum  groupupdate group1 [group2] [...]    升级包组

# yum  grouplist [hidden] [groupwildcard] [...]   显示包组列表

# yum  groupremove group1 [group2] [...]     移除包组

# yum  groupinfo group1 [...]   显示包组信息

四、创建yum仓库

1.使用光盘当作本地yum仓库:

光盘的镜像本身就是一个yum源,自己安装系统时候选择安装工具时就是借助yum自动安装

(1)挂载光盘至某目录,例如/media/cdrom   # mount -r [-t iso9660]  /dev/cdrom /media/cdrom

(2)创建配置文件

[ID]

name=

baseurl=file:///… …

gpgcheck=

2.yum的repo配置文件中可用的变量:

$releasever: 当前OS的发行版的主版本号;

$arch: 平台;

$basearch:基础平台,同一系列最基本的架构,如32、64;

$YUM0-$YUM9 可做自定义

3.手动创建yum仓库:

(1)安装工具:createrepo

(2)下载所需要的所有文件到本地某个路径

(3)创建关联关系: createrepo - Create repomd (xml-rpm-metadata) repository

命令:createrepo   [options]   <directory>

当完成狗会生成repodata即可

(4)配置yum源文件,创建*.rope写入信息即可

linux基础(三)——yum的使用相关推荐

  1. 《Linux基础三》用户和文件权限管理

    用户和文件权限管理 1,用户 管理员用户: Root用户,也称根用户.超级用户.超级管理员 可对根目录执行读写和执行操作 具有系统中的最高.所有权限 普通用户: 权限有限的用户 Root用户拥有系统的 ...

  2. Linux 基础 之 yum 黑名单 和 安装虚拟机脚本

    一.屏蔽yum仓库内的一些软件(yum黑名单) yum list         ##查看 (32位和64位的都存在) vim /etc/yum.conf 加一个 exclude=*.i686     ...

  3. Linux基础(指令+工具)

    Linux基础指令 基本概念 1.谈到linux,最先想到,linux和window有什么区别呢? linux是一个多用户操作系统,多用户同时操作,但都有各自访问权限 linux下一切皆文件,文件夹也 ...

  4. 【Linux基础】Linux软件包管理器yum的使用指南rzsz安装

    [Linux基础]Linux软件包管理器yum的使用指南|rzsz安装 前言 主页: 潮.eth的博客_CSDN博客-C学习,C++学习,数据结构and算法领域博主 Linux基础专栏: Linux基 ...

  5. Linux基础优化方法(三)———字符集编码设置优化

    Linux基础优化方法(三)---字符集编码设置优化 一.什么是字符编码 二.编码GB2312.GBK.UTF-8 三.工作时有乱码的原因 四.进行优化 1.CentOS 6 ①.查看默认编码信息: ...

  6. Linux基础优化方法(一)———优化命令提示符和yum源仓库

    Linux基础优化方法(一)---优化命令提示符和yum源仓库 一.优化命令提示符 1.为什么要优化 2.命令提示符内容 3.优化方法:修改PS1环境变量 ①.修改命令提示内容 ②.命令提示符如何修改 ...

  7. Linux —— 基础开发工具的基本使用 —— yum、vim、gcc、make和makefile,gdb的简单应用

    目录 1.由生活常识引发的思考 2.yum的概念与使用 2.1yum的概念 2.2yum的使用 3.vim的概念和使用 3.1vim的概念 3.2vim的基本操作 3.2命令模式.插入模式.末行模式的 ...

  8. #Linux基础(三)

    #Linux基础(三) ###vi/vim的特点 vi/vim是一种纯文本编辑工具,它不像world可以排版,可以调整字体大小,可以改变字体颜色. vi/vim正是一个文本编辑工具,只能对文本的内容进 ...

  9. <<Linux基础环境常用工具—yum、vim、gcc/g++、gdb、git等>>

    Linux基础环境常用工具-yum.vim.gcc/g++.gdb.git等. 1.软件包管理器: yum 2.编辑器:vim 3.编译器:gcc/g++ 4.调试器:gdb 5.项目自动化构建工具: ...

  10. 生物信息入门之 linux,手把手教你学生信系列(三)-- Linux 基础入门拦路虎

    原本计划这一篇介绍基础命令的,然后我们微课学院之前已经有相关录制好的视频,而且网上的相关文章多不胜数,因此也就不在卖弄了,简单交流一下 Linux 入门过程中的几个拦路虎,具体命令等在后文具体与到时候 ...

最新文章

  1. Spring-----AOP-----事务
  2. CDH 5.13.0 集成 Phoenix
  3. php keep user login,php5.4安装dedecms登录后台空白解决办法(session_register函数已废弃)...
  4. mysql数据库搜索引擎要先进入_Mysql搜索引擎都有哪些区别
  5. 【方案分享】2021年钟薛高营销策划方案.pptx(附下载链接)
  6. 良心推荐效率办公!清描:精准稳定的文字识别软件
  7. 基于ssm宠物医院管理系统获取(java毕业设计)
  8. php 去除单引号,php如何去除双引号
  9. 加油中国,雄起汶川-快乐工作,快乐生活(多图)
  10. 计算机开机慢的原因及解决方法,电脑开机速度慢怎么解决?Win10电脑开机速度变慢的原因及解决方法(2)...
  11. 2023年全国最新工会考试精选真题及答案41
  12. 【爬虫实战】Python 自制天气预报程序!爬取全国天气网
  13. 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客
  14. Qt网络资源汇总(官网、源码、社区、博客)
  15. P1185 绘制二叉树——蒟蒻的暴力模拟
  16. 短视频剪辑技巧,4法则创作热门视频
  17. 【BAT-表姐御用04ren进阶命令】文件数字顺序命名及改名(含命令解释)
  18. 如何安装EOS智能合约开发工具包CDT
  19. 【三维点云】CC教程1(Context Capture)
  20. OpenResty LuaJIT和lua-resty-core(FFI vs Lua CFunction)介绍

热门文章

  1. UI_UISlider控件
  2. JSP,PHP,Python,Ruby,Perl概要及各自特点
  3. ExtJS4.2学习 php版(五)
  4. 编程十年 (3):初识计算机
  5. Spring框架之ioc
  6. React后台管理系统-订单管理
  7. windows service in vs
  8. 网站日志统计案例分析与实现
  9. (转)Android调试运行时错误之Process XXX terminated by signal (11)
  10. pkgm : 压缩包维护与解压脚本