昨天给布置个新的需求,做一个Yum仓库,要求是HTTP式的,在某个服务器上搭建个Yum仓库,能让其它的机器有了这个机器的.repo仓库文件后就可以从本地下载安装软件,以前都是下载后直接yum install直接安装,也没怎么接触过,好吧,既然需求来了那就做呗。那么问题来了,什么是Yum呢,虽然一直在用,却知其然不知其所以然,果断谷歌之。

简介

  Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http 或ftp 站点,也可以是本地软件池,但必须包含rpm 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。

  yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。

  yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。

  yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。

准备工作

  1.首先需要检查一下你的系统的yum: 

 $rpm -qa | grep yum
yum-plugin-priorities-1.1.30-17.el6_5.noarch
yum-3.2.29-43.el6.centos.noarch
PackageKit-yum-plugin-0.5.8-21.el6.x86_64
yum-plugin-security-1.1.30-17.el6_5.noarch
yum-utils-1.1.30-17.el6_5.noarch
yum-plugin-fastestmirror-1.1.30-17.el6_5.noarch
yum-metadata-parser-1.1.2-16.el6.x86_64
PackageKit-yum-0.5.8-21.el6.x86_64

  其中第三个、第七个以及第八个比较重要。

  2.然后下载安装createrepo

 yum install createrepo

制作yum源

 1.随便创建一个地方作为yum仓库,用于存放rpm包:

 $mkdir /usr/local/yumrepo

 2.把rpm包都拷贝进文件夹。

 3.把秘钥拷贝进来

 $cp /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 .

 因为已经在yumrepo的目录里,所以用“.”表示当前目录。

 4.执行命令生成repodata: 

 $createrepo -v /usr/local/yumrepo

 因为我的rpm包是在此目录下,所以这么写,-v参数后面跟的是你的rpm包的文件夹!

 5.接下来就是制作一个*.repo的文件了。

 仿照着其它的文件写即可:

 [Mysql]
name=Mysql
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

 名字嘛,随意起,开心就好~baseurl这个需要看你怎么玩了,一会细说,

 第4行:enabled=1;此行的意思是是否启用该配置,1为启用,0不启用,至于其它的数字?没事的可以试着玩玩,或者818官网文档。

 第5行:gpgcheck=1这个是是否启用检查验证,1为检查,0为关闭,如果检查的话那么第6行就有用武之地了,还记得大明湖畔拷贝的RPM-GPG-KEY-CentOS-6么,不记得?回到第三步自己瞅去。

 接下来重点说一下第3行的baseurl,你若是本地使用的话按照如下方式来写:

 baseurl=file:///usr/local/yumrepo

 当然我的是基于http的一会再说。当然还有一个就是不要忘了把创建的*.repo文件拷贝到/etc/yum.repos.d/文件夹下面!!!

基于HTTP的yum源配置

 恩,接下来重点来了:

 1.修改配置文件/etc/httpd/conf/httpd.conf:

 在末尾有这么一些东西,将注释解掉改为如下的格式:

 <VirtualHost *:>
ServerAdmin root
DocumentRoot /usr/
ServerName IP地址
#ErrorLog log
#CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

 注意了,第三行中需要写你的文件夹的第一层目录,即你存放位置的根目录,然后第4行写你的IP地址。

 2.重启服务: 

 $service httpd restart

 3.修改你的*.repo文件的baseurl。改为如下格式:

 baseurl=http://IP地址/local/yumrepo

 然后就大功告成!什么太简单了,重点就这么几句话?别得了便宜还卖乖好吗?!要记住:简单的未必是最好的,但最好的一定是简单的!

测试 

 你可以在本地测试,也可以在其他机器测试,首先输入以下命令:

 $yum list available
.Loaded plugins: fastestmirror, priorities, refresh-packagekit, security
.Loading mirror speeds from cached hostfile
.base | 2.9 kB :
.Available Packages
.MySQL-client.i386 5.5.-.rhel4 base
.MySQL-devel.i386 5.5.-.rhel4 base
.MySQL-server.i386 5.5.-.rhel4 base
.mysql-community-release.noarch el6- bas

 然后安装最后一个试试:

 $yum install   mysql-community-release.noarch :el6-
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-release.noarch :el6- will be installed
--> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================
Installing:
mysql-community-release noarch el6- base 5.7 k Transaction Summary
============================================================================================================================================================================
Install Package(s) Total download size: 5.7 k
Installed size: 4.3 k
Is this ok [y/N]: y
Downloading Packages:
mysql-community-release-el6-.noarch.rpm | 5.7 kB :
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
** Found pre-existing rpmdb problem(s), 'yum check' output follows:
cvs-1.11.-.el6.x86_64 has missing requires of vim-minimal
:libguestfs-1.20.-.el6.x86_64 has missing requires of vim-minimal
:libguestfs-tools-c-1.20.-.el6.x86_64 has missing requires of /bin/vi
sudo-1.8.6p3-.el6.x86_64 has missing requires of vim-minimal
Installing : mysql-community-release-el6-.noarch /
Verifying : mysql-community-release-el6-.noarch / Installed:
mysql-community-release.noarch :el6- Complete!

 成功了,以上就是创建yum源的全部过程,忘了说了,我是在另一台机器上测试的,先用scp将yum.repos.d中的文件拷贝过去然后才进行测试~

 以上就是本次的全部内容了~

 

 遇到的问题及解决方法:

 先开始懒得进行验证然后报错:

 warning: rpmts_HdrFromFdno: V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Public key for mysql-community-release-el6-.noarch.rpm is not installed

 明显是秘钥问题,然后懒得弄了就在安装的后面加了个参数:

 方法一:

 $yum install 包名 --nogpkcheck

 对,没错,就是--nogpgcheck。

 方法二:

 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 方法三:

 yum.conf 文件,把里面的gpgcheck=1改为gpgcheck=0。 

 PS:本博客欢迎转发,但请注明博客地址及作者~

 博客地址:http://www.cnblogs.com/voidy/

 <。)#)))≦

 

