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