yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum 语法
1
| yum [options] [command] [package ...]
|
- options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为”yes”),-q(不显示安装的过程)等等。
- command:要进行的操作。
- package操作的对象。
yum常用命令
- 列出所有可更新的软件清单命令:yum check-update
- 更新所有软件命令:yum update
- 仅安装指定的软件命令:yum install
- 仅更新指定的软件命令:yum update
- 列出所有可安裝的软件清单命令:yum list
- 删除软件包命令:yum remove
- 查找软件包 命令:yum search
- 清除缓存命令:
- yum clean packages: 清除缓存目录下的软件包
- yum clean headers: 清除缓存目录下的 headers
- yum clean oldheaders: 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
使用实例
实例1:安装 pam-devel
1 2 3 4 5 6 7 8 9 10 11 12 13
| [root@www ~] Setting up Install Process Parsing package install arguments Resolving Dependencies <==先检查软件的属性相依问题 --> Running transaction check ---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be updated --> Processing Dependency: pam = 0.99.6.2-4.el5 for package: pam-devel --> Running transaction check ---> Package pam.i386 0:0.99.6.2-4.el5 set to be updated filelists.xml.gz 100% |=========================| 1.6 MB 00:05 filelists.xml.gz 100% |=========================| 138 kB 00:00 -> Finished Dependency Resolution ……(省略)
|
实例2:移除 pam-devel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| [root@www ~] Setting up Remove Process Resolving Dependencies <==同样的,先解决属性相依的问题 --> Running transaction check ---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be erased --> Finished Dependency Resolution Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Removing: pam-devel i386 0.99.6.2-4.el5 installed 495 k Transaction Summary ============================================================================= Install 0 Package(s) Update 0 Package(s) Remove 1 Package(s) <==还好,并没有属性相依的问题,单纯移除一个软件 Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : pam-devel Removed: pam-devel.i386 0:0.99.6.2-4.el5 Complete!
|
实例3:利用 yum 的功能,找出以 pam 为开头的软件名称有哪些?
1 2 3 4 5 6 7 8 9 10 11 12
| [root@www ~] Installed Packages pam.i386 0.99.6.2-3.27.el5 installed pam_ccreds.i386 3-5 installed pam_krb5.i386 2.2.14-1 installed pam_passwdqc.i386 1.0.2-1.2.2 installed pam_pkcs11.i386 0.5.3-23 installed pam_smb.i386 1.1.7-7.2.1 installed Available Packages <==底下则是『可升级』的或『未安装』的 pam.i386 0.99.6.2-4.el5 base pam-devel.i386 0.99.6.2-4.el5 base pam_krb5.i386 2.2.14-10 base
|
国内 yum 源
阿里yum源安装
阿里云与yum源是国内最好的yum源之一。
备份
1
| mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
|
下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 5
1
| wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
|
CentOS 6
1
| wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
|
CentOS 7
1
| wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
|
之后运行yum makecache生成缓存
1 2
| yum clean all yum makecache
|
网易yum源安装
网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。
将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。
安装步骤
首先备份/etc/yum.repos.d/CentOS-Base.repo
1
| mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
|
下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份)
运行以下命令生成缓存
1 2
| yum clean all yum makecache
|
除了阿里和网易之外,国内还有其他不错的yum源,比如中科大和搜狐。
中科大的yum源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos
sohu的yum源安装方法查看: http://mirrors.sohu.com/help/centos.html
配置本地yum仓库
实现此案例需要按照如下步骤进行。
命令操作如下所示:
1 2 3 4
| [root@localhost ~] mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~] /dev/sr0 on /media type iso9660 (ro)
|
步骤二:将本地设置为客户端,进行Yum验证
Yum客户端需编辑配置文件,命令操作如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [root@localhost ~] [root@localhost yum.repos.d] rhel-source.repo [root@localhost yum.repos.d] [root@localhost yum.repos.d] [rhel-6] //中括号里内容要求唯一,但不要出现特殊字符 name=Red Hat Enterprise Linux 6 //此为描述信息,可以看情况填写 baseurl=file:///media/ //此项为yum软件仓库位置,指向光盘挂载点 enabled=1 //此项为是否开启,1为开启0为不开启 gpgcheck=1 //此项为是否检查签名,1为监测0为不检测 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //签名认证信息的路径 [root@localhost /] Loaded plugins: product-id, refresh-packagekit, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. rhel-6 | 3.9 kB 00:00 ... rhel-6/primary_db | 3.1 MB 00:00 ... repo id repo name status rhel-6 Red Hat Enterprise Linux 6 3,690 repolist: 3,690
|
yum安装“epel”扩展源
使用yum安装rpm包时,经常遇到一些包没有,这时候你可以尝试安装epel的扩展源,这里有很多系统不自带的rpm包。
1 2
| [root@localhost ~] [root@localhost ~]
|
你会发现最右侧出现很多epel的rpm包。
阿里云扩展源:
下载
1
| wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
|
也可以rpm安装
1
| rpm -ivh http://mirrors.zju.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
|
Remi源
安装REMI仓库之前,需要启用EPEL仓库,因为REMI中的一些包依赖于EPEL仓库
在CentOS 7上:
1 2
| rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
|
在CentOS 6上:
1 2
| rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
|
默认地,REMI是禁用的。要检查REMI是否已经成功安装,使用这个命令。你会看到几个REMI仓库,比如remi、remi-php55和remi-php56。
1
| yum repolist disabled|grep remi
|
从REMI仓库中安装一个包
如上所述,最好保持禁用REMI仓库,只有在需要的时候再启用。
要搜索或安装REMI仓库中的包,使用这些命令:
1 2
| yum --enablerepo=remi search <keyword> yum --enablerepo=remi install <package-name>
|
Remi下载地址
- 列出可用: yum repolist enabled
- 列出禁用: yum repolist disabled
- 列出所有(默认): yum repolist all
- 列出一个 repo 源(remi) 中可用的包
1
| yum --disablerepo="*" --enablerepo="ksplice-uptrack" list available
|
yum保留下载个rpm包
可以设置使yum保留已经下载的rpm包,供以后升级或重新安装时使用。
修改/etc/yum.conf即可
1 2 3 4
| [main] cachedir=/home/soft1/yumcache keepcache=1 debuglevel=2
|
chchedir是放置下载的包的地方,可以修改为自己想放置的位置。
keepcache为1时表示保存已经下载的rpm包。
yum如何下载rpm包到本地
首先要安装一个小插件,yum-plugin-downloadonly.noarch
,不知道包名用 yum -list |grep download
搜索
1
| yum install -y yum-plugin-downloadonly.noarch
|
然后就可以下载了:
1
| yum install vte --downloadonly --downloaddir=/tmp
|
1 2 3 4 5 6 7 8 9
|         下载vte到指定/tmp下         如果已安装过的包这个小插件默认是不能下载的,我们可以用 reinstall 下载,如下图例: ![](https://github.com/hcldirgit/image/blob/master/linux%E5%91%BD%E4%BB%A4-yum/01.png?raw=true) ```bash yum reinstall vim --downloadonly --downloaddir=/tmp
|
yum配置
/etc/yum.conf配置详解:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 的RPM包。 obsoletes=1 gpgcheck=1 plugins=1 个插件。 installonly_limit=3 exclude=selinux* /etc/yum.repos.d/ *.repo [fedora] name=Fedora $releasever - $basearch failovermethod=priority exclude=compiz* *compiz* fusion-icon* 选择自己访问速度较快的镜像服务器地址复制并粘贴到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 enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|