设为首页 收藏本站
查看: 810|回复: 0

[经验分享] Centos下自建本地yum仓库

[复制链接]

尚未签到

发表于 2018-4-24 09:21:00 | 显示全部楼层 |阅读模式
  

  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文件,因此我们建立一个总目录,同时建立一个虚拟主机。
  mkdir /www/yum
  mkdir -p 6.5/i386  6.5/x86_64  6.6/i386  6.6/x86_64  5.8/x86_64  5.8/i386
  最简单的方式是将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 <module>
  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
  然后就尽情安装吧。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-451193-1-1.html 上篇帖子: CEPH快速部署(Centos7+Jewel) 下篇帖子: CentOS 7 corosync高可用集群的实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表