[ << ] [ < ] [ 手册主页 ] [ > ] [ >> ]


1. USE参数

内容列表:

1.a. USE参数是什么?

USE参数背后的故事

       你安装Gentoo(或者其他的发行版,甚至或者是其他的操作系统)时,你根据你所工作的环境来作出选择。服务器的安装就同工作站的安装不一样,游戏机的安装也同3D工作站的不一样。

       这不仅对于你要选择安装什么软件如此,也对安装某一软件需要什么特性也如此。如果你不需要OpenGL,为什么就需要安装OpenGL和将OpenGL支持编译进你的许多的软件包?如果你不使用KDE,如果软件不需要,为什么要编译进KDE的支持?

       为帮助用户决定什么需要安装/激活,什么不需要,我们需要用户可以用一种简单的方法来设定他/她的环境。这使得用户可以决定他们真正需要什么,简便Portage(我们的管理系统)的过程,方便作出有用的选择。

一个USE参数的定义

       输入USE参数。这样的一个参数是概括某一概念的支持和依赖性信息的关键词。如果你定义一个特定的USE参数,Portage将会知道你要添加对于选定关键词的支持。当然,这也改变了一个软件包的依赖性信息。

       让我们来看一看一个特定的例子:关键词kde。如果在你的USE变量中没有这个关键词,所有的有对KDE可选支持的软件包将在编译时带上KDE支持。所有带有可选KDE支持的软件包都不会安装KDE的库(以依赖性方式)。如果你定义了关键词kde,那么这些软件包会编译进KDE的支持,并且KDE的库文件也会以依赖性方式安装。

       通过准确的定义这些关键词,你将会得到根据你的需要度身定做的系统。

USE参数用在哪里?

       目前有两种USE参数:全局的局部的USE参数。

       目前已有的全局的USE参数可以在在线或者在本地的/usr/portage/profiles/use.desc中找到。一个简短的摘要如下(非常不完全):

代码 1: 已有的USE参数的简短片段

gtk     - 添加对x11-libs/gtk+的支持(The GIMP Tookit的简称)
gtk2    - 使用gtk+-2.0.0而不是gtk+-1.2,以防一个软件包同时需要两者的情况
gtkhtml - 添加对gnome-extra/gtkhtml的支持
guile   - 添加对dev-util/guile的支持(Scheme的解释器)
icc     - 如果软件包支持,使用Intel的C++编译器
icc-pgo - 使用icc时,启用PGO数据生成或使用
imap    - 添加对IMAP的支持

1.b. 使用USE参数

声明永久的USE参数

       我们希望你能意识到USE参数的重要性,我们将告诉你怎样声明USE参数。

       就同前面所提起的,所有的USE参数是在USE变量中声明的。为方便用户搜索和选择USE参数,我们已经提供了一个默认的USE设置。这个设置是我们认为Gentoo用户通常会使用到的USE参数的集合。这个默认的设置是在/etc/make.profile/make.defaults文件中声明的。让我们来看看这个默认设置:

代码 2: /etc/make.profile/make.defaults中用于x86系统的USE变量

USE="x86 oss apm arts avi berkdb crypt cups encode foomaticdb gdbm gif gpm
     gtk gtk2 imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses
     nls oggvorbis opengl pam pdflib png python qt quicktime readline sdl
     slang spell ssl svga tcpd truetype X xml2 xmms xv zlib"

       就同你看到的,这个变量已经包含了很多的关键词。千万不要根据你的需要改变/etc/make.profile/make.defaultsUSE变量:当你更新Portage时将会覆盖这个修改。

       要改变默认的设置,你需要对USE变量添加或者删减关键词。这个是在/etc/make.conf文件中全局定义USE变量完成的。在这个变量中,你添加你需要的USE参数,或者删减你不需要的USE参数。后者通过在关键词的前面加上一个负号("-")的前缀即可。

       比如说,删掉对KDE和QT的支持,并添加对ldap的支持,下面的USE变量可以在/etc/make.conf中定义:

代码 3: /etc/make.conf中一个USE变量设置的例子

USE="-kde -qt ldap"

声明临时的USE参数

       有时候你需要设定只使用一次的USE设置。你可以只以环境变量的形式声明这个USE变量,而不需要编辑/etc/make.conf两次(修改和恢复)。

       作为一个例子,我们将在mozilla的安装过程中暂时从USE设置中去掉java。

