ubuntu软件更新过程研究(可以自己搭建ubuntu更新服务器)

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
gwxzzlyzq
帖子: 35
注册时间: 2007-12-23 19:14

ubuntu软件更新过程研究(可以自己搭建ubuntu更新服务器)

#1

帖子 gwxzzlyzq » 2008-01-08 19:57

3. 安装Apache2
进入桌面系统后,Alt+F2打开运行窗口,运行gnome-terminal,运行控制台程序
输入apt-get install Apache2,输入管理员密码,开始安装,因为ubuntu集成的很好,
安装完成后,apache2服务会自己启动。可以打开火狐浏览器,输入localhost检验服务是否启动。
4. 拷贝文件
将ubuntu-alternate-i386的安装光盘放在cdrom里面,系统自动挂载到/media/cdrom0.
mkdir /var/www/ubuntu/ 在http根目录下建立ubuntu目录
cp –r /media/cdrom0/dists /var/www/ubuntu/ 将光盘dists目录拷贝到ubuntu目录
cp –r /media/cdrom0/pool /var/www/ubuntu/ 将光盘pool目录拷贝到ubuntu目录
安装后的www目录是
/
Ubuntu
Dists
Gutsy
Release
Release.gpg
Main
Restricted

Pool
5. 设置更新源
Sudo nano /etc/apt/sources.list
注释所有已经存在的源用#号
加入一行deb http://localhost/ubuntu/ gutsy main restrited
6. 在控制台里输入
Sudo apt-get update //更新软件目录
Sudo apt-get install openssh-server //安装程序openssh-server, 虽然不知道这个程序是干什么的
测试成功!
7. 结果分析
虽然可以安装openssh-server这个软件,说明已经具备架设ubuntu软件源的资格,但是只从一张cdrom里面拷贝的软件还远远不够。当然可以从各大更新源上下载,比如ftp.sjtu.edu.cn.
8. 补充:apt-get update更新原理(也是架设网站结构的依据)
重写一遍更新源代码deb http://localhost/ubuntu/ gutsy main restricted
当执行apt –get update的时候
1. find http://localhost/ubuntu/+dists+/+gutsy+ ... ists是自动加上的,而 gutsy是ubuntu7.10的代号,Release.gpg就想一个证件一样,说明这个更新源网站是
2. 然后获取release这个文件,这个文件记录了几个不同部分软件类的连接目录以及md5 hash。Main是主要的软件,其他还有restricted. universe.multiverse,一共4个类

MD5Sum:
df0702dd87760d04a9cda1801f3bcf56 660 restricted/debian-installer/binary-i386/Packages.gz
73b20986664134beda557717656b1d19 1701 restricted/debian-installer/binary-i386/Packages
e76dd81c22fbc474b720fd5b52d4a69b 4201 restricted/binary-i386/Packages.gz
a1bf31d4e3d96ad5bb17951fb53c4943 99 restricted/binary-i386/Release
ce1f89e3eb2d30fa761600b56930f084 13494 restricted/binary-i386/Packages
ad471ae33de74f9de6271c71caa10949 40011 main/debian-installer/binary-i386/Packages.gz
97773badddbc1f3acc31d8e176cbe662 152022 main/debian-installer/binary-i386/Packages
aacba1b3b645b4c93bfecb72a8f8d1f3 395434 main/binary-i386/Packages.gz
ca32e0933e0f858c20e09752cf10d710 93 main/binary-i386/Release
b803cce2f4c127788515bb6087a07241 1544241 main/binary-i386/Packages


3. .上面从release文件获得的左边是mdtsum用于文件完整性校验而邮编则是连接到文件列表的压缩了的文件,打开后会发现全是文件的详细信息
Package: libaa1 文件名
Priority: optional
Section: libs
Installed-Size: 168
Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Joey Hess <joeyh@debian.org>
Architecture: i386
Source: aalib
Version: 1.4p5-32
Replaces: aalib1
Provides: aalib1
Depends: libc6 (>= 2.5-0ubuntu1), libgpmg1 (>= 1.19.6-1), libncurses5 (>= 5.4-5), libslang2 (>= 2.0.6-3), libx11-6
Filename: pool/main/a/aalib/libaa1_1.4p5-32_i386.deb
Size: 57348
MD5sum: dacfc0cd800354d16ebc658faac68f9a
SHA1: 3d2d7385ad0b24facc1e841d88448734a86135c3
SHA256: a891a44329d24b69e2d83f31da383d48894456c9f7f8a418e211b1033244daa6
Description: ascii art library
AAlib is a portable ascii art graphics library. Internally, it works like
a graphics display, but the output is rendered into gorgeous platform
independent ascii graphics.
Bugs: mailto:ubuntu-users@lists.ubuntu.com
Origin: Ubuntu
Task: ubuntu-desktop


当我们输入apt-get install libaa1的时候,它就会自己自动的从http://localhost/ubuntu/+filename
下载并且执行安装文件,而且如果还有文件依存关系的话,它还会自动安装,这也是apt安装软件的方便安全的地方。
上次由 gwxzzlyzq 在 2008-01-08 21:20,总共编辑 1 次。
gwxzzlyzq
帖子: 35
注册时间: 2007-12-23 19:14

#2

帖子 gwxzzlyzq » 2008-01-08 20:10

简单一点就是
定义相对路径为http://localhost/ubuntu/

1.dists/gutsy/Release.gpg
2.dists/gutsy/Release
3.dists/gutsy/main/binary-i386/package.gz
以上为获取软件信息,下面的pool里面才是软件基地这里只拿main做解释,还有3个restricted universe multiverse
4.pool/main/
回复