Yum
yum在线安装软件,快捷方便解决依赖问题。
yum的命令形式一般是如下:yum [options] [command] [package ...]
一、列举包文件
yum list 列出资源库中所有已经安装、可以安装或更新的rpm包
yum list perl 列出资源库中特定的可以安装或更新以及已经安装的rpm包 //列出名为perl 的包
yum list perl* 列出perl 开头的包
yum list updates 列出资源库中所有可以更新的rpm包
yum list installed 列出已经安装的所有的rpm包
yum list extras 列出已经安装的但是不包含在资源库中的rpm包
二、列举资源信息
yum info 列出资源库中所有可以安装或更新的rpm包的信息
yum info perl 列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息 //列出perl 包信息
yum info perl* 列出perl 开头的所有包的信息
yum info updates 列出资源库中所有可以更新的rpm包的信息
yum info installed 列出已经安装的所有的rpm包的信息
yum info extras 列出已经安装的但是不包含在资源库中的rpm包的信息
三、搜索
yum search perl 搜索匹配特定字符的rpm包 //在包名称、包描述等中搜索
yum provides realplay 搜索有包含特定文件名的rpm包
四、安装删除包
yum install perl 安装rpm包 //安装perl 包
yum install perl* 安装perl 开头的包
yum localinstall perl.rpm 安装本地rpm包 //
yum remove perl* 删除rpm包,包括与该包有倚赖性的包 //会删除perl-* 所有包
五、更新
yum check-update 检查可更新的rpm包
yum update 更新所有的rpm包(同时升级系统版本和内核)
yum update kernel kernel-source 更新指定的rpm包,如更新kernel和kernel source
yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
(同时升级系统版本但是不升级内核)
六、清空缓存
yum clean packages 清除暂存中rpm包文件
yum clearn headers 清除暂存中rpm头文件
yum clean oldheaders 清除暂存中旧的rpm头文件
yum clearn 清除暂存中旧的rpm头文件和包文件
或
yum clearn all
七.使用yum下载一个rpm包 (不安装)
1.yum install --downloadonly(同时下载 需要依赖的包)
yum install --downloadonly [--downloaddir=/tmp] <package-name>
如果命令找不到这个选项,需要更新yum 或者 安装 yum -y install yum-downloadonly
注意:在CentOS/RHEL 6或更早期的版本中,你需要安装一个单独yum插件
(名称为 yum-plugin-downloadonly)才能使用--downloadonly命令选项:
yum install yum-plugin-downloadonly
下载的软件包位于/var/cache/yum/x86_64/7/base/packages/下
2.yumdownloader (不下载 需要依赖的包)
下载软件包httpd
yumdownloader httpd
vim /etc/yum.conf中修改keepcache = 0改为keepcache = 1
/etc/init.d/yum-updatesd restart
yum -y install httpd
这时软件包已经安装下载,目录为/var/cache/yum
1.有些插件使用yum list *xxx* 无法找到,可以使用yum provides 查询xxx隶属于哪个yum包
通过这个功能可以让你非常方便的一次过安装你所需要的包
比如你安装必要的开发工具包:yum groupinstalll "Development Tools"
记得不要丢了双引号。
如果是安装web server必要的包:yum groupinstall "Web Server"
如果还想知道还有哪些group可以使用: yum grouplist
如果需要的软件官方yum源没有或者版本太低,可以增加新yum源来安装。
查看系统默认安装的yum
# rpm -qa|grep yum
yum-plugin-fastestmirror-1.1.31-34.el7.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-3.4.3-132.el7.centos.0.1.noarch
yum 配置文件
main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main,常位于/etc/yum.conf 中
repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件
repo 文件的格式
所有repository 服务器设置都应该遵循如下格式:
[serverid]
name=Some name for this server
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
baseurl=url://path/to/repository/
- serverid 是用于区别各个不同的repository,必须有一个独一无二的名称;
name 是对repository 的描述,支持像$releasever $basearch这样的变量;
mirrorlis 是指定一个镜像服务器的地址列表,通常是开启的,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
baseurl 是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
其中url 支持的协议有 http:// ftp:// file:// 三种。baseurl 后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl 只能有一个,也就是说不能像如下格式:
baseurl=url://server1/path/to/repository/
baseurl=url://server2/path/to/repository/
baseurl=url://server3/path/to/repository/
其中url 指向的目录必须是这个repository header 目录的上一级,它也支持$releasever $basearch 这样的变量。
url 之后可以加上多个选项,如gpgcheck、exclude、failovermethod 等,比如:
[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch
http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch
http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch
gpgcheck=1
exclude=gaim
failovermethod=priority
其中gpgcheck,exclude
的含义和[main] 部分相同,但只对此服务器起作用,
failovermethode 有两个选项roundrobin 和priority,意思分别是有多个url可供选择时,yum 选择的次序,
roundrobin 是随机选择,如果连接失败则使用下一个,依次循环。
priority 则根据url 的次序从第一个开始。
如果不指明,默认是roundrobin。
选择自己访问速度较快的镜像服务器地址复制并粘贴到repo文件中,我们就能获得较快的更新速度了,格式如下baseurl所示:
baseurl=
ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/releases/10/Everything/i386/os
http://ftp.chg.ru/pub/Linux/fedora/linux/releases/10/Everything/i386/os
http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/releases/10/Everything/i386/os
http://mirror.nus.edu.sg/fedora/releases/10/Everything/i386/os
http://mirror.yandex.ru/fedora/linux/releases/10/Everything/i386/os
http://ftp.twaren.net/Linux/Fedora/linux/releases/10/Everything/i386/os
http://ftp.itu.edu.tr/Mirror/Fedora/linux/releases/10/Everything/i386/os
添加国际yum源
添加源之前要确定系统架构及版本!!!
RPMForge是CentOS系统下的软件仓库,拥有4000多种的软件包,被CentOS社区认为是最安全也是最稳定的一个软件仓库。
到这里找到匹配自己系统的版本 http://repoforge.org/use/(我系统是centos6.3)
#wget http://repository.it4i.cz/mirrors/repoforge/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
#rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
然后/etc/yum.repos.d 这里就会多出一个rpmforge.repo yum源文件
查看yum
#yum repolist
repo id repo name status
base CentOS-6 - Base 6,696
extras CentOS-6 - Extras 63
rpmforge RHEL 6 - RPMforge.net - dag 4,718
updates CentOS-6 - Updates 820
elrepo
企业版 Linux 附加软件包(以下简称 EPEL)是一个由特别兴趣小组创建、维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目。
EPEL 的软件包通常不会与企业版 Linux 官方源中的软件包发生冲突,或者互相替换文件。EPEL 项目与 Fedora 基本一致,包含完整的构建系统、升级管理器、镜像管理器等等。
随着时间的发展,EPEL 仓库越来越丰富,成为一个大型的软件收集仓库。安装epel源的好处就是epel这个项目是由fedora维护的,在维护的这个源中包含许多新的软件。
( CentOS 用户请注意: CentOS 用户可以直接通过 yum install epel-release 安装并启用 EPEL 源。CentOS Extras默认包含该包)
添加(更换)国内yum源
网易163
网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错
http://mirrors.163.com/
欢迎访问网易开源镜像站
进入网站选择自己系统版本的 repo,下载
1.更换系统自带的yum源
首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份)
注意!!!(系统无法识别$releasever,编辑下载文件,把文件里面的$releasever全部替换为版本号,即6,保存)
运行以下命令生成缓存
yum clean all
yum makecache
2.增加系统yum源
下载对应版本repo文件, 放入/etc/yum.repos.d/
编辑下载的163.repo文件:
(因系统无法识别$releasever,编辑下载文件,把文件里面的$releasever全部替换为版本号,即6,保存)
为不与系统自带库重复 将163.repo文件中的
[base] 改为[base163]
[updates] 改为[updates163]
[extras] 改为[extras163]
运行以下命令生成缓存
yum clean all
yum makecache
#yum repolist
repo id repo name status
base CentOS-6 - Base 6,696
base163 CentOS-6 - Base - 163.com 6,696
extras CentOS-6 - Extras 63
extras163 CentOS-6 - Extras - 163.com 63
rpmforge RHEL 6 - RPMforge.net - dag 4,718
updates CentOS-6 - Updates 820
updates163 CentOS-6 - Updates - 163.com 820
repolist: 20,284
中科大的yum源
http://centos.ustc.edu.cn/
搜狐yum源
http://mirrors.sohu.com
设置源的管理策略
如果你喜欢优先从某个源安装软件,那么建议安装 yum-priorities 插件这个插件的作用是给多个源排定优先顺序,
当多个源中存在同一软件的时候, 软件会从优先级最高的源这装.
#yum install yum-priorities |
安装完后需要设置/etc/yum.repos.d/ 目录下的.repo相关文件(如CentOS-Base.repo),在这些文件中插入顺序指令:priority=N (N为1到99的正整数,数值越小越优先),
可以将系统自带yum设置为1,第三方源数值设为大于等于10
例如:
[base]
配置本地yum源
1、挂载系统安装光盘 # mount /dev/cdrom /media/CentOS/
2、配置本地yum源 # cd /etc/yum.repos.d/
# ls
会看到四个repo 文件
CentOS-Base.repo 是yum 网络源的配置文件
CentOS-Media.repo 是yum 本地源的配置文件
3.修改CentOS-Media.repo # cat CentOS-Media.repo
在baseurl 中修改路径为/media/CentOS(即为光盘挂载点)
将enabled=0改为1(可用)
4.禁用默认的yum 网络源
将yum 网络源配置文件改名为CentOS-Base.repo.bak,否则会先在网络源中寻找适合的包,改名之后直接从本地源读取。