频道栏目
首页 > 资讯 > 其他 > 正文

本地yum源自建实现

17-10-18        来源:[db:作者]  
收藏   我要投稿

Centos系统中安装软件主要有yum安装和源码安装两种,源码安装的优势在于你可以根据你的需要自定义很多安装参数,但是他有个缺点就是每次都需要执行./configure && make && make install 以及当你需要卸载某个软件的时候你可能无法完全卸载干净,于是对于大多数情况来说,yum安装就成了最好的选择。centos官方的源一般是很慢的,因为是国外的,所以你可以选择用国内一些著名的比较官方的源,比如新浪,阿里,等等,当然你还可以选择自己搭建你的yum仓库,其实很简单,没有你想象的那么难。本文就简单介绍一下,如何搭建本地的yum仓库。

一,环境准备:

两台虚拟机,系统为Centos6.5.

192.168.1.22为yum仓库以下简称为A,需要安装apache或者nginx,或者其它的web服务。

192.168.1.23为实验机器以下简称为B。

二,建立仓库:(在A上执行)

这里采取HTTP的方式传输yum文件,因此我们建立一个总目录,同时建立一个虚拟主机。

最简单的方式是将rpm包全部放在yum目录下,但是实际生产环境中我们可能需要区分不同的操作系统版本,比如5.8和6.5,6.6,还有不同的位数32位或64位,因此我们在yum目录下建立这些子目录。最终效果类似于:

tree /www/yum

├── 5.8

│ ├── i386

│ └── x86_64

├── 6.5

│ ├── i386

│ └── x86_64

└── 6.6

├── i386

└── x86_64

接下来增加一个虚拟主机文件,我用的是nginx,配置如下:

server

{

listen 8001;

server_name fangqi.veone.cn

index index.html index.htm index.php;

root /www/yum;

access_log off;

}

别忘了reload。

如果你没有域名,你可以任意定义 比如yum.123.com,然后将这个域名和IP绑到B的/etc/hosts中。

这里我用的公网域名。实际生产环境中一般可以选择解析在内网DNS中。

接下来就可以放包了,将准备好的rpm包放到/www/yum/6.5/x86_64/路径下,

网上随便下一个包,我用的是lrzsz-0.12.20-1.x86_64.rpm

下一步是关键的一步,

cd www/yum/6.5/x86_64/

yum -y install createrepo

createrepo ./

这个命令可能会报错:

Traceback (most recent call last):

File “/usr/share/createrepo/genpkgmetadata.py”, line 28, in

import createrepo

ImportError: No module named createrepo

这是因为python版本被升级过的问题,进入genpkgmetadata.py,将首行的版本指定改为旧的路径即可,如:我原来是2.6的版本,后来升级成2.7版本,此时只需要将#!/usr/bin/python 改为#!/usr/bin/python2.6 ,然后再次执行此命令即可。

执行成功的输出:

Spawning worker 0 with 1 pkgs

Workers Finished

Gathering worker results

Saving Primary metadata

Saving file lists metadata

Saving other metadata

Generating sqlite DBs

Sqlite DBs complete

你会发现当前路径出现了一个repodata的文件夹,此时表示该yum仓库已经建立完毕了。

事实上我们之前定义的子文件夹,都是一个独立的yum仓库,因此都需要执行一下createrepo 这个命令,来生成yum仓库。

三,配置yum源:(在B上执行)

cd /etc/yum.repos.d

先备份原来的源,然后创建新的文件:

vi Centos-6.5.repo

写入

[CentOS-6.5]

name=CentOS-6.5

baseurl=http://fangqi.veone.cn:8001/6.5/x86_64

gpgcheck=0

最主要的baseurl不要写错。

然后更新本地yum缓存:

sudo yum clean all

sudo yum makecache

此时可以查询一下lrzsz应用:

yum list lrzsz

正常情况是可以看到结果的

如果能查询其他应用,例如gcc:

会提示no matching pachages to list

然后安装:

yum install -y lrzsz

测试lrz,lsz(rz,sz)命令。

到这一步基本就完成了,如果以后还要增加包,别忘了重复这三步:在源仓库执行createrepo,然后在服务器上执行yum clean all && yum makecache,看起来是有点繁琐,你可以尝试写脚本和灵活使用crontab来解决。

另外,每个不同的系统都需要有各自的包,所以每个子目录下都应该执行上述操作。

最后,如果你不想这么麻烦,那么干脆使用阿里的yum好了,虽然我觉得挺简单的。

简单暴力三步曲如下:

第一步:备份你的原镜像文件,以免出错后可以恢复。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

第二步:下载新的CentOS-Base.repo 到/etc/yum.repos.d/

CentOS 5

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

CentOS 6

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

第三步:运行yum makecache生成缓存

yum clean all

yum makecache

然后就尽情安装吧。

相关TAG标签
上一篇:cenos 防火墙设置配置
下一篇:ps彩色背景制作:ps怎么绘制出彩色渐变晶格化的几何背景图?
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站