免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3149 | 回复: 9
打印 上一主题 下一主题

我想问问用什么数据结构表示软件的依赖关系比较好呢?比如FreeBSD的Ports Tree。 [复制链接]

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-16 10:38 |只看该作者 |倒序浏览
就是说怎么表达Ports Tree的依赖关系呢?

A依赖B,

B依赖C,

那么A就应该依赖C啊,

Ports Tree里面有那么多的Port,怎么管理呢?

如果删除软件的时候会不会导致依赖缺失呢?

是如何保证每一个Ports的依赖关系的完整呢?如果对没一个Port都单独的计算一次那计算成本应该是挺高的,有没有一种好的数据结构能即保证依赖关系又能很容易的添加删除软件(不但是对于系统,而且也针对整个Ports Tree)。

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
2 [报告]
发表于 2010-09-16 10:42 |只看该作者
这个yum rpm都实现了吧。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
3 [报告]
发表于 2010-09-16 10:48 |只看该作者
应该是都实现了,想了解一下,另外我总对Ports Tree有点不放心,虽然它很少出什么问题,

但是有一次出问题了,我记得是一个和locale有关的包需要升级,好像是一个下层的库,关系到所有的多语言化的程序,

好像就是因为依赖关系没有被正确的识别,结果有一个包编译的顺序除了问题。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
4 [报告]
发表于 2010-09-16 10:50 |只看该作者
目前的管理机制是不是有一些潜在的问题呢?或者是改进的余地呢?

论坛徽章:
0
5 [报告]
发表于 2010-09-16 13:50 |只看该作者
[       ] Install A: failed due to unresolved dependency on B (1st try).
[       ] >Install B: failed due to unresolved dependency on C (1st try).
[       ] >>Install C: succeeded.
[C      ] >Install B: succeeded (2nd try).
[B, C   ] Install A: succeeded (2nd try).
[A, B, C] Dependency: A->B->C


这就是一棵树嘛。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
6 [报告]
发表于 2010-09-16 18:40 |只看该作者
我觉得用图来表示更加合理。

论坛徽章:
0
7 [报告]
发表于 2010-09-16 19:45 |只看该作者
树当然是一种图;区别是不加限制的图允许指向自身,也允许循环,这正是依赖关系中忌讳的。
试想:A 依赖 B,而 B 依赖 C,C 又依赖 A,在三个包都没有安装的时候,只要安装任何一个包都将导致无法退出的循环。包管理器在这个时候应当报告错误,并终止事务。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
8 [报告]
发表于 2010-09-16 23:22 |只看该作者
我的好好学学数据结构,这方面啥都不懂啊。

论坛徽章:
0
9 [报告]
发表于 2010-09-16 23:32 |只看该作者
dag

评分

参与人数 1可用积分 +10 收起 理由
langue + 10 我很赞同

查看全部评分

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
10 [报告]
发表于 2010-09-17 00:12 |只看该作者
一棵树呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP