1.首先安装一个web服务器来作为yum源的服务器。例如Apache、Nginx等web服务器都可以作为yum源的服务器。 2.然后安装createrepo工具来生成yum仓库元数据。在Linux系统上,您可以通过运行命令sudo yum install createrepo来安装该工具。 3.在yum源服务器上创建一个新目录,比如/var/www/html/yumrepo,并使用createrepo命令来初始化该目录,生成yum仓库的清单元数据。运行命令createrepo /var/www/html/yumrepo。 4.将需要安装的软件包上传到刚才创建的yum源目录中。您可以从公共yum源或官方软件源下载rpm文件并将其复制到/var/www/html/yumrepo目录中。 5.配置客户端yum源文件,使其指向您的新yum源,而不是默认的公共yum源。在客户端机器上打开yum配置文件,该文件通常位于/etc/yum.repos.d/目录中,然后编辑配置文件,将baseurl设置为指向您的私有yum仓库。
本例以Centos7.9系统为例,服务端IP地址为A,客户端IP地址为B。
一、在服务端上:需要创建Yum仓库,通过配置WEB服务器或FTP服务器来把Yum仓库分享给局域网内其它Linux机器使用。
(1)环境准备
1. 关闭selinux
sestatus
vi /etc/selinus/config #SELINUX 修改为 disabled, 需重启机器才生效
2. 关闭防火墙
firewall-cmd --state
systemctl stop firewalld #停止firewall
systemctl disable firewalld #禁用 firewall 开机启动
(2)导入rpm包,生成索引文件。
在本例中,以镜像包的方式导入rpm包。
1. 挂载磁盘镜像/epel镜像
mkdir -p /media/cdrom
mkdir -p /media/cdrom-epel
mount -o loop -t iso9660 /home/bk_offline_repo-7.5.1804.iso /media/cdrom-epel
mount -o loop -t iso9660 /home/CentOS-7-x86_64-DVD-1810.iso /media/cdrom
2. 复制rpm包至/yum/Packages
cd /media/cdrom
cp -R Packages/ /yum/
unalias cp
cd /media/cdrom-epel
cp -rf *.rpm /yum/Packages/
alias cp='cp -i'
3. 按照先后顺序执行以下命令,不然会报错缺少依赖包。
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh libxml2-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm #createrepo主要是为后续生成仓库数据使用
4. 创建仓库数据,建立索引
createrepo -v /yum #运行完成后会生成repodata文件夹
5. 在/etc/yum.repos.d/目录下创建一个名为 local.repo文件,其中包含所有的yum信息
原目录下的文件备份至其它位置,如yum.repos.d.bak
vi /etc/yum.repos.d/local.repo
[localrepo] #注意,该地方不能有空格,不然后续执行 yum repolist all时会报错
repolist:0
name=local-yum
baseurl=file://yum # file://告诉yum为本地仓库,/xtkyum为绝对路径
enabled=1
gpgcheck=0 #关闭rpm包的gpg校验功能;个人环境,建议关闭,参数值为0;生产环境,建议打开,参数值为1。
保存退出。
6. yum clean all #清理缓存
yum repolist all #检查仓库列表,在列表中能看到localrepo
7. 测试能否成功安装。
yum -y install gcc
yum -y install ntp
(3)配置web或http分享yum仓库。
>>>使用ftp服务器(vsftpd)分享yum仓库
1. yum -y install vsftpd
2. 把yum仓库下的文件拷贝到vsftpd的默认根目录 /var/ftp/pub,包括repodate
cd /yum
cp -R Packages /var/ftp/pub
cp -R repodate /var/ftp/pub
chmod 755 -R /var/ftp/pub
3. systemctl restart vsftpd
systemctl status vsftpd
>>>使用web服务器(apache)分享yum仓库
1. yum -y install httpd
2. 把yum仓库下的文件拷贝到默认根目录 /var/www/html/,包括repodate
cd /yum
cp -R Packages /var/www/html
cp -R repodate /var/www/html
chmod 755 -R /var/www/html
3. systemctl restart httpd
systemctl status httpd
二、在客户端上:创建repo配置文件,测试yum仓库是否能正常使用。
1. 在/etc/yum.repos.d/目录下创建一个名为 local.repo文件,其中包含所有的yum信息
原目录下的文件备份至其它位置,如yum.repos.d.bak
2. vi local.repo (ftp)
[localrepo]
name=localyum
baseurl=ftp://服务器ip地址A/pub/
enabled=1
gpgcheck=0
保存后退出
>>>如果是web服务器,baseurl修改成:baseurl=http://服务器IP地址A
3. 最后,测试客户端是否可以成功连接到您的私有yum源,并从中下载安装包。您可以尝试运行yum命令,例如sudo yum update或者sudo yum install package_name进行测试。