当前位置: 首页 > news >正文

Linux 搭建私有软件仓库

1. 创建yum仓库目录

mkdir -p /application/yum/centos6.6/x86_64/

cd /application/yum/centos6.6/x86_64/

rz  # 上传rpm包到此目录,此目录下面还可以包括文件夹

2. 安装createrepo软件

yum -y install createrepo

3. 初始化repodata索引文件

createrepo -pdo /application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/

4. 提供yum服务

# 可以用Apache或nginx提供web服务,但用Python的http模块更简单,适用于内网环境

cd /application/yum/centos6.6/x86_64/

python -m SimpleHTTPServer 80 &>/dev/null &

可以通过浏览器输入本机IP查看。

5. 添加新的rpm包

# 只下载软件不安装

yumdownloader pcre-devel openssl-devel

createrepo --update /application/yum/centos6.6/x86_64/

# 每加入一个rpm包就要更新一下。

平时yum安装软件时不删除安装包

# cat /etc/yum.conf

keepcache=1

# 安装包存储目录

cachedir=/var/cache/yum/$basearch/$releasever

# /var/cache/yum/x86_64/6/base/packages

6. 客户端配置

# cd /etc/yum.repos.d

[root@B yum.repos.d]# vi oldboy.repo

[oldboy]

name=Server

baseurl=http://服务端IP

enable=1

gpgcheck=0

[root@YUM ~]# yum --enablerepo=oldboy --disablerepo=base,extras,updates,epel list

# 指定使用oldboy库

上面是临时使用内网yum源,想永久并简单使用yum -y install lrzsz命令,就需要修改配置文件将默认的repo文件关闭。

[root@oldboy ~]# cd /etc/yum.repos.d/

[root@oldboy yum.repos.d]# vim CentOS-Base.repo

# 在每一个启动的源加上

# enabled=0   #改为1就启用,没有此参数也是启用。

[base]

…………

enabled=0

[updates]

…………

enabled=0

[extras]

…………

enabled=0

# 还有其他开启的仓库就使用这个办法关闭。

7. 镜像yum源

上面只是将自己制作的rpm包,放入yum源。但还有一种企业需求,说的更具体一点,平时学生上课yum安装软件都是从公网下载的,占用带宽,因此在学校里搭建一个内网yum服务器,但又考虑到学生回家也要使用yum安装软件,如果yum软件的数据库文件repodata不一样,就会有问题。因此我想到的解决方法就是直接使用公网yum源的repodata。

镜像同步公网yum源

上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。

http://mirrors.ustc.edu.cn/status/

CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/

epel源:rsync://mirrors.ustc.edu.cn/epel/

同步命令:

# 使用rsync同步yum源,为了节省带宽、磁盘和下载时间,我只同步了CentOS6的rpm包,这样所有的rpm包只占用了21G,全部同步需要300G左右。

# 同步base源,小技巧,我们安装系统的光盘镜像含有部分rpm包,大概3G,这些就不用重新下载。

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x86_64/

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/yum_data/centos/6/extras/x86_64/

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/yum_data/centos/6/updates/x86_64/

# epel源

/usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/

学生使用内网yum源方法

# 可以自建一个内网dns,如果没有,可使用hosts解析。

echo '192.168.0.200 mirrors.aliyun.com' >>/etc/hosts

结果展示

[root@KVM data]# du -sh yum_data

21G     yum_data

[root@KVM data]# tree -L 3 yum_data/

yum_data/

├── centos

│   ├── 6

│   │   ├── extras

│   │   ├── os

│   │   └── updates

│   └── RPM-GPG-KEY-CentOS-6

├── epel

│   └── 6

│       └── x86_64

相关文章:

  • Blockchain钱包全方位支持比特币现金(BCH)
  • 量子通信能否跨越“死亡之谷”?2017年市场化的量子通信产品可能产生
  • 奇异量子物理系统:它既在“绝对零度”之下,又在“绝对高温”之上
  • leetcode-594-Longest Harmonious Subsequence
  • 在龙芯小本上安装Debain8.10
  • 数据智能创建能源领域“智能助手”
  • 数据库基础常用知识
  • “阿里架构师”的JVM之GC详解
  • 干货云集 WOT2016峰会揭密大数据背后的技术难点
  • 收藏好这篇,别再只说“数据劫持”了
  • input框限制只能输入正整数、字母、小数、汉字
  • MySQL 技术总结
  • 浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
  • 手把手教你如何安装Pycharm——靠谱的Pycharm安装详细教程
  • 腾讯TBS加载网页无法自适应记录
  • python3.6+scrapy+mysql 爬虫实战
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【Linux系统编程】快速查找errno错误码信息
  • 08.Android之View事件问题
  • IP路由与转发
  • laravel 用artisan创建自己的模板
  • SpringBoot几种定时任务的实现方式
  • Vue2.x学习三:事件处理生命周期钩子
  • vuex 笔记整理
  • 阿里云购买磁盘后挂载
  • 大快搜索数据爬虫技术实例安装教学篇
  • 解析带emoji和链接的聊天系统消息
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 十年未变!安全,谁之责?(下)
  • 使用docker-compose进行多节点部署
  • 线上 python http server profile 实践
  • 学习笔记:对象,原型和继承(1)
  • 一个完整Java Web项目背后的密码
  • 移动端解决方案学习记录
  • 你对linux中grep命令知道多少?
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​插件化DPI在商用WIFI中的价值
  • #13 yum、编译安装与sed命令的使用
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (1)STL算法之遍历容器
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C#)获取字符编码的类
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (接口自动化)Python3操作MySQL数据库
  • (十一)c52学习之旅-动态数码管
  • (转)甲方乙方——赵民谈找工作
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET 5种线程安全集合
  • .NET Framework .NET Core与 .NET 的区别
  • .Net FrameWork总结