构建本地的YUM仓库

  • 构建本地的yum仓库:
  • 问题参考


构建本地的yum仓库:

功能:实现本地客户机获取yum资源

特点:访问速度快,不占用网络带宽

实验准备:
准备一台初始化设置完成的机器(从没安装过软件的系统,可以联网)**

[root@ks1 ~]# vi /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1	#<--	0改成1	保留下载缓存的文件(rpm包)

[root@ks1 ~]# yum install -y vim-enhanced ftp lftp net-tools ntpdate

[root@ks1 7]# pwd
/var/cache/yum/x86_64/7

[root@ks1 7]# mkdir /rpm

[root@ks1 7]# find . -name "*.rpm" -exec cp {} /rpm/ \;
[root@ks1 7]# cd /rpm/

[root@ks1 /]# scp -r rpm/ 172.16.0.29:/var/ftp  # 通过远程拷贝rpm目录到yum-server主机

yum-server主机(172.16.0.29)

[root@ks-server /var/ftp/rpm]# yum install -y createrepo
[root@ks-server /var/ftp/rpm]# createrepo -d .

[root@ks-server /var/ftp/pub]# vim ftp.repo
[ftp]
name=ftp
baseurl=ftp://172.16.0.29/rpm
enabled=1
gpgcheck=0

客户端测试:(测试前可以通过yum-server主机将repo文件传给客户机)

[root@ks1 ~]# cd /etc/yum.repos.d/
[root@ks1 yum.repos.d]# gzip *		将自带的repo压缩.
[root@ks1 yum.repos.d]# yum install -y vim-enhanced ftp lftp net-tools ntpdate

问题参考

无法使用wget下载,提示… failed: Connection refused.
检查vsftp服务是否启动

如果对yum仓库内的rpm包进行增量时,应该怎么完成更新yum仓库。
删除yum仓库目录中的repodataml,然后重新执行createrepo -d 命令即可。

如何实现多个yum仓库的整合调度使用
可以建立多个文件夹,分别管理不同的yum仓库,更新时只需要向对应的目录去添加rpm包,然后用createrepo -d更新对应的yum仓库。
整合管理和在一个repo文件中编辑多个yum仓库模块进行组合使用

一个列子

使用父目录中的 repo-group.xml 作为 groupfile
在当前目录/或子目录中查找 rpm 包
在当前目录下生成 repodata 目录和数据
 createrepo -g ../repo-group.xml .

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来存储生成的元数据,默认项。