LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: danfo

我对USE的看法

[复制链接]
发表于 2006-8-25 22:16:12 | 显示全部楼层
我是这样理解的:
use 与依赖关系有关,但是两回事。比如软件foo有两个use A和B,如-A又-B,emerge foo的话,foo也是能够运行的,但不支持AB两种特性。但如果有一个软件bar,需要依赖于foo的 A特性,则foo需要重新编译,+A。这时依赖关系与use才扯上关系。
回复 支持 反对

使用道具 举报

发表于 2006-8-26 01:09:32 | 显示全部楼层
哈哈,我也明白了,原来USE是决定是否加入某个外围功能的,

但我有另外一个问题,这样的话,USE解决的是某个软件的次要功能特性的问题,但对于一个软件集来说,USE是不是就无能为力?

打个比方,我想emerge openoffice.org(暂且不管这个命令对不对),假设这时候会装上draw、impress、writer、calc等等软件,注意,这几个软件间是平等的关系,他们之间没有谁是核心功能,谁是外围功能,互相间独立并且各自有自己的核心功能和外围功能,偏偏这个时候,我只想装writer和draw而不想装两外两个,USE是不是不能达到这样的效果?

如果USE无能为力,那么emerge有别的参数能实现这样的要求吗?
回复 支持 反对

使用道具 举报

发表于 2006-8-26 01:22:05 | 显示全部楼层
对于openoffice来说没有办法,那是一个整体
回复 支持 反对

使用道具 举报

发表于 2006-8-26 01:32:52 | 显示全部楼层
Post by zhllg
对于openoffice来说没有办法,那是一个整体

那有没有其他的例子可以?比如 emerge gnome (呵呵,这个有点吓人),————其实,我只是想知道 emerge 有没有提供这样的机制?

从这点上看,windows 下的方式也并不是都不好,至少有些软件提供自定义安装的机制就很好,比如office(也可算是一个整体吧?)就可以选择只装word、excel而不装access和powerpoint等等。

emerge 作为一个可配置性极高的包管理系统,是否应该考虑提供这样的机制?
回复 支持 反对

使用道具 举报

发表于 2006-8-26 01:36:47 | 显示全部楼层
openoffice是一个整体,是软件本身的属性,portage无能为力
回复 支持 反对

使用道具 举报

发表于 2006-8-26 02:01:05 | 显示全部楼层
Post by zhllg
openoffice是一个整体,是软件本身的属性,portage无能为力

或许这样的机制不是 portage 该考虑的事情,而是软件作者该考虑的事情吧,呵呵,^_^
回复 支持 反对

使用道具 举报

发表于 2006-8-26 05:21:57 | 显示全部楼层
我的理解,USE 是抽象的安装选项,具体的作用,要看 ebuild 里面怎么写的。

在ebuild里面,你可以设定,如果用了某个USE,则必须以来某个包,也可以设定,某个USE只是加上一个 .configure 的选项,或者是一个编译的选项。

USE 的作用完全由 ebuild 的作者决定。我可以写一个xterm的ebuild,让X这个标志,实际上安装openoffice。当然,这样的ebuild不会被放到官方的portage树里面。

所以 USE 是很灵活的,也没有固定的意义,只是一些标志而已。
回复 支持 反对

使用道具 举报

发表于 2006-8-26 05:38:36 | 显示全部楼层
Post by ljx980645
那有没有其他的例子可以?比如 emerge gnome (呵呵,这个有点吓人),————其实,我只是想知道 emerge 有没有提供这样的机制?

从这点上看,windows 下的方式也并不是都不好,至少有些软件提供自定义安装的机制就很好,比如office(也可算是一个整体吧?)就可以选择只装word、excel而不装access和powerpoint等等。

emerge 作为一个可配置性极高的包管理系统,是否应该考虑提供这样的机制?

对于gnome,是有这样的机制的,gentoo里的gnome是一个portage set,emerge  gnome 就代表emerge 一组包。我们可以认为这是gnome 的全集。另外还有一个gnome-light,它也代表一组包,是gnome的一个子集。完全可以自己做个ebuild,加入定制的一组包。当然这个看起来不如USE那么方便。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-26 09:13:25 | 显示全部楼层
其实也是有办法的,就是象xorg那样,自7.0开始,xorg-x11就不再是一个大包了,而是一个模块化的一组软件集合,可以通过配置videocard,inputdevice来决定要安装哪些功能。

如果安装openoffice的时候只需要安装write,模块化是一个不错的出路。

现在的openoffice实际上是一个软件集,就象kde一样,只不过形式上有细微区别。对于这些软件集,如果不能通过配置变量(如use)来控制它的功能多寡的话,那就只有拆分了,象xorg-x11那样模块化。当然,如果有配置变量来控制,那就可以不用拆分了

Post by ljx980645
哈哈,我也明白了,原来USE是决定是否加入某个外围功能的,

但我有另外一个问题,这样的话,USE解决的是某个软件的次要功能特性的问题,但对于一个软件集来说,USE是不是就无能为力?

打个比方,我想emerge openoffice.org(暂且不管这个命令对不对),假设这时候会装上draw、impress、writer、calc等等软件,注意,这几个软件间是平等的关系,他们之间没有谁是核心功能,谁是外围功能,互相间独立并且各自有自己的核心功能和外围功能,偏偏这个时候,我只想装writer和draw而不想装两外两个,USE是不是不能达到这样的效果?

如果USE无能为力,那么emerge有别的参数能实现这样的要求吗?
回复 支持 反对

使用道具 举报

发表于 2006-8-26 10:08:05 | 显示全部楼层
gorf 和 danfo 的回帖都说到点子上了,我想提出来讨论的正是一个软件集合的问题......如果引入模块化的机制,尤其对于比较大型的或者是和硬件打交道的软件(如Xserver),无疑是一个创举啊,将gentoo这种可定制性深入到软件的层次了,而不是在整个操作系统层面(原来xorg7已经引入这种机制了)。^_^

另向 gorf 兄请教两个问题:
1、怎么知道我现在emerge的这个软件支持这种机制?
2、如果确定支持了,用什么参数或者说什么方法实现这种自定制安装?(就拿gnome为例吧——比如我想装的是一个比 gnome-light 大一些却又比整个 gnome 小很多的桌面环境——又不想一个一个软件分开来装)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表