侧边栏壁纸
博主头像
Blog博主等级

行动起来,活在当下

  • 累计撰写 211 篇文章
  • 累计创建 94 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Centos7本地源及共享源搭建

一、环境

Centos7.9 服务器2台、Centos7.9 iso镜像文件(CentOS-7-x86_64-DVD-2009.iso)

二、搭建过程

启动其中一台服务器用作共享源服务器,将(CentOS-7-x86_64-DVD-2009.iso)镜像文件上传到任意大空间文件路径内。

下面是镜像挂载及验证的过程:

备份原yum源,并清空/etc/yum.repos.d路径内的所有文件

[root@docker01 ~]# cd /etc/yum.repos.d/

[root@docker01 yum.repos.d]# ls

CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo          docker-ce.repo

CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  CentOS-x86_64-kernel.repo

[root@docker01 yum.repos.d]# mkdir -p /etc/yum.repo-backup 

[root@docker01 yum.repos.d]# cp * ../yum.repo-backup/

[root@docker01 yum.repos.d]# ls

CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo          docker-ce.repo

CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  CentOS-x86_64-kernel.repo

[root@docker01 yum.repos.d]# rm -rf * 

[root@docker01 yum.repos.d]# ls

关闭防火墙及selinux

systemctl disable firewalld

systemctl stop firewalld

setenforce 0

创建共享源挂载点。

mkdir -p /opt/centos

以只读的方式挂载到/mnt下,并将光盘内所有文件复制到共享源挂载点上。

