yum 源本地配置

一、建yum仓库,分别为网络源和本地源

1、简单介绍一下yum

yum 源是软件仓库,是用来安装软件包的,会自动查找依赖包。

yum 安装软件

yum list | grep 软件包  #查找软件包
yum install 软件包 -y   # 安装包
yum -e 软件包   #卸载包
yum -v 软件包 #重新安装包

2、yum配置 /etc/yum.conf

yum 配置文件分两部分 /etc/yum.conf 和 /etc/yum.repos.d/*.repo

首先简单介绍一下 yum.conf 配置yum 源用的是 /etc/yum.repos.d/*.repo 下面在做介绍。

yum.conf介绍 :为所有仓库提供公共配置 ,也就是main 部分,它定义了全局配置选项,整个yum 配置文件应该只有一个main。

[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum 缓存的目录,yum 在此存储下载的rpm 包和数据库 默认就是如此
keepcache=0   //安装完成后是否保留软件包,0为不保留(默认为0),1为保留
debuglevel=2   //Debug 信息输出等级,范围为0-10,缺省为2
logfile=/var/log/yum.log   //yum 日志文件位置。用户可以到/var/log/yum.log 文件去查询过去所做的更新。
exactarch=1   //有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包,例如,yum 不会将i686的软件包安装在适合i386的系统中。默认为1。
obsoletes=1   //这是一个update 的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1   // 有1和0两个选择,分别代表是否是否进行gpg(GNU Private Guard) 校验,以确定rpm 包的来源是有效和安全的。这个选项如果设置在[main]部分,则对每个repository 都有效。默认值为0。
plugins=1   //是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件。
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 //指定一个软件包,yum 会根据这个包判断你的发行版本

 

3、yum 配置 /etc/yum.repos.d/*.repo

/etc/yum.repos.d/*.repo 为仓库的指向提供配置,也就是 repository 部分,它定义了每个源/服务器的具体配置,可以有一到多个

root@node01 yum.repos.d]# cd /etc/yum.repos.d/
[root@node01 yum.repos.d]# ll
total 40
-rw-r--r--. 1 root root 1664 Oct 23 2020 CentOS-Base.repo   // 在线的yum源配置文件,联网用
-rw-r--r--. 1 root root 1309 Oct 23 2020 CentOS-CR.repo     //本地yum源配置文件,本地镜像用
-rw-r--r--. 1 root root 649 Oct 23 2020 CentOS-Debuginfo.repo //包尤其和内核相关的更新和软件安装
-rw-r--r--. 1 root root 314 Oct 23 2020 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Oct 23 2020 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Oct 23 2020 CentOS-Sources.repo
-rw-r--r--. 1 root root 8515 Oct 23 2020 CentOS-Vault.repo //这个是最近新版本的加入的老版本的yum源配置
-rw-r--r--. 1 root root 616 Oct 23 2020 CentOS-x86_64-kernel.repo

具体的配置介绍

 #也叫serverid,必须是独一无二的
[base]
#name,是对repository的描述
name=CentOS7  
##指定的获取包的地址,其中url支持的协议有 http:// ftp:// file://三种。可以跟多个url
baseurl=http://10.0.0.150/yum/centos/7/x86_64  
      https://mirrors.aliyun.com/centos/$releasever/os/$basearch
      https://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch
      https://mirrors.huaweicloud.com/centos/$releasever/os/$basearch
#是否启用这个仓库 1 启用,0不启用  
enable=1
#是否检查,1 检查,0 不检测 设置了1 必须设置下面的 gpgkey
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

4、配置网络源 国内镜像

root@node01 yum.repos.d]# cd /etc/yum.repos.d/
[root@node01 yum.repos.d]# vi CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch
      https://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch
      https://mirrors.huaweicloud.com/centos/$releasever/os/$basearch
      https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[epel]
name=epel
baseurl=https://mirrors.huaweicloud.com/epel/$releasever/$basearch
      https://mirrors.aliyun.com/epel/$releasever/$basearch
      https://mirrors.cloud.tencent.com/epel/$releasever/$basearch
      https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/$basearch
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch
      http://mirrors.huaweicloud.com/centos/$releasever/extras/$basearch
gpgcheck=0
enabled=1

5、配置yum 源 本地源(镜像文件)

本例子用镜像文件,用镜像文件做,且目的是做一个服务器,可以供其他机器使用。(centos7)
1、前置条件,关闭防火墙和selinux
systemctl disable firewalld #防火墙永久关闭
修改配置文件 /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled ,然后重启机器

2、安装httpd服务,提供网页浏览
yum -y install httpd   #安装
systemctl start httpd #启动
systemctl enable httpd #开机自启动

3、创建仓库目录
#mkdir /var/www/html/centos/7 -pv
4、挂载系统镜像 到系统并复制内容到仓库子目录
mkdir /mnt/cdrom
mount -o loop /dev/sr0 /mnt/cdrom/   #只读模式挂载
cp -r /mnt/cdrom/* /var/www/html/centos/7

5、yum 客户端配置
首先建立备份文件夹,把自带的配置文件移动到备份文件夹,并创建新的配置文件
root@node01]# cd /etc/yum.repos.d/
root@node01 yum.repos.d]# mkdir bak
root@node01 yum.repos.d]# mv CentOS-* bak/
root@node01 yum.repos.d]# touch base.repo 并添加内容
root@node01 yum.repos.d]# vi base.repo
[root@node01 yum.repos.d]# vi CentOS-Base.repo

[BaseOS]
name=BaseOS
baseurl=file:///var/www/html/centos/7
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#其他机器想用这个就需要用IP
[BaseOS]
name=BaseOS
baseurl=http://10.0.0.150/var/www/html/centos/7
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
6、清空缓存
yum clean all
7、查看可用yum 源
yum repolist

6、配置yum 源 私有源(网上下载相应的仓库文件和元数据)

本例子用网上下载的仓库文件和元数据做,且目的是做一个服务器,可以供其他机器使用。(centos7)
1、首先建立备份文件夹,把自带的配置文件移动到备份文件夹,并创建新的配置文件
root@node01]# cd /etc/yum.repos.d/
root@node01 yum.repos.d]# mkdir bak
root@node01 yum.repos.d]# mv CentOS-* bak/
root@node01 yum.repos.d]# touch base.repo 可以自己这么创建一个配置文件
也可以直接就选用阿里源的配置文件(这是将阿里源的配置文件下载到本地)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
这里我们用wget 这种方式
2、关闭防火墙和selinux
systemctl disable firewalld #防火墙永久关闭
修改配置文件 /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled ,然后重启机器

3、安装httpd服务,提供网页浏览
yum -y install httpd   #安装
systemctl start httpd #启动
systemctl enable httpd #开机自启动

4、创建仓库目录(本次制作base仓库 源和 epel 扩展仓库 系统都是64位的)
#mkdir /var/www/html/centos/7/os/x86_64 -pv
#mkdir /var/www/html/centos/7/epel/x86_64 -pv

5、base源,有镜像还是直接用镜像文件就可以
挂载系统镜像 到系统并复制内容到仓库子目录
[root@centos7]#mkdir /mnt/cdrom
[root@centos7]#mount -o loop /dev/sr0 /mnt/cdrom/   #只读模式挂载
[root@centos7]#cp -r /mnt/cdrom/* /var/www/html/centos/7/os/x86_64

6、下载阿里云的epel源,制作私有扩展源也就是epel源
[root@centos7]# reposync --repoid=epel --download-metadata -p /var/www/html/centos/7/epel/x86_64/
#--download-metadata 加此选项可以下载元数据 如果不加这个选项需要
#安装yum install -y createrepo
#reposync --repoid=epel -p /var/www/html/centos/7/epel/x86_64/
#createrepo /var/www/html/centos/7/epel/x86_64/ 这是创建索引文件。

还需要注意一点,这样下载下来后,会在x86_64 目录下在创建一个epel 文件夹,并且下载的内容都在这个epel 文件夹中,所以我们需要移动一下,使用以下命令即可
mv /var/www/html/centos/7/epel/x86_64/epel/* /var/www/html/centos/7/epel/x86_64/
记得把这个x86_64 下面那个 epel 目录删掉

7、客户端配置,修改 CentOS-Base.repo 配置文件
[base]
name=CentOS-$releasever
baseurl=http://10.0.0.151/centos/$releasever/os/$basearch/
enable=1
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[epel]
name=CentOS-$releasever
baseurl=http://10.0.0.151/centos/$releasever/epel/$basearch/
enable=1
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

8、清理yum 缓存,并查看源
[root@node02 yum.repos.d]# yum cleanall
Loaded plugins: fastestmirror
No such command: cleanall. Please use /usr/bin/yum --help
[root@node02 yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                                                     repo name                                                               status
base/7/x86_64                                                               CentOS-7                                                               10,072
epel/7/x86_64                                                               CentOS-7                                                               13,747
repolist: 23,819
[root@node02 yum.repos.d]#
以上本地私有源就可以用了,其他机器可以直接复用 CentOS-Base.repo 配置文件 这个配置文件就可以了

9、注意centos8 还需要配置一个AppStream 源,这里就不做介绍了。

 

posted @ 2022-03-01 22:59  是阿帅不是阿衰  阅读(1640)  评论(0编辑  收藏  举报