注释: 有关emerge命令将会在Portage和软件进行更彻底的讨论。

代码 4: 以环境变量的形式使用USE

# USE="-java" emerge mozilla

继承USE参数

       一些软件不仅仅服从USE参数,也提供USE参数。当你安装这样的一个软件包时,它所提供的USE参数将会添加到你的USE设定中。查看/etc/make.profile/use.defaults看看提供USE参数的软件包的列表:

代码 5: /etc/make.profile/use.defaults的一个片段

gnome           gnome-base/gnome
gtk             x11-libs/gtk+
qt              x11-libs/qt
kde             kde-base/kdebase
motif           x11-libs/openmotif

优先权

       当然这里有一个优先权的问题,那个设置有对USE设置有优先权。你不需要去声明USE="-java"仅仅是看到java通过某种方式声明了。USE设置的优先权如下(在前的优先权较低):

  1. /etc/make.profile/make.defaults声明的默认USE设置
  2. 如果/etc/make.profile/use.defaults中的一个软件包安装后继承的USE设置
  3. 用户在/etc/make.conf定义的USE设置
  4. 用户以环境变量形式定义的USE设置

       运行emerge info来查看最后用于Portage的USE设置。这会列出所有和Portage相关连的变量(包含USE变量)。

代码 6: 运行emerge info

# emerge info

调整你的整个系统到新的USE参数

       如果你已改变你的USE参数,并想更新你的整个系统都使用这个新的USE设置,你可以尝试用下面的步骤完成。注意,这些步骤将会花很长的是件来完成,并且这个工作将会调整Portage以使得动作更快和自动完成。

       首先,使用新的USE参数重新编译你的整个系统:

代码 7: 重新编译你的整个系统

# emerge --emptytree world

       然后,运行Portage的depclean来去掉旧系统已有但被新的USE参数废弃的可选依赖性。

警告: 运行emerge depclean是一个危险的操作,处理时要小心。反复检查废弃的软件包的列表,以确认它不会删掉你需要的软件包。在下面的例子中,我们添加-p参数,切换到只列出这些软件包,而没有删掉它们。

代码 8: 删掉废弃的软件包

# emerge -p depclean

       当depclean完成后,你的系统就是在使用新的USE参数设置。

1.c. 软件包所特定的USE参数

查看所有的USE参数

       在下一章Portage和软件中,我们将会解释到怎样管理你安装的软件和怎样使用emerge。但是,我们将会通过向你展示如何查看一个软件包使用到的USE参数来给个emerge的入门。

       让我们以mozilla举个例子:它将会遵守哪些USE参数呢?我们使用emerge并带上--pretend(假装要做)和--verbose(获得更多信息)选项找到:

代码 9: 查看要用到的USE参数

# emerge --pretend --verbose mozilla
These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] net-www/mozilla-1.5-r1 +java +crypt -ipv6 -gtk2 +ssl +ldap 
+gnome -debug +mozcalendar -mozaccess -mozxmlterm -moznoirc -moznomail
-moznocompose -moznoxft 

       emerge并不是这个工作的唯一工具。实际上,我们有一个致力于提供软件包信息的名叫etcat(在gentookit软件包里)的工具。首先,安装gentookit

代码 10: 安装gentoolkit

# emerge --usepkg gentoolkit

       然后运行etcat,并带上uses参数,来查看一个特定软件包的USE参数。比如说,对于gnumeric软件包:

代码 11: 使用etcat查看USE参数

# etcat uses gnumeric
[ Colour Code : set unset ]
[ Legend      : (U) Col 1 - Current USE flags        ]
[             : (I) Col 2 - Installed With USE flags ]

 U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ]
 - - libgda  : Adds GNU Data Access (CORBA wrapper) support for gnumeric
 - - gnomedb : unknown
 + + python  : Adds support/bindings for the Python language
 + + bonobo  : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)

[ << ] [ < ] [ 手册主页 ] [ > ] [ >> ]


本文档内容按照Creative Commons - Attribution / Share Alike协议发布。 Copyright 2004 Gentoo.LinuxSir.ORG 如果有什么问题、建议、意见、评论,请Email联系管理员