以下内容收集自网络,以作参考。

一、YUM是什么

YUM = Yellow dog Updater, Modified。

主要功能是更方便的添加/删除/更新RPM包。

它能自动解决包的倚赖性问题。

它能便于管理大量系统的更新问题。

二、 YUM的特点

可以同时配置多个资源库(Repository)。

简洁的配置文件(/etc/yum.conf,/etc/yum.repos.d 下的文件)。

自动解决增加或删除rpm包时遇到的倚赖性问题。

使用方便。

保持与RPM数据库的一致性。

三、 YUM安装

CentOS/RHEL:[root@localhost ~]# rpm -ivh yum-3.2.29-30.el6.centos.noarch

四、YUM配置

1、/etc/yum.conf配置文件

yum的配置信息储存在/etc/yum.conf的配置文件中,如下(该配置文件为CentOS-6.3-x64-yum 3.2.29版本,不同版本的配置文件略有不同。):

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=
debuglevel=
logfile=/var/log/yum.log
exactarch=
obsoletes=
gpgcheck=
plugins=
exclude=*.i? kernel kernel-xen kernel-debug
installonly_limit=
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
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

[main]部份是yum的全局配置项,各项的详解如下:

cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。

keepcache:是否保持yum缓存,默认为0。

debuglevel:除错级别,0-10,默认是2。

logfile:yum的日志文件,默认是/var/log/yum.log。

exactarch:有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用1686的包来升级。

gpgchkeck: 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认好像也是检查的。

plugins:是否允许使用插件,默认是0不允许。

exclude:排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。

installonly_limit:允许保留多少个内核包。

distroverpkg:指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。

pkgpolicy:包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。

retries:网络连接发生错误后的重试次数,如果设为0,则会无限重试。

tolerent:也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum不会出现错误信息。默认是0。

