YUM仓库的各种部署

151 阅读10分钟

一、yum安装

image.png

1、yum主配置文件

yum客户端配置文件

 /etc/yum.conf              #为所有仓库提供公共配置
 /etc/yum.repos.d/*.repo    #每个仓库的配置文件

位置:/etc/yum.conf

 [root@localhost ~]# vim /etc/yum.conf
 [main]
 cachedir=/var/cache/yum/$basearch/$releasever  //yum下载的RPM包的缓存目录, $basearch代表硬件架构,$releasever系统版本比如7
 keepcache=0                         //是否保存缓存  0代表不保存,1代表保存
 debuglevel=2                        //调试级别(0-10),默认为2
 logfile=/var/log/yum.log            //日志文件位置
 exactarch=1                         //是否允许不同版本的rpm安装
 obsoletes=1                         //这是一个update的参数,是否允许旧版本的运行  
 gpgcheck=1                          //是否验证GPG(GNU Private Guard)密钥,1表示验证
 plugins=1                           //是否允许插件,1代表允许
 installonly_limit=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:自定义变量

image.png

2、yum仓库配置文件

1)仓库配置文件说明

位置:/etc/yum.repos.d/*.repo

系统内默认的yum仓库,是centos官方的yum源(国外源),需要连通外网才可以使用

 [root@localhost yum.repos.d]# ls /etc/yum.repos.d/
 CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
 CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
 ​
 [root@localhost yum.repos.d]# vim yuji.repo    //yum仓库配置文件格式
 [yuji]
 name=yuji                   #设置名称
 baseurl=file:///mnt        #设置链接地址,file://是本地源的固定格式
 enabled=1                   #开启此yum源
 gpgcheck=0                  #是否验证公钥,0表示无需验证            

yum仓库配置文件中baseurl的几种形式:

 # 本地源
 本地目录   file://        
 ​
 # FTP源
 FTP服务    ftp://
 
 # 网络源
 http://
 https://

2、baseurl 指向的路径

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/

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/

3、日志文件

位置:/var/log/yum.log

[root@localhost ~]# head -5 /var/log/yum.log
Oct 18 15:13:06 Installed: httpd-tools-2.4.6-67.el7.centos.x86_64
Oct 18 15:13:06 Installed: mailcap-2.1.41-2.el7.noarch
Oct 18 15:13:07 Installed: httpd-2.4.6-67.el7.centos.x86_64

二、yum命令详解

命令不加关键字加入关键词、软件包、软件包组
yum list显示所有可用包单个的可安装包
yum info显示所有可用包的信息单个具体的信息
yum search\模糊查找所有的相关信息
yum whatprovides\精确查找
yum install\安装具体软件包
yum update所有软件升级,更新内核具体软件升级
yum upgrade只更新软件包,但不更新内核具体软件更新
yum remove\卸载具体软件
yum history查看当前yum操作历史\
yum history info\加序号列出某次事务的详细信息
yum history undo\加序号卸载序号里安装的软件
yum history redo\加序号重新执行序号里的操作

包组:

命令不加关键字加入关键词、软件包、软件包组
yum grouplist显示所有可用包组显示具体的包组
yum groupinfo显示所有的包组具体信息显示具体的包组的具体信息
yum groupinstall\安装具体软件包组
yum group update所有包组升级具体包组升级
yum groupremove\卸载具体包组软件

ps: 当使用 “yum remove 软件名” 未将软件包卸载干净时,可以使用“yum history undo 序号”进行卸载,可以完整卸载整个软件包,没有残留。

三、yum仓库搭建方式

软件仓库的提供方式:

  • 本地目录:file://绝对路径
  • FTP服务:ftp://ip地址/站点里的路径
  • HTTP服务:[http://域名或者ip地址/站点里的路径]

1、搭建本地yum仓库

步骤1、挂载光盘(/dev/sr0或/dev/cdrom都可以,/dev/cdrom是/dev/sr0的软链接)

 [root@localhost ~]# mount /dev/sr0 /mnt    //将光盘挂载到/mnt目录下
 mount: /dev/sr0 写保护,将以只读方式挂载
 [root@localhost ~]# df -Th                 //查看挂载是否成功

注意:mount命令是一次性挂载,退出当前终端或重启后就不存在了。永久挂载需要修改配置文件/etc/fstab。 步骤2、切换到 /etc/yum.repo.d/目录,将自带的仓库文件移走。

 [root@localhost ~]# cd /etc/yum.repos.d/      //切换至/etc/yum.repos.d/目录
 [root@localhost yum.repos.d]# ls
 CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
 CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
 [root@localhost yum.repos.d]# mkdir aaa      //创建一个名为aaa的新目录
 [root@localhost yum.repos.d]# mv *.repo aaa   //将yum仓库中以.repo结尾的文件移动到aaa中
 [root@localhost yum.repos.d]# ls
 aaa

步骤3、新建yum仓库文件。

 [root@localhost yum.repos.d]# vim cheer.repo    //新建yum仓库文件
 [cheer]
 name=yuji                   #设置名称
 baseurl=file:///mnt         #设置链接地址,file://是固定格式,指向/mnt
 enabled=1                   #开启此yum源
 gpgcheck=0                  #无需验证公钥  

步骤4、清理缓存并安装软件

 [root@localhost yum.repos.d]# yum clean all    //清理yum缓存
 [root@localhost yum.repos.d]# yum makecache    //重新建立元数据
 [root@localhost yum.repos.d]# yum list         //查看可安装的软件列表
 [root@localhost yum.repos.d]# yum install dhcp -y    //yum安装dhcp测试是否成功

2、搭建阿里云仓库(http方式外网环境)

默认的仓库文件是国外云仓库,速度比较慢,可以使用阿里云仓库代替。

操作步骤: 步骤1、切换到 /etc/yum.repo.d/目录,将自带的仓库文件移走

 [root@localhost ~]# cd /etc/yum.repos.d/      //切换至/etc/yum.repos.d/目录
 [root@localhost yum.repos.d]# mkdir aaa
 [root@localhost yum.repos.d]# mv *.repo aaa   //将yum仓库中以.repo结尾的文件移动到aaa中
 [root@localhost yum.repos.d]# ls
 aaa

步骤2、新建阿里云仓库。

 [root@localhost yum.repos.d]# vim ali.repo
 [ali]
 name=aliyun
 #baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/         //开启哪个版本都可以正常使用,这边主要解释变量的作用
 baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/    
 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=0

步骤3、清理缓存并安装软件。

 [root@localhost yum.repos.d]# yum clean all    //清理yum缓存
 [root@localhost yum.repos.d]# yum makecache    //重新建立元数据
 [root@localhost yum.repos.d]# yum list         //查看可安装的软件列表
 [root@localhost yum.repos.d]# yum install tree -y    //yum安装tree测试是否成功

3、http方式搭建云仓库

http方式搭建云仓库,在外网和内网的环境下都可以使用,但多用于内网。

服务端:192.168.72.10

客户端:192.168.72.129

搭建步骤:

步骤1、服务端安装hhtpd服务程序。

 [root@localhost ~]# yum install httpd -y    

步骤2、服务端切换到/var/www/html/ 目录,新建子目录centos7,并将光驱挂载到centos7目录下(也可以将光驱中的所有软件包拷贝到该目录下)。

 [root@localhost ~]# cd /var/www/html        //切换目录
 [root@localhost html]# ls
 [root@localhost html]# mkdir centos7         //新建目录centos7
 [root@localhost html]# mount /dev/sr0 ./centos7    //将光驱挂载到centos7目录下
 mount: /dev/sr0 写保护,将以只读方式挂载
 [root@localhost html]# ls ./centos7
 CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
 EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
 EULA             isolinux  repodata  TRANS.TBL

步骤3、服务端关闭防火墙和selinux,启动httpd服务。

 [root@localhost html]# systemctl stop firewalld    //关闭防火墙
 [root@localhost html]# setenforce 0    //关闭selinux
 setenforce: SELinux is disabled
 [root@localhost html]# systemctl start httpd    //启动httpd服务

步骤4、客户端切换到/etc/yum.repos.d/目录,新建文件夹,将默认的yum仓库文件移动到该目录下。编写新的仓库文件

 [root@192 ~]# cd /etc/yum.repos.d        //客户端切换目录
 [root@192 yum.repos.d]# ls
 CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
 CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
 [root@192 yum.repos.d]# mkdir bak        //新建文件夹
 [root@192 yum.repos.d]# mv *.repo bak    //将默认的仓库文件移动到该文件夹下
 [root@192 yum.repos.d]# ls
 bak
 [root@192 yum.repos.d]# vim http.repo     //编写新的仓库文件
 [http]
 name=http
 baseurl=http://192.168.72.10/centos7
 enabled=1
 gpgcheck=0

步骤5、清理yum缓存,重新建立元数据。并测试使用yum能否成功安装软件包

[root@192 yum.repos.d]# yum clean all && yum makecache
 已加载插件:fastestmirror, langpacks
 正在清理软件源: ftp
 Cleaning up everything
 Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
 Cleaning up list of fastest mirrors
 已加载插件:fastestmirror, langpacks
 ftp                                                        | 3.6 kB  00:00:00     
 (1/4): ftp/group_gz                                        | 156 kB  00:00:00     
 (2/4): ftp/primary_db                                      | 3.1 MB  00:00:00     
 (3/4): ftp/other_db                                        | 1.2 MB  00:00:00     
 (4/4): ftp/filelists_db                                    | 3.1 MB  00:00:00     
 Determining fastest mirrors
 元数据缓存已建立
 ​
 [root@192 yum.repos.d]# yum install ftp -y    //测试yum安装,可以成功安装。``

4、ftp方式搭建云仓库

ftp方式搭建云仓库,在外网和内网的环境下都可以使用,但多用于内网。

服务端:192.168.72.10

客户端:192.168.72.129

搭建步骤:

步骤1、服务端安装vsftpd服务程序。

 [root@localhost html]# yum install vsftpd -y

步骤2、服务端切换到 /var/ftp/ 目录下新建一个子目录centos,并将光驱挂载到centos目录下(也可以将光驱内的所有文件包复制到centos目录下)。

 [root@localhost html]# cd /var/ftp      //切换到/ftp/var/目录
 [root@localhost ftp]# ls
 pub
 [root@localhost ftp]# mkdir centos      //创建centos目录
 [root@localhost ftp]# 
 [root@localhost ftp]# mount /dev/sr0 ./centos     //将光驱挂载到centos目录下
 mount: /dev/sr0 写保护,将以只读方式挂载
 [root@localhost ftp]# ls ./centos
 CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
 EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
 EULA             isolinux  repodata  TRANS.TBL

步骤3、服务端开启vsftpd服务,关闭防火墙和selinux。

 [root@localhost ~]# systemctl start vsftpd   //开启vsftpd服务
 [root@localhost ~]# systemctl stop firewalld   
 [root@localhost ~]# setenforce 0     //关闭防火墙和selinux

步骤4、客户端安装ftp程序,测试ftp服务是否正常。

 [root@192 ~]# yum install ftp -y     //安装ftp程序
 ​
 [root@192 ~]# ftp 192.168.72.10      //测试ftp服务能否正常访问服务端
 Connected to 192.168.72.10 (192.168.72.10).
 220 (vsFTPd 3.0.2)
 Name (192.168.72.10: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,72,10,85,22).
 150 Here comes the directory listing.
 drwxr-xr-x    8 0        0            2048 Sep 05  2017 centos
 drwxr-xr-x    2 0        0               6 Jun 09  2021 pub
 226 Directory send OK.
 ftp> bye
 221 Goodbye.

步骤5、客户端编写yum仓库文件。

 [root@192 ~]# cd /etc/yum.repos.d      //切换目录
 [root@192 yum.repos.d]# ls
 bak2              CentOS-Debuginfo.repo  CentOS-Sources.repo
 CentOS-Base.repo  CentOS-fasttrack.repo  CentOS-Vault.repo
 CentOS-CR.repo    CentOS-Media.repo
 [root@192 yum.repos.d]# mkdir bak1        //新建文件夹
 [root@192 yum.repos.d]# mv *.repo bak1    //将默认的仓库文件移动到该目录下
 [root@192 yum.repos.d]# ls
 bak1  bak2
 [root@192 yum.repos.d]# vim ftp.repo      //编写新的仓库文件
 [ftp]
 name=ftp
 baseurl=ftp://192.168.72.10/centos     //路径指向服务端的/var/ftp/centos/目录
 enabled=1
 gpgcheck=0

步骤6、清理yum缓存,重新建立元数据。并测试使用yum能否成功安装软件包。

 [root@192 yum.repos.d]# yum clean all && yum makecache    //清理yum缓存,重建元数据
 已加载插件:fastestmirror, langpacks
 正在清理软件源: ftp
 Cleaning up everything
 Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
 Cleaning up list of fastest mirrors
 已加载插件:fastestmirror, langpacks
 ftp                                                        | 3.6 kB  00:00:00     
 (1/4): ftp/group_gz                                        | 156 kB  00:00:00     
 (2/4): ftp/primary_db                                      | 3.1 MB  00:00:00     
 (3/4): ftp/other_db                                        | 1.2 MB  00:00:00     
 (4/4): ftp/filelists_db                                    | 3.1 MB  00:00:00     
 Determining fastest mirrors
 元数据缓存已建立
 ​
 [root@192 yum.repos.d]# yum install httpd -y    //测试yum安装,可以成功安装。

5、搭建本地epel源仓库

本地epel源仓库的应用场景:

  • 在可以连外网的情况下,可以使用国外源或阿里云仓库等。
  • 但实际工作中,公司内网常常无法连接外网,这时可以提前搭建本地epel源仓库,即在一台可连通外网的服务器中提前下载好epel源的所有软件包,编写好仓库文件后,在离线的情况下也可以使用yum安装软件包。
  • 之后其他主机可以通过http方式或ftp方式使用服务端的epel源仓库。

操作步骤:

步骤1、安装epel源,并下载epel源的所有软件包。

 [root@localhost ~]# yum install epel-release          //安装epel源
 [root@localhost ~]# mkdir centos7                     //新建centos7目录  
 [root@localhost ~]# reposync -r epel -p /centos7/ &     //下载同步epel源软件包,下载到/centos7/目录下,&表示放到后台下载
 [root@localhost ~]# ls /centos7
 epel

步骤2、安装createrepo命令(建立元数据的命令),之后使用createrepo命令建立元数据。

 [root@localhost ~]# yum -y install createrepo      //安装createrepo命令
 [root@localhost ~]# createrepo -v /centos7/epel    //建立元数据(软件目录、依赖关系) 
 [root@localhost ~]# cd  /centos7/epel        //切换到centos7/epel 目录下
 [root@localhost epel]# ls              //查看软件包和元数据
 Packages  repodata

步骤3、切换到/etc/yum.repos.d目录,移走默认仓库文件,编写新的仓库文件。

 [root@localhost ~]# cd /etc/yum.repos.d/      //切换至/etc/yum.repos.d/目录
 [root@localhost yum.repos.d]# ls
 CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
 CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
 [root@localhost yum.repos.d]# mkdir aaa      //创建一个名为aaa的新目录
 [root@localhost yum.repos.d]# mv *.repo aaa   //将yum仓库中以.repo结尾的文件移动到aaa中
 [root@localhost yum.repos.d]# ls
 aaa
 [root@localhost yum.repos.d]# vim epellocal.repo    //新建yum仓库文件
 [epellocal]
 name=epellocal                       #设置名称
 baseurl=file:///centos7/epel     #设置链接地址,路径指向/centos7/epel目录
 enabled=1                        #开启此yum源
 gpgcheck=0                       #无需验证公钥  

其他主机如果想使用这台机器中的epel仓库,可以在本地使用http或ftp方式搭建:

 baseurl=http://192.168.72.10/centos7/epel      //http方式
 ​
 baseurl=ftp://192.168.72.10/centos7/epel        //ftp方式