昨天给布置个新的需求,做一个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. javascript数组属性及方法

    数组元素的添加 1. arrayt.splice(index,howmany,item1,.....,itemX) 向/从数组中添加/删除项目,然后返回被删除的项目 2. array.unshift( ...

  2. 【MFC】MFCMenuButton 的用法

    背景:因为对话框界面上的空间有限,为了节省空间,我决定采用一个MFCMenuButton用来实现同一类按钮事件.本来我打算设置两个按钮:“单个删除文件”和“清空所有文件”两个按钮,但是空间太小,而且这 ...

  3. app后台管理系统框架metronic的学习笔记

    先来看效果: 给出当前页面的代码: <!DOCTYPE html> <!--[if IE 8]> <html lang="zh" class=&quo ...

  4. ffmpeg 资源[转]

    http://blog.csdn.net/leixiaohua1020/article/details/15811977 一. FFmpeg主站 1. FFmpeg的源码发布,资料 网址:   htt ...

  5. 2019年5~6月训练记录(更新ing)

    前言 \(ZJOI\)正式结束了. 但期中考试只考了年级\(216\),退役既视感... 于是就被抓回去补文化课了. 下半个学期可能要以文化课为主了吧! 但周三.周日应该还是会正常参加训练的,但其他时 ...

  6. 第八章 熟练dom的几个常用方法

    显示“缩略词语” <abbr> 标签指示简称或缩写,比如 <abbr title="World Wide Web Consortium">W3C</a ...

  7. python_17_数据运算

    #//取整除,返回商的整数部分 print(9//2) print(10/3.3) print(10//3.0) #<>与!=都为不等于 #and 与 例(a and b) #or 或 # ...

  8. 初尝微信小程序1-特点

    微信小程序特点:1.不需要下载安装即可使用 2.用户用完即走,不用关心是否安装太多应用 3.应用将无处不在,随时可用 适合开发的小程序类型:1.简单的用完即走的应用 2.低频的应用 3.性能要求不高的 ...

  9. Ubuntu 下使用虚拟串口进行开发测试

    1. python 工具 #coding = utf-8 import pty import os import select def mkpty(): master1, slave = pty.op ...

  10. mysql五:索引原理与慢查询优化

    一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句 ...