`
famoushz
  • 浏览: 2951037 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在RHEL5下创建自己的yum repository

阅读更多

在Red Hat Enterprise Linux 5中在安装时没有选择所有软件包,以后在使用过程中想再增加缺少的软件包,通常情况可以通过两种途径完成。

一是通过rpm手工安装需要安装的软件包;

二是通过注册RHN,然后由yum通过internet连接到RHN站来新增软件包。

这两种情况都有其不便之外,第一种由于存在软件包的依赖性关系,可能需要在安装一个rpm包之前要安装多个与之关联的软件包,而往往这些依赖的包的名称我 们无法正确定位。尤其经常提示缺乏某一动态函数库时,我们就不容易方便查到所需软件包的名称。第二种方法虽然不存在上述情况,但显而易见的问题是需要连接 internet,而且安装软件包的速度会很慢。

为了避免上述两种情况的弊端,我们可以通过自己创建本地的repository的方法来实现软件包的快速安装。(此方法前提是你有Red Hat Enterprise Linux 5安装介质盘)
1. 首先,我们可以把几张rhel 5的安装盘copy到某一指定目录下。 如/iso/rhel51server

2. 所有盘都copy完成后,把系统原有的存放repository内容的目录改名。
#mv /iso/rhel51server/Server/repodata /iso/rhel51server/Server/bakrepo

3.安装创建repository的软件包。
#yum install createrepo 或 #rpm -ivh createrepo-0.4.4-2.fc6.noarch.rpm

4. 创建存放自己创建repository软件列表的目录。
#mkdir /iso/rhel51server/Server/repodata

5. 创建自己的repository。
#cd /iso/rhel51server/Server/repodata
#createrepo -g bakrepo/comps-rhel5-server-core.xml /iso/rhel51server/Server
一旦创建完成,会在repodata目录下生成5个文件:
comps-rhel5-server-core.xml中是软件包组分类;
filelists.xml.gz, other.xml.gz,primary.xml.gz是软件包列表;
repomd.xml中存放md5校验信息。

6.创建yum的repository配置文件。
#cd /etc/yum.repos.d
#touch rhel51-server.repo
#vi rhel51-server.repo , 内容如下
[rhel51-server]
name=Red Hat Enterprise Linux $releasever - $basearch
baseurl=file:///iso/rhel51server/Server
enable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

7.清除以前安装时yum缓存的包头文件信息。
#yum clean all

8.所有创建工作到些完成,接下来你就可以正常通过yum完装、删除自己需要的/不需要的软件包了。

如果还想实现更新库的功能,只需要把从RHN下载的新的软件包copy到Server目录下,再运行createrepo命令更新库内容就可以了。

YUM的配置文件
yum的一切配置信息都储存在一个叫yum.conf的配置文件中,通常位于/etc目 录下,这是整个yum系统的重中之重,所以有必要详细介绍。下面是一个从网上找来的yum.con文件,让我们以此为例,进行说明。

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
retries=1

[base]
name=Fedora Core $releasever - $basearch - Base
baseurl=http://download.atrpms.net/mirrors/fedoracore/$releasever/$basearch/os
http://rpmfind.net/linux/fedora/cor...er/ $basearch/os
http://mirror.clarkson.edu/pub/dist...er/ $basearch/os

[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch
http://redhat.linux.ee/pub/fedora/l...sever/ $basearch
http://fr2.rpmfind.net/linux/fedora...sever/ $basearch

[Fedora.us]
name=Fedora.us - $basearch - Extras
baseurl=http://fedora.linux.duke.edu/fedorax86_64/fedora.us/$releasever/$basearch/RPMS.stable

[Dag Wieers]
name=Dag RPM Repository for Fedora Core
baseurl=http://apt.sw.be/fedora/$releasever/en/$basearch/dag

[Livna]
Name=Livna RPM, Fedora Core $releasever - $basearch
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.stable

[freshrpms]
name=FreshRPMs
baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms/
http://ftp.us2.freshrpms.net/linux/...arch/freshrpms/

第一部分(这是yum的全局性设置。默认一般不必改动。)
[main]
cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。
debuglevel:除错级别,0──10,默认是2
logfile:yum的日志文件,默认是/var/log/yum.log。
pkgpolicy: 包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存 在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个 服务器上的软件安装。一般都是选newest。
distroverpkg:指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行 版的rpm包。
exactarch,有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会 用1686的包来升级。
retries,网络连接发生错误后的重试次数,如果设为0,则会无限重试。
tolerent,也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果 你设为1,则yum不会出现错误信息。默认是0。
除了上述之外,还有一些可以添加的选项,如
exclude=,排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。
gpgchkeck= 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认好像也是检查的。

第二部分:
配置repository服务器了,这是最令人激动的,有了好的repository,就如家门口开了大卖场,要什么东西稍微跑跑腿就行,对了这还是个免 费的大卖场。
所有服务器设置都应该遵循如下格式:

[serverid]
name=Some name for this server
baseurl=url://path/to/repository/

其中serverid是用于区别各个不同的repository,必须有一个独一无二的名称。
name,是对repository的描述,支持像$releasever $basearch这样的变量;
baseurl是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
其中url支持的协议有 http:// ftp:// file://三种。baseurl后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl只能有一个,也就是说不能像如下格式:
baseurl=url://server1/path/to/repository/
baseurl=url://server2/path/to/repository/
baseurl=url://server3/path/to/repository/
其中url指向的目录必须是这个repository header目录的上一级,它也支持$releasever $basearch这样的变量。
url之后可以加上多个选项,如gpgcheck、exclude、failovermethod等,比如:

[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch
http://redhat.linux.ee/pub/fedora/linux/core/updates/ $releasever/$basearch
http://fr2.rpmfind.net/linux/fedora/core/updates/ $releasever/$basearch
gpgcheck=1
exclude=gaim
failovermethod=priority

其中gpgcheck,exclude的含义和[main]部分相同,但只对此服务器起作用,
failovermethode 有两个选项roundrobin和priority,意思分别是有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失 败则使用下一个,依次循环,priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin。

几个变量
$releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
$arch,cpu体系,如i686,athlon等
$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。
对yum.conf设定完成,我们就可以好好体验yum带来的方便了。

对 了,万事具备,只欠东风。还有一件事没有做。那就是导入每个reposity的GPG key,前面说过,yum可以使用gpg对包进行校验,确保下载包的完整性,所以我们先要到各个repository站点找到gpg key,一般都会放在首页的醒目位置,一些名字诸如 RPM-GPG-KEY.txt之类的纯文本文件,把它们下载,然后用rpm --import xxx.txt命令将它们导入,最好把发行版自带GPG-KEY也导入,rpm --import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官方软件升级用的上。

FC3: rpm --import /usr/share/doc/fedora-release-3/RPM-GPG-KEY-fedora

FC4: rpm --import /usr/share/doc/fedora-release-4/RPM-GPG-KEY-fedora

至此一切准备工作都已完毕。
分享到:
评论

相关推荐

    RHEL5配置YUM源

    在RHEL5中,YUM的配置文件通常位于`/etc/yum.repos.d/`目录下。这里通常有多个以`.repo`为后缀的文件,每个文件代表一个仓库。你可以用文本编辑器(如vi或nano)打开这些文件进行编辑。 2. **添加新的YUM源**: ...

    RedHat Linux RHEL6配置本地YUM源

    在Red Hat Enterprise Linux (RHEL) 6中,默认情况下,YUM在线更新服务是需要订阅的。如果没有注册订阅服务,用户将无法直接使用在线YUM更新。因此,在这种情况下,配置本地YUM源成为了一个非常实用且必要的解决方案...

    rhel6 ansible 2.6 离线yum安装包

    在本文中,我们将深入探讨如何在RHEL6系统上离线使用Ansible 2.6进行YUM安装包管理。RHEL6(Red Hat Enterprise Linux 6)是Red Hat公司发布的Linux操作系统的一个版本,而Ansible 2.6是自动化运维工具Ansible的一个...

    Linux(rhel)yum配置详解

    在RHEL 5.3环境下配置YUM,首先需要创建或修改repo配置文件,通常位于/etc/yum.repos.d/目录下。配置文件由一系列的[repository]段组成,每个段定义了一个仓库。例如: ```ini [myrepo] name=My Repository ...

    RHEL5下安装分区工具GParted

    在RHEL5(Red Hat Enterprise Linux 5)操作系统中,GParted是一款非常重要的分区管理工具...以上就是在RHEL5下安装和使用GParted的主要步骤及相关知识点,通过学习这些内容,用户可以更好地管理和优化自己的磁盘分区。

    在linux5搭建本地yum源

    本文将详细介绍如何在Linux 5环境下创建本地YUM源,以便离线安装和维护系统。 首先,你需要有一张RHEL 5的安装光盘或ISO镜像文件,因为YUM源的主要内容来自于这些安装介质。以下是搭建本地YUM源的步骤: 1. **创建...

    RHEL7使用iso文件配置本地yum源.doc

    RHEL7 操作系统中,默认情况下是使用网络 yum 源,但是在一些特殊情况下,可能无法连接到互联网,这时我们可以使用 iso 文件配置本地 yum 源来满足需求。在本文中,我们将详细介绍如何使用 iso 文件配置本地 yum 源...

    RHEL5+oracle9i

    本文将详细探讨如何在RHEL5环境下安装和配置Oracle 9i。 一、RHEL5简介 RHEL5是Red Hat公司在2007年发布的一款企业级Linux发行版,它引入了许多新特性,如改进的内核版本(2.6),增强了对虚拟化技术的支持,以及...

    redhat5的yum配置

    在RHEL5系统中,`yum`的配置文件通常位于`/etc/yum.repos.d/`目录下。你可以在这里创建一个新的配置文件,例如`163-redhat5.repo`。 2. **编辑配置文件** 使用文本编辑器(如`vi`或`nano`)打开配置文件,然后...

    Centos下的yum安装包.zip

    在Linux系统中,CentOS是一个基于Red Hat Enterprise Linux(RHEL)的开源操作系统。它以其稳定性和安全性受到广大用户的喜爱,广泛应用于服务器环境。而`yum`(Yellowdog Updater, Modified)是CentOS中一个重要的...

    RedHat本地yum源配置及国内镜像源配置.docx

    创建一个新的YUM源配置文件,例如`/etc/yum.repos.d/aliyun.repo`,并在其中添加以下内容: ```ini [base] name=CentOS-$releasever - Base - mirrors.aliyun.com mirrorlist=http://mirrors.aliyun.com/centos/$...

    redhat 5 yum 源

    在Red Hat 5系统中,YUM源的配置主要涉及编辑`/etc/yum.conf`文件,并定义多个不同的仓库(repository)。下面详细介绍如何根据给定文件进行YUM源配置。 #### 二、YUM源配置文件解析 给定文件提供了针对不同类型的...

    RedHat 5.3配置YUM 从centos5源与光盘源更新软件

    在RHEL AS5中,YUM还可以用来升级整个系统,但默认情况下,它指向Red Hat的YUM源,这需要购买服务和密钥才能进行更新。 当没有Red Hat的服务时,我们可以利用免费的CentOS 5源来更新RHEL AS5系统。CentOS是Red Hat...

    YUM用法指导

    4. 将之前挂载在/mnt/disk 目录下 RHEL5 的所有文件 copy 到/var/ftp/pub 目录下,并查看是否 copy 完整 [root@station11 /]# cp -a /mnt/cdrom/* /var/ftp/pub/ [root@station11 /]# ls /var/ftp/pub/ 5. 建立 rpm ...

    redhat 6.5 yum源

    在RHEL 6.5中配置YUM源是非常重要的,因为这直接影响到系统的更新速度和稳定性。通常,用户可以从Red Hat的官方服务器获取yum源,但这样做可能由于网络问题导致下载速度慢或者无法连接。因此,很多用户会选择使用...

    yum 仓库服务

    在服务器端,你需要创建一个目录来存储RPM包,并通过`createrepo`命令生成仓库数据(repodata),这些数据包含了RPM包的元信息,帮助YUM处理依赖关系。例如,你可以将RHEL 6安装光盘的内容复制到 `/var/ftp/rhel6/` ...

    Centos下的yum安装包

    在Linux系统中,CentOS是一个广泛使用的开源操作系统,它基于Red Hat Enterprise Linux (RHEL)。对于初学者和管理员来说,有效地管理软件包是至关重要的。`yum`(Yellowdog Updater, Modified)是一个在CentOS中用于...

    Linux下搭建本地YUM源服务器.pdf

    Linux 下搭建本地 YUM 源服务器 概述: YUM(Yellow dog Updater,Modified)是 YUP(Yellow dog Updater)的改进版,用于自动升级、安装/...YUM 客户端工具是字符模式下的 yum 命令,在 RHEL5 系统中由默认安装的。

    基于VSFTP的本地YUM源及光盘YUM源搭建

    选择一个合适的位置创建YUM源目录,例如`/var/yumrepo`,然后在该目录下创建各个软件仓库的子目录,如`CentOS-7`。 ```bash sudo mkdir -p /var/yumrepo/CentOS-7 ``` 2. 将软件包复制到对应目录 将你需要提供的...

    redhat 6.8 更新阿里云的yum源需要的包

    如果该目录下已经存在官方的RHEL 6.8 repo文件,你可以选择替换原有的文件,或者创建一个新的文件并修改`[repository name]`以避免冲突。 4. **验证GPG密钥**:阿里云的YUM源通常会附带一个GPG密钥来验证软件包的...

Global site tag (gtag.js) - Google Analytics