目录
一、yum仓库简介
1.1 简介
1.2 yum实现过程
二、yum配置文件及命令
2.1 yum配置文件
2.2 仓库设置文件
2.3 日志文件
2.4 yum常见命令
2.5 命令详解
2.5.1 yum list [软件名]
2.5.2 yum info [软件名]
2.5.3 yum search <关键词>
2.5.4 yum whatprovides <关键词>
2.5.5 yum grouplist [包组名]
2.5.6 yum install [软件名]
2.5.7 yum remove <软件名>
2.5.8 yum groupinstall <包组名>
2.5.9 yum history
三、搭建仓库的方式
3.1 搭建本地yum仓库
3.2 http方式外网环境搭建yum仓库(搭建阿里云仓库)
3.3 http方式内网环境搭建yum仓库
3.4 ftp方式搭建yum仓库
四、总结
一、yum仓库简介
1.1 简介
基于RPM包构建的软件更新机制
可以自动解决依赖关系
所有软件包由集中的YUM软件仓库提供
c/s架构
linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。
yum软件仓库中的rpm软件包可以是由红帽官方发布的,也可以是第三方发布的,当然也可以是自己编写的
1.2 yum实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
二、yum配置文件及命令
2.1 yum配置文件
位置:/etc/yum.conf //主配置文件
[root@localhost]# /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 $basearch代表硬件 $releasever系统版本比如7 keepcache=0 //是否保存缓存 0代表不保存,1代表保存 debuglevel=2 //调试级别了解即可 logfile=/var/log/yum.log // 日志文件位置 exactarch=1 //是否允许不同版本的rpm安装 obsoletes=1 //update 的一个参数是否可以允许旧版本的运行 gpgcheck=1 //验证秘钥 plugins=1 //是否允许插件1代表可以 installonly_limit=5 //保存几个内核 5代表5个 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release yum的repo配置文件中可用的变量: $releasever: 当前OS的发行版的主版本号,如:8,7,6 $arch: CPU架构,如:aarch64, i586, i686,x86_64等 $basearch:系统基础平台;i386, x86_64 $contentdir:表示目录,比如:centos-8,centos-7 $YUM0-$YUM9:自定义变量
2.2 仓库设置文件
位置:/etc/yum.repos.d/*.repo //yum仓库文件位置
默认的yum仓库 是centos官方的yum源,需要联网才可以使用
[root@localhost yum.repos.d]# ls /etc/yum.repos.d/ bak CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-CR.repo CentOS-Media.repo
2.3 日志文件
位置:/var/log/yum.log //日志文件
[root@localhost ~]# cat /var/log/yum.log Feb 18 10:12:12 Installed: tree-1.6.0-10.el7.x86_64 Feb 18 10:33:10 Installed: 12:dhcp-4.2.5-68.el7.centos.x86_64 Feb 20 08:46:40 Installed: tree-1.6.0-10.el7.x86_64
2.4 yum常见命令
命令 | 作用 |
yum repolist all | 列出所有仓库 |
yum list all | 列出仓库中所有软件包 |
yum info 软件包名称 | 查看软件包信息 |
yum install 软件包名称 | 安装软件包 |
yum reinstall 软件包名称 | 重新安装软件包 |
yum update 软件包名称 | 升级软件包 |
yum remove 软件包名称 | 卸载软件包 |
yum clean all | 清除所有仓库缓存 |
yum check-update | 检查可更新的软件包 |
yum grouplist | 查看系统中已经安装的软件包组 |
yum groupinstall 软件包组 | 安装指定的软件包组 |
yum groupremove 软件包组 | 移除指定的软件包组 |
yum groupinfo 软件包组 |
查询指定的软件包组信息 |
yum history | 查看当前yum操作历史 |
yum history undo | 加入序号卸载序号里安装的软件 |
yum history redo | 加入序号重新执行序号里的操作 |
2.5 命令详解
2.5.1 yum list [软件名]
显示可用的安装包,如不加软件名是显示所有的可用包
2.5.2 yum info [软件名]
显示安装包详细信息,如不加软件名是显示所有包的详细信息
2.5.3 yum search <关键词>
根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来
2.5.4 yum whatprovides <关键词>
查找只知道命令而不知道具体的包
2.5.5 yum grouplist [包组名]
安装包组的查询,不加包组名就是显示所有
2.5.6 yum install [软件名]
安装软件包,如安装http服务
2.5.7 yum remove <软件名>
卸载已安装的软件
2.5.8 yum groupinstall <包组名>
包组安装同yum install
#若系统是最小化安装没有桌面,而想要安装执行这条命令 yum groupinstall gnome desktop #如无法使用请先升级 yum -y upgrade #再安装 yum -y groups install "GNOME Desktop" #GNOME Desktop 是桌面组
1.此时我有台最小化安装的机子
2.升级,一共有四百多个包
3.安装,共有1090个包
4.在虚拟机输入startx后跳转黑屏,这时我们重启再输入init 5就可以进入了
2.5.9 yum history
查看历史的使用记录
我们通常在写yum命令的时候加上-y表示 “是否继续?[y/N]”中的y
三、搭建仓库的方式
FTP服务:ftp://ip地址/站点里路径
HTTP服务:http://域名或者ip地址/站点里的路径
本地仓库:file://绝对路径 (file:///mnt 此处第三个/为根目录)
3.1 搭建本地yum仓库
查看我的另一篇博客
搭建本地yum仓库
若要永久挂载需要在/etc/fstab文件中写入下面的信息
[root@localhost ~]# vim /etc/fstab
小贴士
当没有网而又没有搭建本地yum仓库的情况下,可以使用下面这条命令,但是只下载需要的包没有建立依赖关系
[root@localhost ]#yum -y install --downloadonly --downloaddir=/data/bind bind
#downloadonly只下载
#downloaddir指定下载的目录,目录如果不存在,会自动创建
3.2 http方式外网环境搭建yum仓库(搭建阿里云仓库)
国外云仓库比较慢,可以使用阿里云仓库代替
CentOS系统的yum源 #阿里云 https://mirrors.aliyun.com/centos/$releasever/ #腾讯云 https://mirrors.cloud.tencent.com/centos/$releasever/ #华为云 https://repo.huaweicloud.com/centos/$releasever/ #清华大学 https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/ #releasever表示版本 EPEL的yum源 #阿里云 https://mirrors.aliyun.com/epel/$releasever/x86_64 #腾讯云 https://mirrors.cloud.tencent.com/epel/$releasever/x86_64 #华为云 https://mirrors.huaweicloud.com/epel/$releasever/x86_64 #清华大学 https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64 #更新源 http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
[root@localhost yum.repos.d]# yum clean all && yum makecache [root@localhost yum.repos.d]# yum list all
3.3 http方式内网环境搭建yum仓库
搭建方法与ftp类似
setenforce 0 systemctl stop firewalld.service #两台机子关闭防火墙和selinux
服务端:192.168.109.131上的操作
yum install -y httpd systemctl start httpd cd /var/www/html/ mkdir centos7 ls mount /dev/sr0 /var/www/html/centos7/ 网页访问本机IP
客户端:192.168.109.132上的操作
cd /etc/yum.repos.d/ mkdir bak mv *.repo bak vim http.repo ##################### [http] name=centos baseurl=http://192.168.109.131/centos7 gpgcheck=0 enabled=1 ####################### yum clean all &&yum makecache yum list all 3.4 ftp方式搭建yum仓库 setenforce 0 systemctl stop firewalld.service #两台机子关闭防火墙和selinux
3.4 ftp方式搭建yum仓库
setenforce 0 systemctl stop firewalld.service #两台机子关闭防火墙和selinux
服务端:192.168.109.131上的操作
[root@localhost ~]#systemctl start vsftpd
客户端:192.168.109.132上的操作
baseurl=ftp://192.168.109.131/centos7 #指名从服务器端的centos7目录中读取 #ftp的根目录就是/var/ftp
[root@localhost yum.repos.d]# yum list all #显示所有列表
四、总结
搭建yum仓库方式
1.FTP服务
2.HTTP服务
3.本地仓库
rpm软件包的来源
1.centos发布的rpm包的集合
2.第三方组织发布的rpm包集合
3.用户自定义的rpm包集合