002——centos7.6搭建yum源仓库

yum源仓库搭建分为三类

1,使用系统光盘,搭建本地yum源(简单,建议使用centos everything盘,包数据比较全面)

2,搭建同步官网源到本地源(中等,搭建标准源方法)

3,创建自主本地源(高难度,定制源,充当标准源的补充角色)

一、使用光盘作为本地yum源:Centos或redhat

1,将系统光盘插入本地光驱。或者上传ios镜像到系统中,进行挂载。mount -o loop /root/CentOS-7-x86_64-DVD-1810.iso /mnt/cdrom  本地iso挂载

mkdir /mnt/cdrom #创建目录  

mount /dev/cdrom /mnt/cdrom #挂载     umount /mnt/cdrom #卸载 

cp -avf /mnt/cdrom /yum # -a:复制光盘文件到本地硬盘,该选项保留链接、文件属性,并递归地复制目录,避免重复挂载,卸载镜像操作。

2,修改repo文件为本地目录。

cat >>/etc/yum.repos.d/CentOS-Local.repo<<-EOF  

[Local]  

name=Local Yum  

baseurl=file:///yum/  

gpgcheck=1  

enabled=1 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  

3,清理yum缓存,重建依赖

yum clean all  &&  yum makecache

二、创建公共镜像

详细说明见官方中文文档:http://wiki.centos.org/zh/HowTos/CreatePublicMirrors

常见yum源,官网:http://mirror.centos.org/centos    163:http://mirrors.163.com/centos  阿里云 :http://mirrors.aliyun.com/centos/ 等。

 

1,安装http服务,启动服务。(或者nginx服务,常用软件是nginx,web上显示没有文件夹目录结构)

yum install httpd -y  &&  systemctl start httpd

2,创建源目录,目录结构尽量与线上源的目录结构一致。 类似http://mirror.centos.org/centos/7/os/x86_64/    

cd /var/www/html/  #http自动生成的目录。

echo "hello httpd" >index.html # 生成测试页面,在网页访问自己ip,显示apache或nginx的官网界面则安装成功。

3,同步yum源

3.1使用rsync同步yum源:同步所有的数据,非常全。(有的源可以使用rsync同步,官网,阿里云等不可以),yum install rsync -y   支持rsync源同步的源,使用如下命令同步。

rsync -avzH --delete mirrors.tuna.tsinghua.edu.cn::centos /var/www/html/centos/ # 清华大学yum源

3.2使用createrepo 和reposync 同步yum源。比如官网,阿里云源等。

yum install createrepo yum-utils -y  #安装命令软件

创建下载文件目录,尽量保持和线上目录机构一致:mkdir -p /var/www/html/centos/7/    mkdir -p /var/www/html/centos/6/     #注意6是给centos6使用的。

#下一步生成repodata在该目录之下的目录中 /var/www/html/centos/7/base/x86_64/下指定。

#多个软件组base,update等,centos6,centos7 如何尽量简化管理yum的更新问题?  将centos7和7的目录目录指定不同,指定不同的repoid。reposync -n --repoid=extras6 --repoid=updates6 --repoid=base6 -p /xxx/centos/6

4,同步源文件。

指定用于同步源的repo文件,Centos默认目录在 /etc/yum.repos.d/  。如何下载阿里云repo文件:wget http://mirrors.aliyun.com/repo/Centos-7.repo

CentOS-Base.repo  (包含os,updates,extras,centosplus目录中的内容。)

CentOS-Debuginfo.repo  (debuginfo.centos.org 中的包)

CentOS-Media.repo    (用于定义本地yum安装,本地路径)

CentOS-Vault.repo (vault.centos.org 中的各种包)

CentOS-CR.repo    (只包含cr)

CentOS-fasttrack.repo  (只包含fasttrack)

CentOS-Sources.repo  (vault.centos.org下的相关Source资源)

