1. 创建yum仓库目录
mkdir -p /data/yum_data/ cd /data/yum_data/ #可以上传rpm包到此目录,此目录下面还可以包括文件夹 2. 安装createrepo软件 yum -y install createrepo 3. 初始化repodata索引文件 createrepo -pdo /data/yum_data/ /data/yum_data/ 4. 提供yum服务 # 可以用Apache或nginx提供web服务,适用于内网环境 基于HTTP的yum源配置 安装apache软件 # yum install -y httpd 修改配置文件/etc/httpd/conf/httpd.conf: 将默认的www目录指向本地创建的yum仓库目录 DocumentRoot "/data/yum_data/" <Directory "/data/yum_data/"> 修改/usr/local/yumrepo目录的属主和属组为apache # chown -R apache.apache /data/yum_data/ 删除默认主页 # rm /etc/httpd/conf.d/welcome.conf 重启服务: # service httpd restart 可以通过浏览器输入本机IP查看。# cd /etc/yum.repos.d
[root@B yum.repos.d]# vi localyum.repo
centos6.X
[localyum]
name=centos6 baseurl=http://192.168.3.85/centos/6/os/x86_64/ enable=1 gpgcheck=0 [localepel] name=epel baseurl=http://192.168.3.85/epel/6/x86_64/ enable=1 gpgcheck=0 [localextra] name=extra baseurl=http://192.168.3.85/centos/6/extras/x86_64/ enable=1gpgcheck=0
centos7
[localyum]
name=centos7 baseurl=http://192.168.3.15/centos/7/os/x86_64/ enable=1 gpgcheck=0 [localepel] name=epel baseurl=http://192.168.3.15/epel/7/x86_64/ enable=1 gpgcheck=0 [localextra] name=extra baseurl=http://192.168.3.15/centos/7/extras/x86_64/ enable=1 gpgcheck=0[root@YUM ~]# yum --enablerepo=localyum --disablerepo=base,extras,updates,epel list
# 指定使用localyum库 上面是临时使用内网yum源,想永久并简单使用yum -y install lrzsz命令,就需要修改配置文件将默认的repo文件关闭。 # cd /etc/yum.repos.d/ # vim CentOS-Base.repo # 在每一个启动的源加上 # enabled=0 #改为1就启用,没有此参数也是启用。 [base] ………… enabled=0 [updates] ………… enabled=0 [extras] ………… enabled=0# 还有其他开启的仓库就使用这个办法关闭。
7. 镜像yum源
上面只是将自己制作的rpm包,放入yum源。但还有一种企业需求,说的更具体一点,平时大家yum安装软件都是从公网下载的,占用带宽,因此在学校里搭建一个内网yum服务器,但又考虑到如果yum软件的数据库文件repodata不一样,就会有问题。因此我想到的解决方法就是直接使用公网yum源的repodata。 镜像同步公网yum源 上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。 http://mirrors.ustc.edu.cn/status/ CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/ epel源:rsync://mirrors.ustc.edu.cn/epel/ 同步命令: # 使用rsync同步yum源,为了节省带宽、磁盘和下载时间,我只同步了CentOS6的rpm包,这样所有的rpm包只占用了21G,全部同步需要300G左右。 # 同步base源,小技巧,我们安装系统的光盘镜像含有部分rpm包,大概3G,这些就不用重新下载。 mkdir -p /data/yum_data/centos/6/os/x86_64/ mkdir -p /data/yum_data/centos/6/extras/x86_64/ mkdir -p /data/yum_data/centos/6/updates/x86_64/ mkdir -p /data/yum_data/epel/6/x86_64/ /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x86_64/ /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/yum_data/centos/6/extras/x86_64/ /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/yum_data/centos/6/updates/x86_64/ # epel源 /usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/ 报错: # rsync: getaddrinfo: mirrors.ustc.edu.cn 873: Name or service not known 解决: DNS无法解析,添加移动DNS # echo "nameserver 120.196.165.7" >> /etc/resolv.conf [root@node5 ~]# cat /etc/resolv.conf nameserver 120.196.165.7 # 可以自建一个内网dns,如果没有,可使用hosts解析。 echo '192.168.0.200 mirrors.aliyun.com' >>/etc/hosts 结果展示 [root@KVM data]# du -sh yum_data 21G yum_data # tree -L 3 yum_data/ yum_data/ ?..?€ centos ?..?€ 6 ?..?€ os 3 directories, 0 files 问题: 出现乱码 解决: 修改shell链接工具的编码即可