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. Poj1741-Tree(树分治)

    题意:找树上有多少对距离小于K的对数解析:树分治模板题,见注释 代码 #include<cstdio> #include<cstring> #include<string ...

  2. php-timeit估计php函数的执行时间

    首先,前段时间利用手头的日本VPS搭建了一个google代理,访问速度还行,分享给大家: 谷歌 谷歌:guge119.com 谷歌学术:scholar.guge119.com 有时候我们在PHP性能优 ...

  3. apache 配置网站目录,虚拟目录,新端口

    1 配置网站目录,以ubuntu为例 1)打开apache的默认配置文件夹:cd /etc/apache2/sites-available 2)打开配置文件,本机为sudo vi  000-defau ...

  4. Linux优化,history增加详细历史记录

    主要功能: 1, 可以记录哪个ip和时间(精确到秒)以及哪个用户,作了哪些命令 2,最大日志记录增加到4096条   把下面的代码直接粘贴到/etc/profile后面就可以了 #history mo ...

  5. Maven中pom.xml常用元素说明

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  6. 2016-XCTF Final-Richman

    抽时间将XCTF Final中Richman这个题总结了下.题目及ida idb所在的链接在:http://files.cnblogs.com/files/wangaohui/richman-blog ...

  7. 使用INTERVAL YEAR TO MONTH类型

    Oracle Database 9i数据库引入了一种新特性,可以用来存储时间间隔.时间间隔的例子包括: ● 1年零3个月 ● 25个月 ● -3天5小时16分 ● 1天7小时 ● -56小时 注意: ...

  8. jquery模仿css3延迟效果

    HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta ...

  9. iOS-OC-基础-NSDictionary常用方法

    /*=============================NSDictionary(不可变字典)的使用=========================*/ //————————————————— ...

  10. 1.iOS第一个简单APP

    大纲: iOS系统发展 UI和OC 简单的APP程序 程序的生命周期   1.iOS的系统发展 从1983年OC程序开始发展到2015年,30多年的时间,但这依然不是一个十分完善的语言,可以说现在都没 ...