2、/etc/yum.repos.d/*.repo

该目录下的所有*.repo文件是系统中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用。

以/etc/yum.repos.d/atomic.repo文件为实例,如下:

# Name: Atomic Rocket Turtle RPM Repository for CentOS / Red Hat Enterprise Linux  -
# URL: http://www.atomicrocketturtle.com/
# Note: This isn't covered by ASL support. -Scott
[atomic] #方框号里的是软件源的名称,将被yum取得并识别。
name = CentOS / Red Hat Enterprise Linux $releasever - atomicrocketturtle.com #name定义了软件 仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是8,9,10等数字,$basearch变 量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择 适合当前系统的软件包,以下相同。
mirrorlist = http://www.atomicorp.com/mirrorlist/atomic/centos-6-$basearch #mirrorlist指定一个镜像服务器的地址列表,通常是开启的,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
#mirrorlist = http://www.atomicorp.com/channels/atomic/centos/6/mirrors-atomic
enabled = 1 #这个选项表示这个repo中定义的源是启用的,0为禁用
priority =
protect =
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt #定义用于校验的gpg密钥
gpgcheck = 1 #这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的 # Almost Stable, release candidates for [atomic]
[atomic-testing]
name = CentOS / Red Hat Enterprise Linux $releasever - atomicrocketturtle.com - (Testing)
mirrorlist = http://www.atomicorp.com/mirrorlist/atomic-testing/centos-6-$basearch
enabled =
priority =
protect =
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt
gpgcheck = # Untested, Unstable, known buggy, and incomplete packages.
[atomic-bleeding]
name = CentOS / Red Hat Enterprise Linux $releasever - atomicrocketturtle.com - (Bleeding)
baseurl = http://www.atomicorp.com/channels/atomic-bleeding/centos/$releasever/$basearch/
enabled =
priority =
protect =
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt
gpgcheck =

 五、扩展RPM包

1、rpmforge

Centos/RHEL默认的yum软件仓库非常有限,仅仅限于发行版本那几张盘里面的常规包和一些软件包的更新,利用rpmforge,可以增加非常多的第三方rpm软件包。

获取

http://dag.wieers.com/rpm/packages/rpmforge-release/

找到与系统平台架构匹配的rpmforge包安装之即可。安装完后.默认会在系统的/etc/yum.repos.d/下新增两个文件,mirrors-rpmforge和rpmforge.repo

安装

[root@localhost ~]# rpm -ivh rpmforge-release-0.3.6-1.el4.rf.i386.rpm

[root@localhost ~]# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

2、加速yum更新速度

安装yum的fast mirror插件,可以加快 CentOS/RHEL yum的速度和提高稳定性,效果显著。

[root@localhost ~]# yum -y install yum-fastestmirror

六、YUM使用

注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.

■ yum更新:

系统更新(更新所有可以升级的rpm包,包括kernel)

[root@localhost ~]# yum -y update

每天定期执行系统更新

[root@localhost ~]# chkconfig yum on

[root@localhost ~]# service yum start

rpm包的更新,检查可更新的rpm包

[root@localhost ~]# yum check-update

更新所有的rpm包

[root@localhost ~]# yum update

更新指定的rpm包,如更新kernel和kernel source

[root@localhost ~]# yum update kernel kernel-source

大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级

[root@localhost ~]# yum upgrade

■ yum安装和删除:

安装rpm包,如xmms-mp3

[root@localhost ~]# yum install xmms-mp3

删除rpm包,包括与该包有倚赖性的包

[root@localhost ~]# yum remove licq

注:同时会提示删除licq-gnome,licq-qt,licq-text

■ yum暂存(/var/cache/yum/)的相关参数:

清除暂存中rpm包文件

[root@localhost ~]# yum clean packages

清除暂存中rpm头文件

[root@localhost ~]# yum clean headers

清除暂存中旧的rpm头文件

[root@localhost ~]# yum clean oldheaders

清除暂存中旧的rpm头文件和包文件

[root@localhost ~]# yum clean 或#yum clean all

注:相当于yum clean packages + yum clean oldheaders

■ rpm包列表:

列出资源库中所有可以安装或更新的rpm包

[root@localhost ~]# yum list

列出资源库中特定的可以安装或更新以及已经安装的rpm包

[root@localhost ~]# yum list mozilla

[root@localhost ~]# yum list mozilla*

注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包

列出资源库中所有可以更新的rpm包

[root@localhost ~]# yum list updates

列出已经安装的所有的rpm包

[root@localhost ~]# yum list installed

列出已经安装的但是不包含在资源库中的rpm包

[root@localhost ~]# yum list extras

注:通过其它网站下载安装的rpm包

■ rpm包信息显示(info参数同list):

列出资源库中所有可以安装或更新的rpm包的信息

[root@localhost ~]# yum info

列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息

[root@localhost ~]# yum info mozilla

[root@localhost ~]# yum info mozilla*

注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息

列出资源库中所有可以更新的rpm包的信息

[root@localhost ~]# yum info updates

列出已经安装的所有的rpm包的信息

[root@localhost ~]# yum info installed

列出已经安装的但是不包含在资源库中的rpm包的信息

[root@localhost ~]# yum info extras

注:通过其它网站下载安装的rpm包的信息

■ 搜索rpm包

搜索匹配特定字符的rpm包

[root@localhost ~]# yum search mozilla

注:在rpm包名,包描述等中搜索

搜索有包含特定文件名的rpm包

[root@localhost ~]# yum provides realplay

七、YUM常用问题解决

1、如果网速慢的话可以通过增加yum的超时时间,这样就不会总是因为超时而退出。

#vi /etc/yum.conf

#加上这么一句

timeout=120

2、yum Existing lock错误的解决办法

如果系统启动的时候, yum出现Existing lock /var/run/yum.pid: another copy is running as pid 3380. Aborting.可以用下面的办法解决:

方法一:etc/init.d/yum-updatesd stop

方法二:rm -f /var/run/yum.pid

主要原因就是yum在自动更新,只要关掉它就可以了。

八、更改YUM源实例

1、yum来源地址

网易:http://mirrors.163.com/.help/CentOS6-Base-163.repo

搜狐:wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo

2、更改yum源

[root@localhost ~]#  cd /etc/yum.repos.d/

[root@localhost ~]#  wget http://mirrors.163.com/.help/CentOS6-Base-163.repo #yum来源地址

[root@localhost ~]#  vi CentOS6-Base-163.repo #编辑文件,把文件里面的$releasever全部替换为版本号,即6(我当前系统为CeotOS6.3),最后保存!

3、清理yum缓存

[root@localhost ~]# yum clean all

[root@localhost ~]# yum makecache #将服务器上的软件包信息缓存到本地,以提高搜索安装软件的速度

[root@localhost ~]# yum install vim* #测试新yum源是否可用

至此,CentOS/RHEL可以使用yum源在线安装软件了!

4、 安装插件

最后,可以考虑装个插件,yum install yum-fastestmirror -y,这个会自动选择快的那个源。

5、结语

如果我在那个目录里放了很多源,怎么知道当前用的是那个呢?如果你没有改yum.conf,那么看/var/cache/yum/文件夹里的一个time开头的文件,就知道了。

附:链接来源

■ http://blog.csdn.net/yuandianlws/article/details/7468287

■ http://www.cnblogs.com/shuaixf/archive/2011/11/30/2268496.html

■ http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/09/2203916.html

【Linux笔记】CentOS&RHEL YUM基础知识的更多相关文章

  1. Linux 笔记 - 第十章 Shell 基础知识

    博客地址:http://www.moonxy.com 一.前言 Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是一 ...

  2. Spring Cloud微服务实战阅读笔记(一) 基础知识

    本文系<Spring Cloud微服务实战>作者:翟永超,一书的阅读笔记. 一:基础知识   1:什么是微服务架构     是一种架构设计风格,主旨是将一个原本独立的系统拆分成多个小型服务 ...

  3. Linux:将rhel yum 切换到centos yum

    Red Hat Enterprise Linux Server(RHEL) yum安装软件时This system is not registered with RHN. RHN support wi ...

  4. bash&nbsp;shell笔记1&nbsp;脚本基础知识

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/505644 * ...

  5. 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能

    本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...

  6. Java基础知识强化之多线程笔记01:多线程基础知识(详见Android(java)笔记61~76)

    1. 基础知识: Android(java)学习笔记61:多线程程序的引入    ~    Android(java)学习笔记76:多线程-定时器概述和使用 

  7. [Linux 001]——计算机和操作系统的基础知识

    在正式开始学习 Linux 操作系统之前,有必要先回顾/学习一下计算机和操作系统的基本知识,为我们在后续的学习中铺路搭桥,在了解计算机一些基础原理的条件下再去进行学习,理解应该会更透彻一些.我会从一个 ...

  8. linux内核(一)基础知识

    1,linux内核的基础知识 1.1 linux内核版本 从内核源码顶层目录Makefile中可以看到: VERSION和PATCHLEVEL组成主版本号,比如2.4.2.5.2.6等,稳定版本的德主 ...

  9. 《UNIX环境高级编程》(APUE) 笔记第一章 - UNIX基础知识

    1 - UNIX基础知识 Github 地址 1. 操作系统 可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.通常将这种软件称为 内核 (kernel) .( Linux 是 GN ...

随机推荐

  1. Oracle入门第四天(上)——表管理与数据处理

    一.常见数据库对象 1.基本对象 对应的对象英文名参考:https://docs.oracle.com/cd/B19306_01/server.102/b14220/intro.htm#sthref6 ...

  2. 20155234 2016-2017-2第十周《Java学习笔记》学习总结

    20155234第十周<Java学习笔记>学习总结 教材学习内容总结 网络编程 在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定 ...

  3. 20155239 实验四 Android程序设计

    20155239 实验四 Android程序设计 目录 第24章:初识Android 任务一: 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号 学习 ...

  4. 20155301 《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    20155301 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 步骤:打开cmd,建立 ...

  5. poj 2079(旋转卡壳求解凸包内最大三角形面积)

    Triangle Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 9060   Accepted: 2698 Descript ...

  6. 通过dotnet命令行设置asp.net core服务的启动地址

    需求: 通过dotnet命令行启动asp.net core 服务时,自定义监听端口. 方法: 在program.cs中增加命令行参数配置: WebHost.CreateDefaultBuilder(a ...

  7. Spring学习(十一)-----Spring使用@Required注解依赖检查

    Spring学习(九)-----Spring依赖检查 bean 配置文件用于确定的特定类型(基本,集合或对象)的所有属性被设置.在大多数情况下,你只需要确保特定属性已经设置但不是所有属性.. 对于这种 ...

  8. Iterable/Iterator傻傻分不清

    区别可迭代对象和迭代器 1.判断是否可以迭代 from collections import Iterabledef fid(times): n = 0 a , b = 0,1 while n < ...

  9. 4星|《亿万》:FBI大战华尔街对冲基金大鳄

    亿万:围剿华尔街大白鲨 全书尝试还原2008-2013年前后FBI指控赛克资本老板科恩通过内幕交易盈利的案件细节. 作者花了数年时间,采访了200多位当事人,阅读了海量的相关资料.书中交代了科恩的发家 ...

  10. Paper Reading - Deep Visual-Semantic Alignments for Generating Image Descriptions ( CVPR 2015 )

    Link of the Paper: https://arxiv.org/abs/1412.2306 Main Points: An Alignment Model: Convolutional Ne ...