配置本地yum源
注意:下载镜像后需校验ISO镜像的完整性和正确性 1.使用sha256sum命令校验ISO镜像的完整性和正确性,具体操作如下: a.在下载 CentOS 7.9 ISO 镜像文件和官方提供的 sha256sum.txt 文件后,将两个文件保存到同一个目录下。 b.打开终端或命令行工具,进入到该目录下 c.执行以下命令来生成 sha256 校验值
shell
sha256sum CentOS-7-x86_64-DVD-2009.iso
执行后会返回一串 sha256 校验值,如下所示
shell
e3e7a60d2a0517d12dd16f4bb797893cc4d4f4c422d4e27d78a88af93d50b56e CentOS-7-x86_64-DVD-2009.iso
d.将生成的校验值与官方提供的 sha256sum.txt 文件中对应的校验值进行比对,如果一致则说明镜像文件下载完整且正确。 值得注意的是,在比对校验值时,应该只取 sha256sum.txt 文件中对应 ISO 镜像的校验值,而不是将整个 sha256sum.txt 文件与生成的校验值做比对。 2.将ISO镜像上传到服务器 3.挂载ISO镜像
shell
mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt
参数说明:
-o
:mount 命令的一个参数,是 Option 的首字母,后面跟的是 mount 命令的选项loop
:把一个文件当成硬盘分区挂载到目录ro
:采用只读方式挂载 默认rw
:采用读写方式挂载iocharset
:指定访问文件系统所用的字符集
例如,如果要挂载一个文件名为 data.iso 的 ISO 镜像文件,并且想以只读方式挂载,可以使用以下命令
shell
mount -o ro,loop data.iso /mnt/iso
这将把 data.iso 文件以只读方式挂载到 /mnt/iso 目录下。同样,如果想以读写方式挂载并指定字符集为 UTF-8,可以使用以下命令:
shell
mount -o rw,loop,iocharset=utf8 data.iso /mnt/iso
需要注意的是,这些选项的使用要根据具体情况进行选择,使用不当可能会导致数据丢失等问题。 3.备份源配置文件
shell
# 创建用于备份原系统的镜像配置文件的目录
mkdir /etc/yum.repos.d/bak
# 将原有的源配置文件移动到刚刚创建的bak目录
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
4.创建源配置文件
shell
vi /etc/yum.repos.d/localdvd.repo
# 编辑内容如下:
[localdvd]
name=localdvd
baseurl=file:///mnt/
gpgcheck=0
enable=1
参数说明:
name
:本地yum源的名称baseurl
:本地yum源目录路径gpgcheck
:是否检查GPG签名 1检查 0不检查enable
:是否启用本地yum源 1启用 0禁用
5.生成Yum的软件包缓存 用于生成Yum的软件包缓存,以提高yum命令的运行速度。它会下载并解析所有可用的仓库配置文件,并将包信息存储在本地缓存中,供后续的yum命令使用。 -y
参数表示在安装软件包时自动回答"yes"以避免询问。在运行yum makecache
时使用该参数可以避免在缓存生成过程中出现提示信息并等待用户确认。
shell
# 清除yum缓存
yum clean all
# 生成缓存
yum makecache -y
配置阿里yum源
1.备份原有的YUM源配置文件: 在替换YUM源之前,建议备份您当前的YUM源配置文件,以防需要恢复时使用。
shell
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.下载阿里云的CentOS 7 YUM源配置文件: 使用wget
或curl
下载阿里云的CentOS 7 YUM源配置文件。这里我们使用wget
:
shell
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
如果您的系统没有安装wget
,可以使用以下命令安装:
shell
yum install -y wget
或者,您可以使用curl
下载配置文件:
shell
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3.清除YUM缓存: 更换YUM源后,需要清除YUM缓存,然后重新生成缓存。
shell
sudo yum clean all
sudo yum makecache
自制离线yum源镜像
什么是yum源
yum是在ReddHat中的一个包管理器。基于RPM包管理,能够从指定服务器自动下载RPM包并安装,可以自动处理依赖关系,能够一次安装所有依赖的软件包,无需一次一次的下载安装。yum源就是存放rpm包以及依赖关系的服务器,一般公共网络的yum源:163、souhu、阿里、中国科技大学、清华等。
yum源标识(repo id)
- base:之操作系统镜像源,包含了ISO镜像内的所有软件包
- updates:包含了系统更新,升级的软件包
- extras:扩充的软件包合集
- epel:为"红帽系"的错做系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux
- 自定义repo id 以K8S yum源为例,[repo id]本地可以随意定义,主要是看baseurl连接的源,当多个repo id重复时,会以最后加载的为准
自制离线yum
实验服务器IP为:10.0.0.28
1.安装所需软件
shell
# createrepo:用于生成yum源各软件之间的依赖索引
# yum-utils:安装后可使用yumdownloader命令下载所需如软件包
# reposync:Reposync用于将远程yum存储同步到本地,使用yum检索包的目录
yum install -y wget yum-utils createrepo
2.配置yum源 以阿里Centos7的yum源为例
shell
# 配置yum源 以阿里Centos7的yum源为例
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
3.开始全量拉取yum源
shell
# 查看已经配好的网络源id
yum repolist
# 按照源id将网络源拉取到本地
reposync -r base -p /data/yum/
reposync -r epel -p /data/yum/
reposync -r extras -p /data/yum/
reposync -r updates -p /data/yum/
reposync -r kubernetes -p /data/yum/
reposync -r docker-ce-stable -p /data/yum/
# 生成repodata索引依赖
createrepo /data/yum/base
createrepo /data/yum/epel
createrepo /data/yum/extras
createrepo /data/yum/updates
createrepo /data/yum/kubernetes
createrepo /data/yum/docker-ce-stable
4.本地yum测试
shell
# 在Packages同级目录中可以看到生成的repodata目录
# 使用测试
# 备份/etc/yum.repo.d/中的其他文件,手动添加
[Centos7-base]
name=centos-base
baseurl=file:///opt/base/base
gpgcheck=0
enabled=1
#其他repo id按照同样格式书写
[kubernetes]
name=k8s
baseurl=http://192.168.12.12/yum/kubernetes
......
# 注意:baseurl可以使用file、ftp或http,目录路径要写到Package和repodata目录
# 测试
yum repolist
5.配置为内网公共yum源
shell
# 将本地的rpm包和依赖包压缩打包,放入内网环境,这样其他服务器也可以通过添加自定义repo文件连接yum源仓库了
# 安装nginx使其他机器也可以使用
yum install -y nginx
systemctl enable --now nginx
# 配置文件如下 /etc/nginx/default.d/yum.conf
location / {
root /data/yum;
index index.html;
autoindex on;
}
# 使配置文件生效
systemctl reload nginx
# 其他机器修改yum源地址
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
# 编辑内容如下 /etc/yum.repos.d/private-yum.repo
[base]
name=CentOS-Base
baseurl=http://10.0.0.28/base/
gpgcheck=0
enabled=1
[updates]
name=CentOS-Updates
baseurl=http://10.0.0.28/updates/
gpgcheck=0
enabled=1
[extras]
name=CentOS-Extras
baseurl=http://10.0.0.28/extras
gpgcheck=0
enabled=1
[epel]
name=CentOS-Contrib
baseurl=http://10.0.0.28/epel
gpgcheck=0
enabled=1
[docker-ce-stable]
name=CentOS-docker-ce-stable
baseurl=http://10.0.0.28/docker-ce-stable
gpgcheck=0
enabled=1
[kubernetes]
name=CentOS-docker-ce-stable
baseurl=http://10.0.0.28/kubernetes
gpgcheck=0
enabled=1
# 使yum源生效
yum clean all
yum makecache