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. Java宝典(二)

    --String s = "a" + "b" + "c" + "d"; 一共创建了多少个对象? --对于如下代码: St ...

  2. softlayer virtual machine vhd磁盘镜像导入shell脚本

    脚本

  3. yumdebug

  4. REVERSE关键字之REVERSE索引

    昨天说到REVERSE关键字可以指REVERSE函数和REVERSE索引,简单介绍了下REVERSE函数的含义,今天简单整理下REVERSE索引. REVERSE索引也是一种B树索引,但它物理上将按照 ...

  5. python高级编程之选择好名称:完2

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #分解代码 #小就是美,这也适用所有级别的代码,当一个函数,类或者一 ...

  6. 百度之星B题(组合数)

    Problem B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  7. ARM9嵌入式学习笔记(1)-Linux命令

    ARM9嵌入式学习笔记(1)-Linux命令 实验1-1-2 Linux常见命令使用 添加用户useradd smb; 设置账户密码passwd smb; 切换用户su - root 关机命令shut ...

  8. XMLHttpRequest发送请求

    *open(method,url,async) *send(string)//在使用get请求的时候,是没有主体的,所有的信息都会拼在url当中,所以使用send的时候括号里的string可以为空!如 ...

  9. asp.net在后台弹出confirm确认对话框并获取用户选择的值做出相应的操作

    在asp项目中,这种情况是经常出现的,前段时间通过查找资料以及自己尝试,找到一种解决方案,但是不知是否有更好的方案,以后发现再进行记录. 一.思路 在本次项目中,在一个函数中需要让用户判断,并根据用户 ...

  10. JS中prototype属性-JS原型模式

    /* *对象方法 *类方法 * 原型方法 */ function People(name) { this.name = name; this.say = function () { //对象方法 al ...