1、摘要
    网上有很很多关于搭建源镜像的文章,但是对于一般人来讲,用不着镜像所有的deb包,只对我们能用到的感兴趣。另外,对于一些在Ubuntu的源中没有的软件,我们也可以放在我们自己的源里,这样需要的时候就用不着去网上重新搜了。
 
2、源服务器目录结构
 
dists
+------Lucid
|      +---------main
|      |         +------------binary-i386
|      |         |            +--------------xxx.deb
|      |         |            +--------------xxx.deb
|      |         |            +--------------……
|      |         |            +--------------Packages.gz
|      |         +------------其它体系结构
|      +---------restricted
|      |         +------------binary-i386
|      |         +------------其它体系结构
|      +---------universe
|      +---------multiverse
+------Maverick
+------Natty
 
dists目录下包含各种ubuntu发布版本名称:Lucid(10.04)、Maverick(10.10)等等;
版本名称(Lucid)目录下包含4种软件包类别:
    main : 官方支持的软件包
    restricted :受限(许可证)支持软件包
    universe :社区支持软件包,非官方支持软件包
    multiverse :收费软件包
包类别(main)目录下包含各种体系结构:binary-i386等等
体系结构(binary-i386)目录下包含软件包deb文件,并且第一个体系结构目录下都有一个Packages.gz文件。
 
3、source.list文件
deb http://us.archive.ubuntu.com/ubuntu/ hardy main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ hardy main restricted
以上两行为source.list文件的一部分,其含义如下:
    ubuntu中根据deb包中所包含的内容将其分为两种,一种是包含已编译的二进制可执行文件或预编译的deb包,另一种是包含软件源码的deb包。在source.list文件中用deb和deb-src区分这种包;
    http://us.archive.ubuntu.com/ubuntu/表示deb包所在的服务器目录;
    hardy表示ubuntu的发布版本号;
    main restricted表软件包的类别。
 
以X86主机为例,deb http://us.archive.ubuntu.com/ubuntu hardy main restricted表示包含服务器端如下两目录中的deb文件。
 
当执行apt-get update命令时,会读http://us.archive.ubuntu.com/ubuntu/dists/hardy/main/binary-i386/Packages.gz中以及其它目录中Packages.gz中的deb文件列表。
 
当执行apt-get install xxx时,会根据apt-get update得到的deb文件列表获取相应的deb文件。
 
由以上过程可知,搭建源服务器最关键的步骤是生成Packages.gz文件,由dpkg-scanpackages命令完成。举例,如需要给dists/hardy/main/binary-i386目录生成Packages.gz,命令如下:
cd dists/../     # 进入dists的父目录
dpkg-scanpackages dists/hardy/main/binary-i386 | gzip -9 > dists/hardy/main/binary-i386/Packages.gz
4、服务器搭建
安装完Apache后,将dists目录拷贝到Apache服务器根目录的ubuntu目录下,或者创建符号链接。
 
5、其它
查看一个dpkg-scanpackages命令属于哪个软件包:
apt-file search dpkg-scanpackages | grep bin
 
6、参考链接
 
 
 
转载自:http://blog.chinaunix.net/uid-24874146-id-2556553.html

