[求助] 对于"Depends: a, b | c"的疑问

编译打包和其他
回复
Lawster
帖子: 15
注册时间: 2012-06-30 8:59

[求助] 对于"Depends: a, b | c"的疑问

#1

帖子 Lawster » 2012-07-17 11:52

Depends: a, b | c

假设现在a,b,c三个软件包都未安装,那么a肯定会被装上,
问题是apt对b和c是如何选择的?

急,谢谢!
Lawster
帖子: 15
注册时间: 2012-06-30 8:59

Re: [求助] 对于"Depends: a, b | c"的疑问

#2

帖子 Lawster » 2012-07-17 14:18

其实是我在集成一个小型系统的时候碰到的:
假设已经给定了一些软件包(用来满足一些特定功能),
然后我要加入一些包,使得最后的这个软件包集合是封闭的,也就是不依赖于外部包
但要保证这个包集合的size最小。。

各位高手大侠有什么好的建议不?
头像
maplebeats
帖子: 378
注册时间: 2011-02-16 1:17

Re: [求助] 对于"Depends: a, b | c"的疑问

#3

帖子 maplebeats » 2012-07-17 14:27

deb包么,没有深入过。。。deb太蛋疼了
My blog : OOXX
头像
maplebeats
帖子: 378
注册时间: 2011-02-16 1:17

Re: [求助] 对于"Depends: a, b | c"的疑问

#4

帖子 maplebeats » 2012-07-17 14:29

deb包么,没有深入过。。。deb太蛋疼了
My blog : OOXX
Lawster
帖子: 15
注册时间: 2012-06-30 8:59

Re: [求助] 对于"Depends: a, b | c"的疑问

#5

帖子 Lawster » 2012-07-17 14:42

maplebeats 写了:deb包么,没有深入过。。。deb太蛋疼了
对,deb包
我现在也蛋疼了。。

rpm的话,貌似spec里面没有这种或的逻辑关系
头像
careone
帖子: 839
注册时间: 2007-12-17 21:41

Re: [求助] 对于"Depends: a, b | c"的疑问

#6

帖子 careone » 2012-07-17 18:08

Depends: a, b | c

假设现在a,b,c三个软件包都未安装,那么a肯定会被装上,
问题是apt对b和c是如何选择的?
含义: a 包是必须要安装或准备安装;
b, c 包只要有任意一个已安装了就行;

如果是3选1,会写为
Depends: a|b|c

看你的意思似乎需要在自己的包中加入依赖的库文件。可以参考下 “虚拟包”的概念,
大约是 provide 字头,自己查下吧
Provide: xxx
魁拔不死,天下不宁。
魁拔既死,天下不平。
--------------
Careone <emacslocale^126.com>
https://sourceforge.net/projects/emacslocale/files/
Lawster
帖子: 15
注册时间: 2012-06-30 8:59

Re: [求助] 对于"Depends: a, b | c"的疑问

#7

帖子 Lawster » 2012-07-17 20:46

careone 写了:
Depends: a, b | c

假设现在a,b,c三个软件包都未安装,那么a肯定会被装上,
问题是apt对b和c是如何选择的?
含义: a 包是必须要安装或准备安装;
b, c 包只要有任意一个已安装了就行;

如果是3选1,会写为
Depends: a|b|c

看你的意思似乎需要在自己的包中加入依赖的库文件。可以参考下 “虚拟包”的概念,
大约是 provide 字头,自己查下吧
Provide: xxx
谢谢你的回答。

1.
我想要的是,最后集成的系统最小。
比方说“Depends: a | b | c ”三选一的时候,我该如何选择才能使最后的系统最小。
因为如果选了a,补全依赖之后最后的系统安装包可能会有1G,
而如果选了b,补全依赖之后最后的系统安装包只有200MB,但需求的功能一个不少。
这样,我就应该选择b而不是a。

2.
我查了下,网上针对“虚拟包”这个概念的系统一点的资料很少,所以我还是不太明白。
Package: X
Depends: a | b
这个我应该怎么理解?
ab都包含了X功能,即安装两者之一即可。
由于开发者在开发软件包之前都会去搜索软件包列表,
查看其中是否已经有能够替代自己将要开发的软件包,有则没必要开发
所以,而ab两者的关系只可能为:
i) a Provides b
ii) a Conflicts with b
这样理解对吗?
rediscover
帖子: 3173
注册时间: 2010-01-13 23:26

Re: [求助] 对于"Depends: a, b | c"的疑问

#8

帖子 rediscover » 2012-08-19 10:59

假设软件包名字是 foo
Depends: a, b | c

apt-get install foo 默认会装 a 和 b,如果 b 不存在就装 c。

如果你希望要 c 而不是 b,那就直接 apt-get install foo c
Here I am.
Ubuntu 桌面培训 - 全中文官方文档,含汉化截图,提供PDF
Lawster
帖子: 15
注册时间: 2012-06-30 8:59

Re: [求助] 对于"Depends: a, b | c"的疑问

#9

帖子 Lawster » 2012-08-22 19:06

rediscover 写了:假设软件包名字是 foo
Depends: a, b | c

apt-get install foo 默认会装 a 和 b,如果 b 不存在就装 c。

如果你希望要 c 而不是 b,那就直接 apt-get install foo c
非常感谢!
回复