[问题]请问apt-get的原理是什么?

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

[问题]请问apt-get的原理是什么?

#1

帖子 ponder » 2008-07-18 12:52

最近一直苦恼于ubuntu的软件安装,主要问题在于我的本本不能上网啊

有网络,用apt-get什么都可以轻松安装,可是我不明白apt-get背后原理是什么啊?

如果由自己来设计这样一个命令,不知道该怎么实现呢?
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#2

帖子 yaoms » 2008-07-18 12:58

呵呵,比较复杂吧,自己设计什么,有现成的用就行了阿
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
头像
kofshower
帖子: 1343
注册时间: 2007-03-13 11:23
联系:

#3

帖子 kofshower » 2008-07-18 13:00

关键不在apt-get本身,其实就是一个软件下载 安装脚本,这个稍微高级些有签名,变更记录,版本控制,冲突比较这四个特性
变更记录在:changelog.Debian.gz
依赖记录在:*.defs
签名证书是:MD5sum: 419fa3e6f9a0743dc2dd51eee0d90e55
SHA1: 2d86bd09b0ae83d68002983c8bcb2fc712584554
SHA256: ba9c899be742e7f6cef6fa9657fba70afc86e382643a5387035b332af328fddf
之类。这个用的是deb自带的咯。


现在这个个东西还不是很强大
关键是现在的冲突比对做得很差,而且~~
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
头像
greco
帖子: 2487
注册时间: 2007-04-06 10:24
来自: ~/Shanghai

#4

帖子 greco » 2008-07-18 13:04

apt-get的更新过程:
执行apt-get update
程序分析/etc/apt/sources.list
自动连网寻找list中对应的Packages/Sources/Release列表文件,如果有更新则下载之,存入/var/lib/apt/lists/目录

然后 apt-get install 相应的包
下载并安装
http://silenceisdefeat.com/~greco

代码: 全选

''.join([chr(ord(c)-2) for c in 'O{"G/ockn"ku<"itgeq0ujkBiockn0eqo'])
echo -n "Z3JlY28uc2hpQGdtYWlsLmNvbQ==" | base64 -d
猪哥靓
帖子: 20
注册时间: 2008-05-26 16:56

#5

帖子 猪哥靓 » 2008-07-18 13:22

我想apt-get应该是从某某地方或者某某东西吧。。
vipeason
帖子: 178
注册时间: 2007-12-12 1:56
联系:

#6

帖子 vipeason » 2008-07-18 14:23

其實,就是向源發送請求。

apt-get install xxxx 即請求從源下載并安裝xxx
apt-get update 即請求將本地更新至源的最新可用版本
头像
xc1427
帖子: 276
注册时间: 2008-10-11 4:11
来自: 瑞金无线电学校
联系:

Re: [问题]请问apt-get的原理是什么?

#7

帖子 xc1427 » 2008-11-05 18:59

感谢4楼,我还在想能不能把不同源的地址分批次粘贴到source.list里,然后分批次更新。

比如:
先在source.list里单独粘贴cn99的那些源,保存,在终端执行apt-get update。
然后在source.list里删除cn99的源,粘贴Archive.ubuntu.com的源,保存,在终端再次执行apt-get update。

现在看来是不可行的。这样的结果只能是丢失了cn99的更新信息。

因为在 /var/lib/apt/lists/ 看不到cn99源的信息了。
You never know if you don't try
visitorone
帖子: 14
注册时间: 2009-04-10 10:29

Re: [问题]请问apt-get的原理是什么?

#8

帖子 visitorone » 2009-05-15 9:09

我们自己编译软件的时候有很多麻烦的依赖关系,apt-get是怎么解决的?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: [问题]请问apt-get的原理是什么?

#9

帖子 eexpress » 2009-05-15 9:11

复杂嘛。就一个网址,带几个目录地址,在里面的列表文件包含deb包名等说明。--print-uris 就可以显示真实地址。
☎ cat aai
#!/bin/bash

cd /var/cache/apt/archives/
for i in `apt-get -y --print-uris install $*|grep -o "http[^']*\.deb"|tr '\n' ' '`; do sudo axel -n 10 $i; done
sudo aptitude install $*
● 鸣学
ywj@ubuntu
帖子: 4
注册时间: 2012-06-06 15:58

Re: [问题]请问apt-get的原理是什么?

#10

帖子 ywj@ubuntu » 2012-07-27 15:41

:em20 :em20
回复