Linux网络——部署yum仓库

一.yum仓库

1.1yum概述

学习YUM 软件仓库,可以完成安装、卸载、自动升级 rpm 软件包等任务,能够自动 查找并解决 rpm 包之间的依赖关系,而无须管理员逐个、手工地去安装每个 rpm 包,使管 理员在维护大量 Linux 服务器时更加轻松自如。特别是在拥有大量Linux 主机的本地网络中, 构建一台“源”服务器可以大大缓解软件安装、升级等对 Internet 的依赖。

YUM 的前身是 YUP(Yellow dog Updater,Yellow dog Linux 的软件更新器),最初由 TSS 公司(Terra Soft Solutions,INC.)使用 Python 语言开发而成,后来由杜克大学(Duck University)的 Linux 开发队伍进行改进,命名为 YUM(Yellow dog Updater,Modified)。 要成功使用 YUM 机制来更新系统和软件,需要有一个包含各种 rpm 安装包文件及其依 赖软件的软件仓库(repository),提供软件仓库的服务器也称为“源”服务器。在客户机中只 要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件。
YUM由仓库和客户端组成,所以yum可以存放在一台服务器或者两台服务器上,可以由官方提供,也可以有第三方来提供,如国内的阿里云,搜狐云,一些非盈利的组织(学校)。官方的源一般不在国内,下载速度受限制,手动改成国内的云可以大幅度提高速度:

软件仓库的提供方式:
网络源:
FTP服务:ftp://…
HTTP服务:http://…
本地源:
本地目录:file://…

1.2 YUM常用命令

1.2.1 查询软件包命令

-------查询软件包命令------

#显示可用的安装包
 yum list httpd    //查看httpd可用包
 
#显示安装包详细信息
yum info  [软件名]
 
#根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来
yum search  <关键词>
 
#你知道某个命令却不知道具体的包可以用此命令查找
yum whatprovides  <关键词>

1. 列出所有可更新的软件清单命令:yum check-update

2. 更新所有软件命令:yum update

3. 仅安装指定的软件命令:yum install -y  <package_name>

4. 仅更新指定的软件命令:yum update <package_name>

5. 列出所有可安裝的软件清单命令:yum list
yum list installed					#查询系统中已安装的软件包
yum list available					#查询仓库中尚未安装的软件包
yum list updates					#查询可以升级版本的软件包

7. 删除软件包命令:yum remove <package_name>

8. 查找软件包命令:yum search <keyword>

9. 清除缓存命令:

yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
yum makecache		:yum 更新

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2.2 查询软件包组命令

-------查询软件包组命令-------

#安装包组的查询 不加包组名 就是显示所有
yum grouplist  [包组名]
 
#不加包组名显示全部
yum groupinfo  <包组名>

在这里插入图片描述
在这里插入图片描述

yum search vim
yum list|grep "vim"

yum info 软件名						#查询软件包的描述信息
yum info httpd

yum search [all] 关键词				#根据某个关键词来查找相关的软件包
yum search all httpd

yum whatprovides 命令				#查询命令属于哪个软件包
yum whatprovides netstat

下载RPM包而不安装
#yum install 包名 -y --downloadonly

#yum reinstall -y bash --downloadonly    #下载已安装过的rpm包

#yum install 包名 -y --downloadonly --downloaddir=/tmp/     #下载RPM包到指定目录

1.2.3 yum安装升级

-------yum升级安装-------

#安装软件包
yum install wget
 
#安装包组名
 yum groupinstall gnome desktop
 
#更新安装包,可以单个也可以全部 后面加具体名称就是单个更新,不加就是全部更新。但是首先你要有更新的包组库否则也无法更新。
yum upgrade 
 
#组包更新
yum groupupdate 

在这里插入图片描述

1.2.4 软件卸载

#卸载已安装的软件必须加软件名
 yum remove httpd
 
#查看历史的使用记录,选择ID 1,2,3,4,5,可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除
yum history 
yum history undo 3 //3代表id号
 
#如果后悔 卸载 可以使用两种方式
 
yum history redo 4 (重新安装一遍)
 
yum history undo 6 (反悔卸载等于重新安装一遍)

yum history 查看历史记录来找到它所依赖的包,然后删除,
如:yum history list 列出最近的历史
      yum history info id 列出某次的详细信息,
      yum history undo id 撤销某次更改
      yum history help 查看帮助
	  yum history redo加入序号重新执行序号里的操作

二、YUM仓库的配置

2.1 YUM主配置文件

配置文件: /etc/yum.conf

[root@zhang ~]# vim /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个内核
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