CentOS6.5创建yum源的更多相关文章

  1. 配置CentOS6.5的yum源

    系统yum源(源,英文repository,就是资源库的意思:yum,全称Yellow dog Updater, Modified,是centos的软件包管理器.基于RPM包管理,能够从指定的服务器自 ...

  2. CentOS7linux通过http配置共享自动创建yum源的shell脚本

    因工作需要用到,所以记录一下配置流程 环境介绍: 两台CentOS7系统 yum源服务主节点IP:192.168.1.78 从节点IP:192.168.1.79(79从78上获取yum源) 配置78节 ...

  3. centos6.5 更新yum源

    在使用centos过程中,自带的yum源包,不能满足的情况下,这个时候就可以考虑升级yum源了.国内用的比较多的是163镜像地址为http://mirrors.163.com/.help/centos ...

  4. sh7.创建yum源脚本练习

    练习1, 写一个脚本分别计算1-100,之间奇数和偶数之和 ji_sum.sh #!/bin/bash # let ..};do ] -eq ];then let sum+=I fi done ech ...

  5. Centos6.4 本地yum源配置

    由于单位的服务器均使用的是内网,而安装一些软件如Git,需要很多的依赖包,使用yum安装相对简单,由于不能联网故配置本地yum源配置. 1.首先将需要rpm库添加到系统中: 1).虚拟机中安装的lin ...

  6. CentOS6.3配置yum源

    转载:http://www.linuxidc.com/Linux/2012-10/72750.htm 全新以最小化包安装了64位的CentOS6.3系统,作为本地的Web服务器使用,现记录全过程第二步 ...

  7. 转:CentOS6.3配置yum源

    全新以最小化包安装了64位的CentOS6.3系统,作为本地的Web服务器使用,现记录全过程第二步,配置网易163的yum源 1. 下载repo文件    下载地址:http://mirrors.16 ...

  8. 怎样更新CentOS6.5的yum源

    将yum源设置为国内yum源,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到. 国内源:可以使用wget获取或者直接下载 网易: CentOS5: http://mirrors.16 ...

  9. centos6配置本地yum源

    在无法访问外网时,yum安装软件会失败,这时候可以配置yum源为本地的镜像iso来解决这个问题 1. 使用Xftp上传iso镜像文件到服务器 2. 使用如下命令新建挂载点并挂载 sudo mkdir ...

随机推荐

  1. 【Android开发笔记】底部菜单栏 FragmentTabHost

    公司项目,需求本来是按照谷歌官方指南写的,菜单栏设计成在导航栏下方 结果呢,审评时,BOSS为了和iOS统一,改成了底部菜单栏(标准结局),我只能呵呵呵呵呵呵呵 查了查资料发现实现底部菜单栏用的是Fr ...

  2. 一、基于Qt的图像矩形区域改色

    Qt环境下图像的打开和涂色 一.设计目标 能够在 Qt QtCreator 环境下打开常用图像格式文件,诸如 bmp.jpg.png 图像等,然后将他们转化为 Qt 中的 QImage 类,并进行矩形 ...

  3. jmeter之吞吐量、吞吐率、TPS、带宽及压力测试和负载测试及其区别

    一般使用单位时间内服务器处理的请求数来描述其并发处理能力.称之为吞吐率(Throughput),单位是 “req/s”.吞吐率特指Web服务器单位时间内处理的请求数另一种描述,吞吐率是,单位时间内网络 ...

  4. Localroast使用总结

    全手打原创,转载请标明出处: https://www.cnblogs.com/dreamsqin/p/10883248.html,多谢~=.= 什么是Localroast 一个根据 JSON 文件快速 ...

  5. linux 命令——41 ps(转)

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

  6. IOS 监听slider滑动

    // 监听slider滑动 - (IBAction)valueChnage:(UISlider *)sender; @property (weak, nonatomic) IBOutlet NJVie ...

  7. HTML 5.1 的 14 个新特性(含使用案例)

    HTML5 属于万维网联盟 (W3C), 这个组织为整个网络界提供了标准,如此形成的协议可在全世界通行.在 2016 年 11 月, W3C 对长期行使的 HTML 5 标准进行了更新,它是2年内的第 ...

  8. vue中v-show和v-if的异同

    一.官方解释: v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建. v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次 ...

  9. Java设计模式学习——简单工厂

    一. 定义与类型 定义:有工程对象决定创建出哪一种产品类的实例 类型:创建型,但不属于GOF23中设计模式 二. 适用场景 工厂类负责创建的对象比较少 客户端(应用层)只知道传入工厂类的参数,对于如何 ...

  10. windows下sorl安装

    1. JDK要求 Solr 4.10 要求JDK版本必须是1.7或更高. 2. 下载 下载地址: http://www.apache.org/dyn/closer.cgi/lucene/solr/ 下 ...