您尚未登录。

#1 2012-07-12 21:39:56

cuihao
所在地: USTC, Hefei
注册时间: 2011-08-19
帖子: 1,221
个人网站

emerge真慢

每次算依赖都要lag十几秒。

大概比较编译时间,这点儿就微不足道了?


Site: I-YU.ME   Twitter: @cuihaoleo   Org: LUG@USTC
AD:  ~欢迎参与志愿计算~

离线

#2 2012-07-13 12:06:01

YeLee
BOT
注册时间: 2011-08-19
帖子: 661

Re: emerge真慢

reiserfs原来可以这样快。 smile


小白路过,大家给点面子!

离线

#3 2012-07-13 12:51:13

sgsdxzy
Light
注册时间: 2012-05-17
帖子: 31

Re: emerge真慢

是用python和bash动态计算的……别的发行版都不用“计算”依赖,根据数据库里写着的依赖就行

离线

#4 2012-07-14 11:43:22

ffwalle
机器人
注册时间: 2011-12-03
帖子: 387

Re: emerge真慢

我在debian用apt也慢的要命,ubuntu就没这个问题,很奇怪啊


just for fun :-)

离线

#5 2012-07-14 15:41:20

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,384
个人网站

Re: emerge真慢

sgsdxzy 说:

是用python和bash动态计算的……别的发行版都不用“计算”依赖,根据数据库里写着的依赖就行

是怎么算的呢?

离线

#6 2012-08-24 09:41:12

tangmumao_wefls
Nakano Azusa
注册时间: 2012-08-16
帖子: 72
个人网站

Re: emerge真慢

百合仙子 说:
sgsdxzy 说:

是用python和bash动态计算的……别的发行版都不用“计算”依赖,根据数据库里写着的依赖就行

是怎么算的呢?

根slackpkg差不多吧,先枚举某个软件包依赖的库,再在源中查询包含这些库的软件包,不断循环直至所有依赖满足,然后枚举生成依赖关系;如果某依赖始终无法满足即为broken package

离线

#7 2012-08-24 16:21:49

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,384
个人网站

Re: emerge真慢

tangmumao_wefls 说:
百合仙子 说:
sgsdxzy 说:

是用python和bash动态计算的……别的发行版都不用“计算”依赖,根据数据库里写着的依赖就行

是怎么算的呢?

根slackpkg差不多吧,先枚举某个软件包依赖的库,再在源中查询包含这些库的软件包,不断循环直至所有依赖满足,然后枚举生成依赖关系;如果某依赖始终无法满足即为broken package

别的发行版都不用“计算”依赖,根据数据库里写着的依赖就行

感觉都一样的啊

离线

#8 2012-08-25 13:30:48

sgsdxzy
Light
注册时间: 2012-05-17
帖子: 31

Re: emerge真慢

百合仙子 说:
tangmumao_wefls 说:
百合仙子 说:
sgsdxzy 说:

是用python和bash动态计算的……别的发行版都不用“计算”依赖,根据数据库里写着的依赖就行

是怎么算的呢?

根slackpkg差不多吧,先枚举某个软件包依赖的库,再在源中查询包含这些库的软件包,不断循环直至所有依赖满足,然后枚举生成依赖关系;如果某依赖始终无法满足即为broken package

别的发行版都不用“计算”依赖,根据数据库里写着的依赖就行

感觉都一样的啊

我举个例子,比如cmake,可以依赖qt提供gui,也可以不依赖qt。
gentoo的cmake的ebuild里就写着qt?(>=x11-libs/qt-gui-4.8)
如果用户的USE Flag设置了qt,那么就依赖qt-gui-4.8以上版本。
所以portage第一步读取软件包默认USE并Mask开发者认为会出问题的USE,第二步读取全局USE Flag,第三步读取用户对特定软件包指定的USE,然后才能计算出cmake到底依赖不依赖qt。
debian的做法则是提供cmake-cli和cmake-qt两个包。但是如果还有gtk ui呢?tk呢?curses呢……开发者就要维护多个包。
(以上的软件包名称和版本是我捏造的)
arch则提供开发者认为最适合大部分人的。比如arch的pidgin依赖于gst让我很不高兴:我根本不用pidgin语音视频,为什么要装这个东西?
gentoo这样这就能对系统的每个软件包精确控制,但也要付出代价。

话说portage可以用pypy来运行,不知道是否会快一些。

离线

#9 2012-08-25 13:34:40

sgsdxzy
Light
注册时间: 2012-05-17
帖子: 31

Re: emerge真慢

tangmumao_wefls 说:
百合仙子 说:
sgsdxzy 说:

是用python和bash动态计算的……别的发行版都不用“计算”依赖,根据数据库里写着的依赖就行

是怎么算的呢?

根slackpkg差不多吧,先枚举某个软件包依赖的库,再在源中查询包含这些库的软件包,不断循环直至所有依赖满足,然后枚举生成依赖关系;如果某依赖始终无法满足即为broken package

不太一样,gentoo由于USE不同的关系,同一个软件包的内容可以不同,在一个软件包安装前甚至不知道它到底用到哪些库,提供哪些库!如果说gentoo缺什么顺手的工具,那就是pkgfile那样查找特定文件(未安装的)归属的工具了。

离线

#10 2012-08-25 16:05:48

cuihao
所在地: USTC, Hefei
注册时间: 2011-08-19
帖子: 1,221
个人网站

Re: emerge真慢

好像找到个在线的gentoo的类似pkgfile的工具,虽然有变数,但可以大概查一下文件归属。


Site: I-YU.ME   Twitter: @cuihaoleo   Org: LUG@USTC
AD:  ~欢迎参与志愿计算~

离线

#11 2012-08-25 16:49:25

sgsdxzy
Light
注册时间: 2012-05-17
帖子: 31

Re: emerge真慢

cuihao 说:

好像找到个在线的gentoo的类似pkgfile的工具,虽然有变数,但可以大概查一下文件归属。

是有几个,但是确实难以做到“精确”

离线

#12 2012-08-26 01:17:05

lainme
论坛版主
注册时间: 2011-08-19
帖子: 131

Re: emerge真慢

debian对于这种情况并不需要维护多个版本,而是在打包的时候进行拆分。也就是在debian目录下做设置,源码还是一个,debian目录也只有一个。用户看起来是很多包,但实际上维护者只是在维护一个包。要不要依赖qt的问题,也可以用recommends/suggests解决。

离线

页脚