使用createrepo创建自己的yum源
2016-03-14 17:19
309 查看
使用createrepo创建自己的yum源
相比使用shell脚本,从源码编译安装的方式,脚本的可维护性比起rpm要糟糕一些,而且从长远来看,rpm、yum源的可维护性,要比“脚本”可靠一些。在本文中,花开分享了创建yum源的操作步骤,用于管理系统上“定制”的软件包。编者按:为什么要使用rpm来管理软件包?相比使用shell脚本,从源码编译安装的方式,排除规模引出的效率因素不讲,脚本的可维护性比起rpm要糟糕一些,当然使用rpm就需要深入了解rpmbuild以及spec文档,似乎也并不简单。但从长远来看,rpm、yum源的可维护性,要比“脚本”可靠一些。在本文中,花开分享了创建yum源的操作步骤,用于管理系统上“定制”的软件包。以下为正文。创建yum源需要一个ftp或者http服务,鉴于ftp烦人的防火墙策略(防火墙配制不当,ftp的模式――主动/初动使用不当,服务会变得不可用),建议使用http服务。管理yum源需要一个工具createrepo,使用yum安装:
yum -y install createrepo然后就可以开始了:1. 规划、创建yum源目录。比如在http://www.bsdmap.com的根目录下创建一个yum目录,来保存 yum 源数据。观察官方yum源的目录规划,像是yum并不能自己维护arch,即并不能自己区分i386还是x86_64,所以是单独放在不同的目录下。我维护的是基于CentOS Linux 5的包,规划目录如下:
$mkdir -p yum/centos/5/{i386,x86_64}2. 初始化repodata信息:
$createrepo -p -d -o yum/centos/5/i386 yum/centos/5/i386
$createrepo -p -d -o yum/centos/5/x86_64 yum/centos/5/x86_64这个时候,会在yum/centos/5/i386和yum/centos/5/x86_64目录下,分别看到一个repodata目录,这个就是yum源的Meta数据,有了这个,yum就可以和这个“源”进行“数据信息”了。当然这个时候,这个源是空的,没有任何包可以安装。后面再说如何在yum源中提供安装包。3. 配置本地的yum,使之使用自建的yum源。简单的来说,就是在本地的/etc/yum.repos.d目录下新建一个配置文件文件(也可配置语句添加到已经存在文件中),以.repo为文件名后缀,比如bsdmap.repo,然后内容大概如下:
[bsdmap-yum]
name=bsdmap-yum
baseurl=http://www.bsdmap.com/yum/centos/$releasever/$basearch/
enabled=1
gpgcheck=0
gpgkey=解释:[....] 代表这个库的名字,必须是唯一的,不可以重复。name= 是这个库的说明,没有太大的实际意义,只是一个字段说明。baseurl= 说明采取什么方式传输,具体路径在哪里,可以使用的方式有,file://,ftp://,http://等,关于baseurl中的变量,可以查看yum.conf 的手册:man yum.conf ,在手册的最后一段有详细描述。enabled=1 说明启用这个更新库,0表示不启用。gpgcheck=1 表示使用gpg文件来检查软件包的签名gpgkey= 表示gpg文件所存放的位置,此处也可以有http方式的位置。这时,当我们yum repolist 时,就可以看到bsdmap-yum 源了。
此文档为转载文件。
相关文章推荐
- 解决QWidget父对象加入QGraphicsView内导致当前对象接收不到鼠标移动事件问题
- View的绘制流程
- MVC,MVP 和 MVVM 的图示
- jquery之AJAX
- poi利用反射机制封装导出方法
- xUtils3.0发送post请求如何传json的问题
- IOS UICollectionView 的基础使用
- Android开发者入门必知了解谷歌官方Android开发文档
- Java多线程(一)、多线程的基本概念和使用
- Head First设计模式之装饰者模式(Decorator Pattern)
- php解决删除zip的功能
- oracle中从指定日期中获取月份或者部分数据
- lintcode-medium-Binary Tree Level Order Traversal II
- Oracle定时执行计划任务
- 根据sql的hash_value查看sql的正直执行计划
- 一个极简单的Retrofit和RxJava的小例子
- MFC基础类层次结构及其运行机制
- java实现邮件发送(带附件)
- RPM方式安装MySQL5.6
- Fastjson的SerializerFeature序列化属性