yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。
yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。
二、yum配置文件 2.1yum主配置文件软件仓库的提供方式:
网络源
FTP服务: ftp://…
HTTP服务: http://…
本地源
本地目录: file://…
-
位置:/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-release2.2仓库设置文件
-
位置:/etc/yum.repos.d/*.repo
#下面是默认仓库,是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.repo2.3 日志文件
-
位置:/var/log/yum.log
[root@localhost yum.repos.d]# cat /var/log/yum.log //查看日志文件三、yum命令详解 3.1查询软件包命令
#显示可用的安装包 [root@localhost ~]# yum list httpd #显示安装包详细信息 [root@localhost ~]#yum info [软件名] #根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来 [root@localhost ~]#yum search <关键词> #你知道某个命令却不知道具体的包可以用此命令查找 [root@localhost ~]#yum whatprovides <关键词>
3.2查询软件包组命令
#安装包组的查询 不加包组名 就是显示所有 [root@localhost ~]#yum grouplist [包组名] #不加包组名显示全部 [root@localhost ~]# yum groupinfo <包组名>
3.3yum安装升级
#安装软件包 [root@localhost ~]# yum install httpd #安装包组名 [root@localhost ~]# yum groupinstall gnome desktop #更新安装包,可以单个也可以全部 后面加具体名称就是单个更新,不加就是全部更新。但是首先你要有更新的包组库否则也无法更新。 [root@localhost yum.repos.d]# yum upgrade #组包更新 [root@localhost yum.repos.d]# yum groupupdate
3.4 软件卸载
#卸载已安装的软件必须加软件名 [root@localhost yum.repos.d]# yum remove httpd #查看历史的使用记录,选择ID 1,2,3,4,5,可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除 [root@localhost yum.repos.d]# yum history [root@localhost .ssh]# yum history undo 3 //3代表id号 #如果后悔 卸载 可以使用两种方式 yum history redo 4 (重新安装一遍) yum history undo 6 (反悔卸载等于重新安装一遍)四、搭建yum仓库 4.1搭建本地yum仓库
1.首先将光驱中的镜像文件进行挂载(先将虚拟机的光盘载入)
[root@localhost ~]# mount /dev/sr0 /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 [root@localhost ~]# df -Th //查看下挂载 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 37G 7.5G 30G 21% / devtmpfs devtmpfs 977M 0 977M 0% /dev tmpfs tmpfs 993M 0 993M 0% /dev/shm tmpfs tmpfs 993M 9.1M 984M 1% /run tmpfs tmpfs 993M 0 993M 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 161M 854M 16% /boot tmpfs tmpfs 199M 4.0K 199M 1% /run/user/42 tmpfs tmpfs 199M 52K 199M 1% /run/user/0 /dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
2.切换到 yum.repo.d 目录 将自带的仓库移走,多个开启仓库文件可能会造成冲突无法使用
[root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# mkdir bak [root@localhost yum.repos.d]# mv *.repo bak/ [root@localhost yum.repos.d]# ls bak
3.新建yum仓库文件
[root@localhost yum.repos.d]# vim abc.repo [abc] name=abc baseurl=file:///mnt enabled=1 gpgcheck=0 #gpgkey=file:etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 //若gpgcheck=1
4.yum list 检查仓库 无报错信息即可正常使用。
#/data/目录如果不存在,会自动创建 [root@localhost ]#yum -y install --downloadonly --downloaddir=/data/bind bind4.2 搭建阿里云仓库 (http方式外网环境)
1.切换到 yum.repo.d 目录 将自带的仓库移走
[root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# mkdir bak [root@localhost yum.repos.d]# mv *.repo bak/ [root@localhost yum.repos.d]# ls bak
2.新建yum仓库
[ali] name=aliyun #baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/ //开启哪个都可以正常使用,这边主要解释变量的作用 baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/ //变量参见主配置文件2.1小节 gpgcheck=0 [epel] //epel源仓库 name=epel baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/ gpgcheck=0 [update] //更新包仓库 name=update baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/ gpgcheck=04.3ftp方式搭建云仓库
服务端:192.168.100.100
客户端:192.168.100.101
1.服务端安装vsftp服务
[root@localhost ~]# yum install vsftpd.x86_64 -y
2.服务端切换到 ftp目录下新建一个centos7目录
[root@localhost ~]# cd /var/ftp/ [root@localhost ftp]# ls pub [root@localhost ftp]# mkdir centos7 other [root@localhost ftp]# ls centos7 other pub [root@localhost ftp]#
3.服务端将光驱里的文件包全部拷到centos7里面
[root@localhost ftp]# cp -rf /mnt/* centos7/ & [root@localhost ftp]# cd centos7/ [root@localhost centos7]# ls //已将安装包文件拷入 [root@localhost ~]# cd /var/ftp/other #建立数据库文件 [root@localhost other]# createrepo -g /mnt/repodata/repomd.xml ./
4.服务端开启相关服务,关闭防火墙和selinux
[root@localhost other]# systemctl stop firewalld.service [root@localhost other]# setenforce 0 [root@localhost other]# systemctl start vsftpd
5.客户端安装ftp 服务并启动关闭防火墙和selinux
[root@localhost yum.repos.d]# yum install ftp [root@localhost repodata]# systemctl stop firewalld.service [root@localhost repodata]# setenforce 0 #服务器默认开启 [root@localhost yum.repos.d]# systemctl start ftp
6.测试ftp服务是否正常
[root@localhost yum.repos.d]# ftp 192.168.59.117 Connected to 192.168.59.117 (192.168.59.117). 220 (vsFTPd 3.0.2) Name (192.168.59.117:root): ftp #随意起名 331 Please specify the password. Password: #输入密码 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls #查看下是否正常 227 Entering Passive Mode (192,168,59,117,141,116). 150 Here comes the directory listing. drwxr-xr-x 8 0 0 220 Oct 06 10:45 centos7 drwxr-xr-x 3 0 0 22 Oct 06 10:50 other drwxr-xr-x 2 0 0 6 Jun 09 16:15 pub 226 Directory send OK. ftp>
7.编写yum仓库文件
[root@localhost yum.repos.d]# vim centos7.repo [centos7] name=centos7 baseurl=ftp://192.168.59.117/centos7 enabled=1 gpgcheck=0 #= [other] name=other baseurl=ftp://192.168.59.117/other enabled=1 gpgcheck=0
8.测试是否yum可以正常使用
[root@localhost yum.repos.d]# yum install dhcp