CentOS-x86_64-kernel.repo (http://mirror.centos.org/altarch/7/ kernel 和experimental)

同步Base源命令:    如果有dvd盘,我们可以先将磁盘上的rpm文件提前拷贝到/var/www/html/centos/7/os/x86_64/base下,节约互联网上下载文件时间(预计下载10GB左右)。

cd /var/www/html/centos/7/ # 先切换到当前目录,会在当前目录生成repoid名称。

reposync --config=/etc/yum.repos.d/CentOS-Base.repo -p /var/www/html/centos/7/   #会在当前目录下同步os等目录。由于repo文件定义的os的名称为base,所以下载的目录为base目录。  

5,同步epel源:

同步epel源(额外的软件包):首先安装官方mirrors.fedoraproject.org rpm包或者下载repo文件。或者安装阿里源的rpm包或者下载wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo。   

也可以手工添加epel,修改地址:

vi /etc/yum.repos.d/epel.repo

[epel]

name=epel

mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-releasever&arch=releasever&arch=basearch

enabled=1

执行同步epel的命令:reposync --config=/etc/yum.repos.d/epel-7.repo -p /var/www/html/centos/7/   

#注意我们把epel的包也放在这个路径下,因为epel会先下载base等包,基础包包含base则无需重复下载,如果指定其他目录会重复下载base的包。

6,生成数据源:

生成base数据源:createrepo -po /var/www/html/centos/7/base/ /var/www/html/centos/7/base/   #第一次需要生成,前面是生成repodata目录,后面目录是包目录,后续使用update更新即可。

#注意有时候网络不好无法正常下载包,包文件为0,需要删除find . -name "*" -type f -size 0 | xargs rm -f;

#createrepo --update /var/www/html/centos/7/base/ 

执行完成会在当前目录生成repodata目录,此目录里的文件就是记录所有包的依赖关系,文件位置等相关信息。yum客户端下载,本地yum源配置该地址所在位置即可。

同理生成:updates,extras,centosplus,epel 等数据源

7,下载互联网上的组数据包文件(现成的),在目录下找到xxcomps.xml文件:

wget http://mirrors.163.com/centos/7/os/x86_64/repodata/cca56f3cffa18f1e52302dbfcf2f0250a94c8a37acd8347ed6317cb52c8369dc-c7-x86_64-comps.xml

#也可以自己编辑:使用yum-groups-manager创建或编辑yum存储库的组元数据文件。

使用当前下载的包,指定目录生成组配置repodata目录。

下载文件到/opt下,/opt/comps.xml   不要使用相对路径,使用相对路径提示找不到。

createrepo -g  /opt/comps.xml /var/www/html/centos/7/base/   #在当前目录和子目录寻找rpm包,在base目录生成组的源repodata目录,如果已经创建过该目录,注意之指定位置为此目录的上一级目录。

#注意可能会影响原来生成的包的repodata,重新生成一次。如果包是全的,应该文件会一致。(有待验证)

三、创建自定义的本地源

平时收藏的RPM软件包放在一个目录里,生成一个自定义源,使用yum管理。

1,创建本地yum仓库:mkdir -p /yum/local #可以有N级目录 # 将RPM包保存到当前目录。

2,创建索引  createrepo /yum   ,修改yum源地址为该repodata文件路径。

 

 

 

下载KEY文件
用户下载安装这个RPM包时,引入RH官方的这个RPM GPG公钥,用来验证RPM包是不是RH官方签名的,一般不会改变,下载一次就行。
wget http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 -P /data/website/centos/
wget http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6 -P /data/website/centos/

上传RPM-GPG-KEY-CentOS-7 到服务器适当位置,提供下载

 

其他:

reposync命令:reposync用于将远程yum存储库同步到本地

-c xxx,--config=xxx 要使用的配置文件(默认使用/etc/yum.conf.d/下)

-r xxx 指定repoid进行查询--repoid=

-e xxx,--cachedir=xxx 存储元数据的目录

-d 删除存储库中不再存在的本地包

-p xxx 将包下载到的路径,默认是当前目录

-l 启用yum插件支持

createrepo参数选项说明:

-u  --baseurl <url>            指定Base URL的地址

-o --outputdir <url>          指定元数据的输出位置

-x --excludes <packages>    指定在形成元数据时需要排除的包

-i --pkglist <filename>    指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。

-n --includepkg    通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。

-q --quiet    安静模式执行操作,不输出任何信息。

-g --groupfile <groupfile>    指定本地软件仓库的组划分,范例如下:createrepo -g comps.xml /path/to/rpms    注意:组文件需要和rpm包放置于同一路径下。

-v --verbose    输出详细信息。

-c --cachedir <path>    指定一个目录,用作存放软件仓库中软件包的校验和信息。当createrepo在未发生明显改变的相同仓库文件上持续多次运行时,指定cachedir会明显提高其性能。

--update    如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减,则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。

-p --pretty   以整洁的格式输出xml文件。

-d --database   该选项指定使用SQLite来存储生成的元数据,默认项。

 

 

参考:https://www.cnblogs.com/zzyyxxjc/p/4346975.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值