2.2 YUM仓库配置文件

#配置本地源仓库
位置:cd /etc/yum.repos.d/

[root@zhang ~]# ls /etc/yum.repos.d/
centos7.repo           CentOS-fasttrack.repo  httpd-2.4.25
CentOS-Base.repo       CentOS-Media.repo      local.repo
CentOS-CR.repo         CentOS-Sources.repo    repos.bak
CentOS-Debuginfo.repo  CentOS-Vault.repo      yum.tar.gz

2.3 日志文件

/var/log/yum.log

[root@zhang yum.repos.d]# cat /var/log/yum.log

三、搭建yum仓库

3.1 搭建本地yum仓库

1.首先将光驱中的镜像文件进行挂载(先将虚拟机的光盘载入)

[root@zhang ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@zhang ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        96G   14G   82G   15% /
devtmpfs       devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs          tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs          tmpfs     1.9G   13M  1.9G    1% /run
tmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1      xfs       497M  167M  330M   34% /boot
tmpfs          tmpfs     378M  4.0K  378M    1% /run/user/42
tmpfs          tmpfs     378M   36K  378M    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 repo.bak
[root@localhost yum.repos.d]# mv *.repo repo.bak/
[root@localhost yum.repos.d]# ls
repo.bak

3.新建yum仓库文件

vim local.repo
[local]							#仓库类别
name=local						#仓库名称
baseurl=file:///mnt				#指定URL 访问路径为光盘挂载目录
enabled=1						#开启此yum源,此为默认项,可省略
gpgcheck=0						#不验证软件包的签名

4.清空yum缓存

##清理yum缓存并更新
yum clean all && yum makecache		
###检查
yum repolist

3.2 搭建云yum仓库

服务端: 192.168.10.12
客户端:192.168.10.10

3.2.1服务端配置

1.服务端安装vsftp服务

[root@zhang /]# yum install -y vsftpd

2.服务端切换到ftp目录下建立一个CentOS7目录

[root@zhang /]# cd /var/ftp
[root@zhang ftp]# ls
pub
[root@zhang ftp]# mkdir centos7 
[root@zhang ftp]# mkdir other
[root@zhang ftp]# ls
centos7 other  pub

在这里插入图片描述
3.服务端将光驱里的文件包备份到centos7里

cp -rf /mnt/* /var/ftp/centos7/  & //&是表示放入后台执行【如何查看后台jobs】
mkdir /var/ftp/other    # 创建目录repodata 数据文件
cd /var/ftp/other/ 
createrepo -g /mnt/repodata/repomd.xml ./    #工具建立仓库数据文件
##手动创建repodate数据文件 以现有的

在这里插入图片描述
4.服务端开启相关服务,关闭防火墙和自增强

[root@zhang other]# systemctl stop firewalld.service //关闭防火墙
[root@zhang other]# setenforce 0
setenforce: SELinux is disabled  ##自增强已经就是关闭状态
[root@zhang other]# systemctl start vsftpd  ##打开vsvtpd服务

5.客户端安装ftp 服务并启动关闭防火墙和selinux

[root@zhang yum.repos.d]# yum install ftp
[root@zhang yum.repos.d]# systemctl stop firewalld.service

------默认开启服务------
[root@zhang yum.repos.d]# systemctl start vsftpd

3.2.2 客户端配置

1)创建远程yum源的配置文件
2)yum安装软件验证结果

客户端配置:
vi /etc/yum.repos.d/centos7.repo
//模拟,把网络源和本地源备份到bak.repo下
在这里插入图片描述

[root@zhang yum.repos.d]# mv *.repo repo.bak/
[root@zhang yum.repos.d]# ls
repo.bak
[root@zhang yum.repos.d]# vim /etc/yum.repos.d/CentOS7.repo
[root@zhang yum.repos.d]# cat centos7.repo 
[centos7]  #仓库类别
name=centos7   #仓库名称(说明)
baseurl=ftp://192.168.10.12/centos7   #URL 访问路径 
enabled=1   #启用此软件仓库
gpgcheck=1    #验证软件包的签名
gpgkey=ftp://192.168.10.12/centos/RPM-GPG-KEY-CentOS-7    #GPG 公钥文件的位置

在这里插入图片描述

[other]
name=centos7
baseurl=ftp://192.168.10.12/other
enabled=1  #启用此软件仓库
gpgcheck=0  #验证软件包的签名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

喜欢小编可以给小编点个小星星哦!

猜你喜欢

转载自blog.csdn.net/weixin_59663288/article/details/124336800