一.需求分析

最近公司软件Team 有个需求是这样的:能不能在局域网搭建一个Ubuntu 镜像服务器,


这样作的好处是可以节省Ubuntu某些常用工具的安装时间。

二.部署过程

2.1 测试环境


目前在公司内有一台能连接到外网的Ubuntu机器, IP : 192.168.8.173 ,


Ubuntu版本为Ubuntu 9.04 i686。

2.2 搭建步骤


为了创建Ubuntu mirror 服务器,最少需要60G硬盘空间,Ubuntu每个版本都有32 bit


和64 bit两个版本,有两组deb包。当然可以创建Ubuntu一个版本的32 bit 和64 bit 的


镜像服务器,也可以创建全部版本的镜像。

这里使用sohu 公司的mirror地址作为本地Ubuntu Source 服务器,使用sohu的原因是:

1. sohu的Ubuntu Source 服务器速度相当快


2. sohu 的ubuntu Source 服务器每天会和Ubuntu官方服务器同步一次,这样可以保


证我们使用的是最新的软件包。

修改方式如下:

点击(此处)折叠或打开

  1. root@ms ~: cat /etc/apt/sources.list
  2. deb http://mirrors.sohu.com/ubuntu/ jaunty main restricted universe multiverse
  3. deb http://mirrors.sohu.com/ubuntu/ jaunty-security main restricted universe multiverse
  4. deb http://mirrors.sohu.com/ubuntu/ jaunty-updates main restricted universe multiverse
  5. deb http://mirrors.sohu.com/ubuntu/ jaunty-proposed main restricted universe multiverse
  6. deb http://mirrors.sohu.com/ubuntu/ jaunty-backports main restricted universe multiverse
  7. deb-src http://mirrors.sohu.com/ubuntu/ jaunty main restricted universe multiverse
  8. deb-src http://mirrors.sohu.com/ubuntu/ jaunty-security main restricted universe multiverse
  9. deb-src http://mirrors.sohu.com/ubuntu/ jaunty-updates main restricted universe multiverse
  10. deb-src http://mirrors.sohu.com/ubuntu/ jaunty-proposed main restricted universe multiverse
  11. deb-src http://mirrors.sohu.com/ubuntu/ jaunty-backports main restricted universe multiverse

安装下面工具:


root@ms ~: apt-get install apt-mirror


root@ms ~: apt-get install apache2

下面就构建Ubuntu 9.04 32bit 的本地Ubuntu mirror 服务器为例子,来说明如何配置:


修改配置文件:

点击(此处)折叠或打开

  1. root@ms ~: cat /etc/apt/mirror.list
  2. ############# config ##################
  3. #
  4. # set base_path /var/spool/apt-mirror
  5. #
  6. # set mirror_path $base_path/mirror
  7. # set skel_path $base_path/skel
  8. # set var_path $base_path/var
  9. # set cleanscript $var_path/clean.sh
  10. # set defaultarch <running host architecture>
  11. # set postmirror_script $var_path/postmirror.sh
  12. set run_postmirror 0
  13. set nthreads 20
  14. set _tilde 0
  15. #
  16. ############# end config ##############
  17. deb-i386 http://mirrors.sohu.com/ubuntu jaunty main restricted universe multiverse
  18. deb-i386 http://mirrors.sohu.com/ubuntu jaunty-security main restricted universe multiverse
  19. deb-i386 http://mirrors.sohu.com/ubuntu jaunty-updates main restricted universe multiverse
  20. #deb http://mirrors.sohu.comubuntu jaunty-proposed main restricted universe multiverse
  21. #deb http://mirrors.sohu.comubuntu jaunty-backports main restricted universe multiverse
  22. deb-src http://mirrors.sohu.com/ubuntu jaunty main restricted universe multiverse
  23. deb-src http://mirrors.sohu.com/ubuntu jaunty-security main restricted universe multiverse
  24. deb-src http://mirrors.sohu.com/ubuntu jaunty-updates main restricted universe multiverse
  25. #deb-src http://mirrors.sohu.com/ubuntu jaunty-proposed main restricted universe multiverse
  26. #deb-src http://mirrors.sohu.com/ubuntu jaunty-backports main restricted universe multiverse
  27. #clean http://archive.ubuntu.com/ubuntu