[Ubuntu]在Ubuntu下搭建自己的源服务器的更多相关文章

  1. Ubuntu 14.04 下搭建SVN服务器 svn://

    Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下 ...

  2. Ubuntu 14.04 下搭建SVN服务器 (转载自 http://www.linuxidc.com/Linux/2015-01/111956.htm)-------------我所用到是红色字体

    http://www.linuxidc.com/Linux/2015-01/111956.htm Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get i ...

  3. Ubuntu 12.04下搭建Qt开发环境

    http://download.qt.io/official_releases/qt/ Ubuntu 环境下Gtk与Qt编译环境安装与配置(系统环境是Ubuntu 12.04) 1.配置基础开发环境G ...

  4. ubuntu 14.04下搭建esp32开发环境

    esp32是乐鑫出品的一款集成了wifi和蓝牙的集成模块,板上自带两个哈佛结构的Xtensa LX6 CPU双核处理器,本文主要讲解如何在linux下搭建其编译开发环境. 首先ctrl+alt+t打开 ...

  5. Ubuntu 14.10下搭建简易FTP服务器[vsftpd]

    Ubuntu下公认最易上手的ftp软件是vsftpd,既然标题都说了是“简易”的,那么必然是用最大众的..下面是正题 目标需求:搭建一个允许匿名/本地登录的FTP,并且支持上传/下载/修改功能,同时F ...

  6. Ubuntu 14.04下搭建Node.js的开发环境

    最近想找一个轻量级且支持快速开发的服务开发平台,选来选去选择了Node.js,当时有几种选择: Python + Django(用过Django,虽然开发快速,但是感觉性能并不太好). Ruby + ...

  7. ubuntu 12.04下搭建web服务器(MySQL+PHP+Apache) 教程

    最近,经理让我搭建一个服务器,我从网上找了一篇比较好的教程,按教程一步步执行感觉挺顺利,所以准备整理一下这个教程.尊重原版注明出处:http://news.2ky.cn/Linux/ubuntu-12 ...

  8. ubuntu 12.04LTS下搭建Andriod开发环境记录

    今天在Ubuntu 12.04 LTS 下安装了android开发环境. 1, 安装JDK 先去 Oracle下载Linux下的JDK压缩包,我下载的是jdk-7u4-linux-i586.tar.g ...

  9. Andorid开发学习---ubuntu 12.04下搭建超好用的安卓模拟器genymotion 安装卸载virtualbox 4.3

    什么是Genymotion? Genymotion是一套完整的工具,它提供了Android虚拟环境.它简直就是开发者.测试人员.推销者甚至是游戏玩家的福音. Genymotion支持Windows.L ...

随机推荐

  1. 发送cookie

  2. 2013第49周三IE9文档模式

    今天完善了原有模块的代码和注释,然后继续之前新模块的开发,并写了两边的service接口,除了因为邮件中有部分问题让我分心外,专心下来写代码的感觉真好,今天基本上没遇到多少让我新感悟的技术问题,就总结 ...

  3. 方案:手动升级WordPress系统

    对于WordPress系统及时进行更新维护是十分必须的操作,更新维护不仅可以更新系统服务功能,还能够完善安全系统.      如果你是虚拟主机的用户,可以使用FTP账户进行自动更新服务,但是如果你是V ...

  4. Poj3484-Showstopper(二分脑洞题)

    Description Data-mining huge data sets can be a painful and long lasting process if we are not aware ...

  5. 【CF 189A Cut Ribbon】dp

    题目链接:http://codeforces.com/problemset/problem/189/A 题意:一个长度为n的纸带,允许切割若干次,每次切下的长度只能是{a, b, c}之一.问最多能切 ...

  6. 学艺不精,又被shell的管道给坑了

    我用过bash shell,而且时间不短了.但我从来没学过shell,至少没有像C++这么认真去学.平时写些基本的脚本没问题,不懂也可以google.百度.可在2014最后一天,掉坑里了. 其实脚本也 ...

  7. Android日志系统Logcat源代码简要分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6606957 在前面两篇文章Android日志系 ...

  8. Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8570428 通过前面几篇文章的学习,我们知道了 ...

  9. C. Robot(BFS)

    C. Robot Time Limit: 3000ms Case Time Limit: 3000ms Memory Limit: 262144KB 64-bit integer IO format: ...

  10. System.AccessViolationException: 尝试读取或写入受保护的内存 解决办法

    netsh winsock reset   --运行此命令解决 错误描述: 之前装的vs2010后 再又安装了vs2013 ,运行之前的vs2010项目 就出现以上错误 错误应用程序名称: w3wp. ...