[root@docker01 ~]# mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt 
mount: /dev/loop0 写保护,将以只读方式挂载
[root@docker01 ~]# cp -ar /mnt/* /opt/centos/
[root@docker01 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 908M     0  908M    0% /dev
tmpfs                    919M     0  919M    0% /dev/shm
tmpfs                    919M  8.7M  911M    1% /run
tmpfs                    919M     0  919M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G   11G  6.1G   65% /
/dev/sda1               1014M  194M  821M   20% /boot
tmpfs                    184M     0  184M    0% /run/user/0
/dev/loop0               4.4G  4.4G     0  100% /mnt

卸载光盘

u

开始创建本地yum源,并清空缓存。file:// 是协议 /opt/centos是路径。

[root@docker01 etc]# cd yum.repos.d/
vi local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[root@docker01 ~]# yum clean all 
已加载插件:fastestmirror
正在清理软件源: centos
Cleaning up list of fastest mirrors
Other repos take up 222 M of disk space (use --verbose for details)

验证yum源,并下载软件包。

[root@docker01 ~]# yum repolist 
已加载插件:fastestmirror
Determining fastest mirrors
centos                                                                                                                                         | 3.6 kB  00:00:00     
(1/2): centos/group_gz                                                                                                                         | 153 kB  00:00:00     
(2/2): centos/primary_db                                                                                                                       | 3.3 MB  00:00:00     
源标识                                                                          源名称                                                                           状态
centos                                                                          centos                                                                           4,070
repolist: 4,070
[root@docker01 ~]# yum install -y vim vsftpd 

开始搭建ftp共享源,允许匿名用户访问,至此共享源服务器搭建完毕。

[root@docker01 ~]# echo anon_root=/opt/ >> /etc/vsftpd/vsftpd.conf
[root@docker01 ~]# systemctl restart vsftpd 
[root@docker01 ~]# systemctl enable  vsftpd 

开启另一台服务器,使用刚刚那台服务器的共享源。

和上一台服务器步骤相似,需要先备份/etc/yum.repos.d内的文件,清空文件,最后创建本地源文件local.repo

vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=ftp://192.168.56.102/centos
gpgcheck=0
enabled=1

这里的192.168.56.102是共享源服务器的IP(开启vsftpd服务的那台机器)。

centos7有默认的本地源repo模板。可以通过这个模板直接改。

[root@docker01 ~]# cat /etc/yum.repos.d/CentOS-Media.repo 
# CentOS-Media.repo
#
#  This repo can be used with mounted DVD media, verify the mount point for
#  CentOS-7.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c7-media [command]
#  
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c7-media [command]

[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

验证共享源的有效性:

[root@docker02 yum.repos.d]# yum clean all 
已加载插件:fastestmirror
正在清理软件源: centos
Other repos take up 222 M of disk space (use --verbose for details)
[root@docker02 yum.repos.d]# yum repolist 
已加载插件:fastestmirror
Determining fastest mirrors
centos                                                                                                                                         | 3.6 kB  00:00:00     
(1/2): centos/group_gz                                                                                                                         | 153 kB  00:00:00     
(2/2): centos/primary_db                                                                                                                       | 3.3 MB  00:00:00     
源标识                                                                          源名称                                                                           状态
centos                                                                          centos                                                                           4,070
repolist: 4,070

下载一个软件试试,没问题。

[root@docker02 yum.repos.d]# yum install net-tools -y

实际生产环境中还可以把装有linux系统的u盘插入服务器,再将U盘挂载到服务器,充当本地源安装软件。

三、使用web创建软件仓库

1.准备仓库目录: 选择一个目录作为YUM仓库的基础目录。例如,/var/www/html/yumrepo。
2.创建仓库结构: 在基础目录下创建必要的子目录结构,例如:

mkdir -p /var/www/html/yumrepo/base

3.同步RPM包: 使用createrepo工具同步RPM包到你的仓库目录。例如:

createrepo /var/www/html/yumrepo/base

4.配置HTTP服务器: 确保你的系统上安装了HTTP服务器(如Apache或Nginx),并配置好,使得仓库目录可以通过HTTP访问。

yum install httpd -y 
systemctl enable --now httpd
systemctl start httpd

5.配置YUM仓库: 在每个需要使用该仓库的系统的/etc/yum.repos.d/目录下创建一个新的.repo文件,例如myrepo.repo,内容如下:

[myrepo]
name=My Repository
baseurl=http://yourserver/yumrepo/base
enabled=1
gpgcheck=0 # 如果没有使用GPG签名,可以设置为0
# gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MyRepo # 如果使用GPG签名,可以添加这行

6.生成仓库元数据: 定期运行createrepo来更新仓库的元数据,确保YUM可以正确地列出和安装包。

7.使用仓库: 在配置好YUM仓库后,你可以使用yum命令来安装、更新和查询包。

8.(可选)使用GPG签名: 为了增加安全性,你可以为你的仓库生成GPG密钥,并在.repo文件中指定gpgkey。
9.(可选)设置SELinux上下文: 如果启用了SELinux,确保为仓库目录设置了正确的SELinux上下文,以便HTTP服务器可以访问。
10.(可选)自动化同步: 你可以编写脚本或使用cron作业来定期从源仓库同步RPM包到你的自定义仓库。

四、使用ftp创建软件仓库

1. 准备FTP服务器
首先,确保你的Linux系统上安装了FTP服务器软件,如vsftpd。如果没有安装,可以使用以下命令安装:

sudo yum -y install vsftpd

然后,启动并启用FTP服务:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

2. 配置FTP服务器

编辑FTP服务器的配置文件(通常是/etc/vsftpd/vsftpd.conf),进行必要的配置。根据自己需要进行配置。

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

3. 创建FTP目录
在FTP服务器上创建一个目录,用于存放YUM仓库的文件。例如:

sudo mkdir -p /var/ftp/yumrepo
sudo chown -R ftp:ftp /var/ftp/yumrepo

4. 准备RPM包
将你需要的RPM包复制到FTP目录中。你可以从其他系统或互联网上下载这些包,然后上传到FTP服务器。

/var/ftp/yumrepo

5. 创建YUM仓库元数据
使用createrepo工具创建YUM仓库的元数据。首先,确保安装了createreo:

sudo yum install createrepo

然后,运行createreo命令:

sudo createreo /var/ftp/yumrepo

6. 配置客户端YUM仓库
在客户端系统上,创建或编辑/etc/yum.repos.d/local-yum.repo文件,添加以下内容:

[local-yum]
name=Local YUM Repository
baseurl=ftp://your_ftp_server_ip/yumrepo
enabled=1
gpgcheck=0

将your_ftp_server_ip替换为你的FTP服务器的IP地址。

7. 测试YUM仓库
在客户端系统上,运行以下命令来测试YUM仓库:

sudo yum clean all
sudo yum makecache
sudo yum repolist

这将清除YUM缓存并重新生成缓存,然后列出所有可用的仓库。
8. 安装软件包
现在,你可以使用YUM命令从本地FTP仓库安装软件包:

sudo yum install package_name

9. 定期更新仓库
定期将新的RPM包上传到FTP服务器的/var/ftp/yumrepo目录,并运行createreo命令来更新仓库的元数据。

五、国内镜像源站

https://linuxmirrors.cn/

linux:
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
docker:
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

0

评论区