备注:

点击(此处)折叠或打开

  1. deb-i386 http:// 表示下载32 bit 版本的deb 软件
  2. deb http:// 表示下载64bit 版本的deb 软件
  3. jaunty 表示Ubuntu 9.04的代号

设置完成后,输入下面命令:

root@ms ~: apt-mirror

这时系统会启动20个线程运行wget 到 http://mirrors.sohu.com/Ubuntu 下面下载相应的


deb包。时间比较的长,该命令执行完成后,/var/spool/apt-mirror目录下就有了所有需


要的deb包和相应的配置文件。

由于我是从sohu下载的,所以实际的文件在 :


/var/spool/apt-mirror/mirror/mirrors.sohu.com/ubuntu 目录下。

这样,本地就有了所有Ubuntu Source 服务器所需要的文件,然后开启相应的服务:


这里使用apache2作为Web服务器,默认根目录在/var/www/,所以可以在该目录下做


个链接,如下所示:

点击(此处)折叠或打开

  1. root@ms ~: cd /var/www
  2. root@ms ~: ln /var/spool/apt-mirror/mirror/mirrors.sohu.com/ubuntu -s

开启web服务:


root@ms ~: apache2ctl start

打开浏览器输入下面地址即可看到和sohu mirror一样的页面:


http://192.168.8.173/ubuntu

同时也可以使用crontab进行每天的更新,修改配置文件:

点击(此处)折叠或打开

  1. root@ms ~: cat /etc/cron.d/apt-mirror
  2. #
  3. # Regular cron jobs for the apt-mirror package
  4. #
  5. #0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log

把命令前面的“#”去掉即可,这样系统会自动使用apt-mirror去和sohu服务器更新。


最后,我们所要做得就是在客户端的机器上修改更新源配置文件,将地址改成本地


mirror服务器的地址即可,如下所示:

点击(此处)折叠或打开

  1. root@ms ~: cat /etc/apt/sources.list
  2. deb http://192.168.8.173/ubuntu/ jaunty main restricted universe multiverse
  3. deb http://192.168.8.173/ubuntu/ jaunty-security main restricted universe multiverse
  4. deb http://192.168.8.173/ubuntu/ jaunty-updates main restricted universe multiverse
  5. deb http://192.168.8.173/ubuntu/ jaunty-proposed main restricted universe multiverse
  6. deb http://192.168.8.173/ubuntu/ jaunty-backports main restricted universe multiverse
  7. deb-src http://192.168.8.173/ubuntu/ jaunty main restricted universe multiverse
  8. deb-src http://192.168.8.173/ubuntu/ jaunty-security main restricted universe multiverse
  9. deb-src http://192.168.8.173/ubuntu/ jaunty-updates main restricted universe multiverse
  10. deb-src http://192.168.8.173/ubuntu/ jaunty-proposed main restricted universe multiverse
  11. deb-src http://192.168.8.173/ubuntu/ jaunty-backports main restricted universe multiverse

执行“apt-get update”来重建本地索引,这样以后就会使用本地的Mirror 服务器进行更新。

