Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐: 强烈推荐:Ylmf OS 3.0 正式版发布附迅雷高 XP系统下硬盘安装Fedora 14图文教程
搜索:
您的位置: Linux安全网 > Linux入门 > » 正文

gentoo中USE小记

来源: 未知 分享至:

非原创,只是汇总一下网上比较杂乱的资料,希望对刚接触的朋友有帮助

USE是Gentoo的特色

gentoo下的软件安装由源代码编译,所以可以自由选择哪些功能需要哪别不需要,很简单的一个例子就是比如你使用的是gnome,那么在安装某个软件时就无需浪费精力去支持kde.

关于USE,官方文档的解释如下

--------------------------------------------------------------------------------------------------

 USE标记

内容:

  • USE标记是什么?
  • 使用USE标记
  • 包特有的USE标记

2.a. USE标记是什么?

USE标记的指导思想

你在安装gentoo(或者是其他发行版,甚至于其他特定操作系统)的时候,你要依据你工作的环境做出选择。服务器跟工作站的组织结构不同,游戏机跟3D工作站也会不一样。

不单只是选择你想要安装的包时如此,选择某一个包需要的特性时同样如此。如果你不需要OpenGL,为什么还要颇费周折的安装OpenGL并在其他包中加 入对OpenGL的支持?如果你不想用KDE,而且软件包没有KDE也能完美运行,为什么还要在编译这些包的时候加入KDE支持?

为了帮用户判断什么需要安装或激活,什么不需要;我们希望用户能用简单的方式设定他们自己的环境。这能促使用户判断他真正需要的东西,并让Portage(我们的包管理系统)做出有用的决定的过程变得简单。

USE标记的设定

我们来具体看看USE标记。每一个标记都是代表对某特定概念的支持和依赖关系信息的关键字。如果你设定了某个USE标记,Portage会明白你选择了支持这个关键字(所代表的概念)。当然这同时也改变了这个包的依赖关系信息。

让我们看一个示例:关键字kde。如果你的USE变量里面没有这个关键字,所有具有可选KDE支持的包在编译时都不会编译KDE支持。所有具有可选KDE依赖关系的包在安装时都不会(做为一个依赖关系而)安装KDE库。如果你设定了kde关键字,这些包在安装时都编译KDE支持,而且KDE库也会(作为一个依赖关系而)被安装。

通过正确设定关键字,你会得到一个根据你的需要而定制的系统。

有哪些USE标记?

USE标记分两类:全局局部USE标记。

  • 全局USE标记适用范围是整个系统,可以被许多包使用。这就是大多数人眼里的USE标记。
  • 局部USE标记只被单个包用来做该包特有的决定。

当前可用的全局USE标记列表可以在网上或者本机的/usr/portage/profiles/use.desc文件里找到。

当前可用的局部USE标记列表可以在本机的/usr/portage/profiles/use.local.desc 文件里找到。

2.b. 使用USE标记

声明永久USE标记

希望您已经意识到了USE标记的重要性,现在我们就让你了解怎样声明USE标记。

就像前面提到的,所有USE标记都声明在USE变量里面。为了让用户能方便地查找和选择USE标记,我们提供了一份默认的USE设定。这些设定是我们觉得Gentoo用户通常都要用到的USE标记的集合。这个默认设置在make.defaults文件──你的profile的一部分──里声明。

你的系统使用的profile是符号链接/etc/make.profile所指向的目录。每个profile叠加于某个更大的profile之上,最终的结果是这些profile的并集。初始profile是base profile(/usr/portage/profiles/base)。

让我们看看2004.3 profile的默认设定:

代码 2.1: 2004.3 profile的累积make.defaults USE标记

(这个例子是base,default-linux,default-linux/x86和 default-linux/x86/2004.3的设定的并集)
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
     foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
     mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
     quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"

就像你看到的那样,这个变量已经包括了非常多的关键字。要通过修改make.defaults文件里的USE变量来满足你的需要:在升级Portage的时候,这个文件将会被破坏(被覆盖)。

要改变这个默认设置,你需要在USE变量里添加或移去关键字。这是通过在/etc/make.conf里定义USE全局变量来实现的。在这个变量里,添加你需要的额外的USE标记,或者移去你不需要的USE标记。后者可通过在标记前面加个负号(“-”)前缀来实现。

例如,要移除对KDE和QT的支持,并添加对ldap的支持,可以在/etc/make.conf 里声明USE如下:

代码 2.2: /etc/make.conf里关于USE设置的一个例子

USE="-kde -qt3 -qt4 ldap"

为单个包声明USE标记

如果你想要为一个(或者几个)程序而不是系统范围内声明一个USE标记,你需要创建/etc/portage目录(如果没有这个目录的话),然后编辑/etc/portage/package.use文件。通常这是一个文件,不过它也可以是一个目录;请看man portage以获得更多信息。下面的例子假设package.use是一个文件。

比如说,如果你不想全局的启用berkdb支持,但是你想把它应用到mysql,你可以这样:

代码 2.3: /etc/portage/package.use示例

dev-db/mysql berkdb

你当然也可以直接为某一个程序禁用USE标记。比如说,如果你不想要php/' target='_blank'>PHPjava支持:

代码 2.4: /etc/portage/package.use第二个示例

dev-php/php -java

声明临时USE标记

有时,你只想暂时改变一个USE设置。你可以仅仅把USE变量声明成一个环境变量,而不必两次修改/etc/make.conf。但是要记住,当你重新emerge或者升级这个程序的时候(不管是单独地还是作为系统升级的一部分),你的修改都会丢失!

下面的例子我们将在安装seamonkey的时候暂时性地从USE设置中移去java标记。

代码 2.5: 将USE作为一个环境变量使用

# USE="-java" emerge seamonkey

优先级

当然,我们需要一个明确的先后次序来决定何处的USE设定优先级较高。你肯定不希望在定义了USE="-java"之后,因为某个有更高优先级的设定而导致java仍然被使用。USE设定的优先级顺序是(由低到高):

  1. make.defaults里面的USE默认设定
  2. 用户在/etc/make.conf里面的USE设定
  3. 用户在/etc/portage/package.use里面的USE设定
  4. 作为环境变量的USE设定

运行emerge --info可以看到Portage识别的最终的USE设定。它会列出Portage使用的所有相关变量(包括USE变量)。

代码 2.6: 运行emerge --info

# emerge --info

 

 --------------------------------------------------------------------------------------------------

 

为了更有效的使用USE

我是先在/etc/make.conf下设定总的use

再去/etc/portage/packge.use中针对个别软件设置use

我的设置如下

ceyes@gentoo:~% cat /etc/make.conf                             11-11-04 20:39
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O2 -march=native -pipe"
CXXFLAGS="${CFLAGS}"


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史