yum是如何安装软件的
- yum仓库(也称yum源)用于存放各种rpm的软件包以及软件包之间的依赖关系(repodata目录)
- 需要安装软件的计算机连接到指定yum仓库来安装软件包
yum源作用
软件包管理器,类似Windows下的软件管家
yum源优势
解决软件包之间的依赖关系,提高运维人员的工作效率。
yum源分类
本地yum源
所谓本地yum源是指yum仓库在本地,一般是本地系统光盘或镜像文件。
网络yum源
所谓网络yum源是指yum仓库在远程(不在本地),需要联网才能安装。
- 国内较知名的网络源(aliyun源,163源,sohu源,知名大学开源镜像等)
- 国外较知名的网络源(centos源、redhat源、红帽扩展epel源等)
- 特定软件相关的网络源(Nginx、MySQL、Zabbix等)
yum源配置
以下操作系统以Centos 6.5为例,其他Linux系统类似。
本地yum源配置
挂载镜像到本地操作系统
#手动挂载光盘到指定目录
mount -o ro /dev/sr0 /mnt
# 开机自动挂载
echo "mount -o ro /dev/sr0 /mnt" >> /etc/rc.local
或者
echo "/dev/sr0 /mnt iso9660 defaults,ro 0 0" >> /etc/fstab
说明:
-
/etc/rc.local文件是操作系统开机最后读取的一个文件,该文件需要有可执行权限,开机时系统会帮你自动挂载,建议使用该方式。
-
/etc/fstab文件也可以,但是如果修改错误可能会导致系统起不来。
通过配置文件指定yum仓库
进入到指定目录里,清空操作系统默认的Centos源
[root@Heima ~]# cd /etc/yum.repos.d/
[root@Heima yum.repos.d]# rm -f ./*
在该目录下创建以.repo结尾的文件
[root@Heima yum.repos.d]# vim local.repo
[local] 仓库的名字,不要有特殊符号(自定义)
name=local yum 仓库描述,可以不写
baseurl=file:///mnt 指定yum仓库的路径(重要),file://表示本地仓库
enabled=1 表示启用该仓库,1表示启用;0表示不启用
gpgcheck=0 不用校验仓库里软件包的签名,0表示不校验;1表示校验
网络yum配置
直接通过修改配置文件来指定yum仓库即可。
特定软件的网络源:
[root@Heima yum.repos.d]# cat nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
基本软件的网络源:
[root@Heima yum.repos.d]# cat 163.repo
[163]
name=163 network yum
baseurl=http://mirrors.163.com/centos/6/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6
[root@Heima yum.repos.d]# cat aliyun.repo
[aliyun]
name=aliyun
baseurl=http://mirrors.aliyun.com/centos/6/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6
通过安装软件包,自动创建.repo文件(自动配置)。
配置epel源为例:
1)下载epel源软件包
[root@Heima ~]# wget -P /tmp https://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch.rpm --no-check-certificate
--2019-02-20 09:42:41-- https://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
Resolving mirrors.aliyun.com... 119.96.206.232, 116.211.153.230, 116.211.153.236, ...
Connecting to mirrors.aliyun.com|119.96.206.232|:443... connected.
WARNING: certificate common name “img.ucdl.pp.uc.cn” doesn’t match requested host name “mirrors.aliyun.com”.
HTTP request sent, awaiting response... 200 OK
Length: 14540 (14K) [application/x-redhat-package-manager]
Saving to: “/tmp/epel-release-6-8.noarch.rpm”
100%[================================================================================>] 14,540 --.-K/s in 0.03s
2019-02-20 09:42:41 (538 KB/s) - “/tmp/epel-release-6-8.noarch.rpm” saved [14540/14540]
安装软件包
[root@Heima ~]# rpm -ivh /tmp/epel-release-6-8.noarch.rpm
warning: /tmp/epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]
检查配置文件
[root@Heima ~]# ls /etc/yum.repos.d/epel*
/etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo
yum工具相关命令
yum install package -y
默认是安装来自仓库里的软件,指定的是软件名字。多个包空格隔开;-y (取消交互)
# yum install ./xxx.rpm
或者
# yum localinstall ./xxx.rpm
安装来自本地指定路径下的rpm包,而不是来自仓库
yum remove 或者 erase package
卸载软件包
yum update
更新仓库里所有比本机已经安装过的软件要的软件
yum update package
指定升级的软件
yum search mysql
搜索出所有软件名字“mysql”关键字的软件
yum provides "libaudiofile.so.0"
找出模块由哪些软件包提供
yum clean all
清空之前的yum列表缓存
yum makecache
创建新的缓存
yum list
列出仓库里的所有软件包
yum repolist
列出已配置的软件仓库
yum list |grep 关键字
@代表已经安装成功
yum list installed
查看已安装的包
yum grouplist
查看包组
yum groupinstall "包组"
安装包组
yum groupremove "包组"
总结
-
yum是Linux下用于安装rpm软件包的一个工具,要使用它安装软件包,必须提前配置yum源。
-
yum源分为本地yum源和网络yum源。本地yum源指软件仓库在本地;网络yum源指软件仓库在远程。
-
软件仓库里既有软件包也要有repodata目录,即存放软件之间的依赖关系
-
yum工具安装rpm软件包的最大优势就是解决软件包的依赖关系,提高工作效率。