搭建本地Ubuntu 镜像服务器的更多相关文章

  1. shell 脚本实战笔记(5)--搭建资源的镜像服务器

    背景: 由于访问国外站点资源, 有时特别慢. 偶尔一次下载, 肯定还能忍受, 对于多次使用或者小团队内部使用, 搭建一个镜像站点, 无疑是个明智的决定. 这边以搭建CDH5的yum源镜像, 作为例子, ...

  2. iOS开发之--搭建本地的SVN服务器

    近期入职的新公司,后台没有分配svn账号,需要在本地搭建一个服务器,方便和代码,看了看网上的教程,一直有这样那样的问题, 其中最主要的问题还是路径拼接的问题,最后终于解决了,特在此分享下,如果大家有更 ...

  3. 搭建本地yum镜像源

    Blog:博客园 个人 目录 概述 语法说明 参数说明 部署 配置阿里云源 同步源 建仓 Nginx配置 配置定时计划 yum配置 概述 由于内网有大量机器不能访问公网,安装软件比较费劲,那么,如何让 ...

  4. 创建本地Ubuntu镜像

    参考文档 http://www.howtoforge.com/local_debian_ubuntu_mirror 安装服务 : sudo apt-get install apt-mirror apa ...

  5. 利用docker搭建本地私有镜像仓库

    主机名 角色 sht-sgmhadoopcm-01 Docker Repository sht-sgmhadoopnn-01 Docker Client 1. 在两台节点分别安装docker http ...

  6. 使用ownCloud搭建你的个人云服务(ubuntu 14.04 server)(ownCloud对文件不切片,Seafile对文件切片),owncloud没有存储的功能 只能同步 本地删除了服务器也会删除

    ownCloud是什么 ownCloud是一个自由且开源的个人云存储解决方案(类似百度网盘或者Dropbox),包括两个部分:服务器和客户端. ownCloud在客户端可通过网页界面,或者安装专用的客 ...

  7. Ubuntu: 搭建tftp,nfs服务器

    Ubuntu12.04搭建tftp&nfs服务器 http://blog.163.com/thinki_cao/blog/static/83944875201411610467306/ 硬件环 ...

  8. [阿里云部署] Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器

    部署地址:123.56.7.181 Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器 这个标题就比之前的"ECS服务器配置Web环境的全过程及参考资料&qu ...

  9. Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)

    Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具) 最近因为项目关系,收朋友之托,想制作秀场网站,但是因为之前一直没有涉及到这 ...

随机推荐

  1. Div+Css(一)必备知识

    我只积累我不知道的 参考链接 http://www.kwstu.com/ArticleView/divcss_201442291125960 http://www.kwstu.com/ArticleV ...

  2. Nginx 配置指令的执行顺序(二)

    我们前面已经知道,当 set 指令用在 location 配置块中时,都是在当前请求的 rewrite 阶段运行的.事实上,在此上下文中,ngx_rewrite 模块中的几乎全部指令,都运行在 rew ...

  3. Opencv2.4.4作图像旋转和缩放

    关于下面两个主要函数的讲解: cv::getRotationMatrix2D(center, angle, scale); cv::warpAffine(image, rotateImg, rotat ...

  4. poj 3233 Matrix Power Series

    A为一个n*n的矩阵,求A+A^2+A^3+...+A^n Sk = A + A2 + A3 + - + Ak       =(1+Ak/2)*(A + A2 + A3 + - + Ak/2  )+{ ...

  5. Objective-C 基本语法:实例变量与成员变量的区别.l........实例方法和类方法区别

    http://leopard168.blog.163.com/blog/static/16847184420138153296930/ http://blog.csdn.net/thdxs/artic ...

  6. iOS Xcode工程目录的 folder 和 group的区别(蓝色和黄色文件夹的区别)

    1. 来自 http://blog.csdn.net/fanjunxi1990/article/details/9352917 XCode工程目录里面,有时你会发现2个不同颜色的文件夹,一种是蓝色的, ...

  7. [转]Java汉字按照拼音排序

    最近项目上使用到汉字排序的问题,网上搜索了一下后普遍使用下面的方法比较. @Test public void test_sort_pinyin() { Collator cmp = Collator. ...

  8. Linux主机规划与磁盘分区

    各硬件设备在Linux中的文件名 在Linux系统当中,几乎所有的硬件设备文件都在/dev这个目录内. 各硬件设备在Linux中的文件名: 设备 设备在Linux中的文件名 IDE接口的硬盘 /dev ...

  9. Android学习总结——Broadcast

    一.利用BroadcastReceiever监听短信 AndroidManifest.xml <?xml version="1.0" encoding="utf-8 ...

  10. KMP精讲

    KMP算法 —— next 数组的应用 --- 前缀中最小循环节,最大重复次数 在大神的基础上添加了一点自己的理解: 从图片中可以看出next数组中存的值就是最近一次最近一次循环节的下标... 在KM ...