欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Gentoo全局USE标记简介

程序员文章站 2022-03-16 19:51:22
USE标志是Gentoo组织编译选项的一种方式,是Gentoo区别于其它发行版的特征之一,在用portage来安装一个新的软件的时候,您可以专门为它指定USE标志... 12-06-07...

非原创,只是汇总一下网上比较杂乱的资料,希望对刚接触的朋友有帮助
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的java支持:

代码 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设定的优先级顺序是(由低到高):
make.defaults里面的use默认设定 用户在/etc/make.conf里面的use设定 用户在/etc/portage/package.use里面的use设定 作为环境变量的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}"

# warning: changing your chost is not something that should be done lightly.
# please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
chost="i686-pc-linux-gnu"
linguas="en"
gentoo_mirrors="http://mirrors.163.com/gentoo/"
sync="rsync://mirrors.163.com/gentoo-portage"
makeopts="-j3"
portdir_overlay=/usr/local/portage
use=" -* alsa apm crypt dbus encode exif ftp gnome grub gtk gtk2 gtkhtml icu iconv imagemagick imlib imlib2 jpeg lame mad mozilla mp3 mp4 mpeg mplayer ncurses nptl oggvorbis opengl pdf pam png psyco python rdesktop readline samba sasl sdl spell tcpd truetype unicode usb x xml xml2 xscreensaver zlib "
ceyes@gentoo:~% cat /etc/portage/package.use 11-11-04 21:05
pp-admin/conky tvim-syntax ruetype audacious -ipv6
net-www/mozilla -java moznocompose moznoirc moznomail
media-gfx/gimp mng svg
app-editors/gvim perl
media-sound/xmms -opengl
media-video/mplayer divx4linux xvid xv theora
net-im/gaim -crypt
=sys-devel/gcc-3.3* java gcj
app-shells/zsh maildir pcre
x11-wm/fvwm stroke
media-video/avidemux xvid
media-libs/libsamplerate sndfile
www-client/chromium -gnome vi zh_cn
app-office/dia -gnome -python
关于每个use的意义,可以单独去查询
为了方便,参考了一论坛网友的总结

3dfx
添加xorg下的3dfx显卡支持 (参见: voodoo3)
3dnow
添加amd处理器的3dnow!多媒体指令集支持
x
添加x11支持
xaw3d
添加xaw3d(x athena widgets in 3d)支持。xaw3d是mit athena widget set for x windows的增强版本,可以在几乎不修改源代码的情况下为应用程序添加3d视觉效果。
a52
添加用于dvd的atsc a/52解码支持
aac
添加mpeg-4 aac音频支持
aalib
添加media-libs/aalib支持 (ascii-graphics库) (用于将图形转换成ascii字符的”ascii艺术”)
accessibility
添加辅助功能支持(方便残疾人使用计算机的技术,比如’at-spi’库)
acl
添加文件访问控制列表支持[参考文档:文件访问控制列表]
acpi
添加acpi(高级配置与电源接口)支持[参考文档:高级电源管理常见问题解答]
adabas
添加adabas数据库引擎支持
adns
添加adns dns客户端库(一个用于c/c++的异步dns解析库)支持[主页:http://www.gnu.org/software/adns/]
afs
添加openafs支持 (一个分布式文件系统)[参考文档:openafs帮助聚集分布式数据]
aim
添加aim即时通信协议支持 (aol.com的即时消息工具)
alsa
添加media-libs/alsa-lib支持 (高级linux音效架构)[参考文档:alsa研究笔记]
altivec
添加g4/g5/ppc970处理器优化支持
ao
在音频回放(sound playback)时使用libao音频库(一个跨平台音频库,对于在多个平台上输出音频很有用)
apache2
当一个程序包同时支持apache1和apache2时,选择支持apache2
apm
添加apm电源管理支持[参考文档:高级电源管理常见问题解答]
arts
添加arts支持 (给kde提供音频支持,主要是给kde库提供必要的库文件)
atm
添加atm(异步传输模式)协议支持
audiofile
添加libaudiofile(音频文件库)支持
avahi
添加avahi/zeroconf支持。avahi是利用mdns协议的,实现本地网内服务发现的软件,如寻找局域网内的在线用户、打印机等。
aqua
添加aqua/carbon gui支持。aqua是苹果mac os x的图形界面,carbon是其编程接口。
bash-completion
添加bash-completiton支持 (改进了bash的命令补全功能)
bcmath
添加libbcmath支持 (bcmath是一个任意精度数学函数库)
berkdb
添加sys-libs/db支持 (mysql的berkeley db表类型支持)
bidi
添加双向语言支持 (支持由右而左的语言,如:阿拉伯语和希伯来语)
bindist
启用或禁止可选的预编译包(grp)支持 (比如由于发行许可导致的)
birdstep
添加birdstep数据库服务器支持
blas
添加virtual/blas库支持 (blas是著名的基本线性代数子程序包,被许多实际应用问题和几乎所有有关矩阵计算的软件所采用,可应用于科学和工程设计的矩阵计算问题,也可应用于生产基本线性代数计算的高水平程序库,是数学应用软件的基本核心库。)
bluetooth
添加蓝牙支持
bootstrap
!!仅供内部使用,请不要设置此参数!!在原始系统的引导过程中使用[make stage2]
boundschecking
添加haj ten brugge边界检查补丁,这将禁用固有的pie+ssp补丁 (边界检查用于防止缓冲区溢出漏洞攻击)
branding
启用gentoo特定的标识,比如添加此标记后可以获得一个漂亮的”gentoo牌”gnome启动画面,取代默认的gnome启动画面。
bsf
添加apache bsf(bean scripting framework) (dev-java/bsf)支持。bsf支持在java应用程序内调用脚步语言(script),并且支持脚步语言直接访问java对象和方法。它提供了完整的api实现通过java访问脚本语言的引擎。
build
!!仅供内部使用,请不要设置此参数!! 用于建立引导过程前半部分的镜像构建[make stage1]
bzip2
使用bzlib压缩库
cairo
添加cairo图形库支持。cairo是一个支持多种输出设备的跨平台2d图形库。[参考文档:用cairo实现跨平台图形]
calendar
添加日历支持(不是用mcal!)
canna
添加canna支持 (canna是一个将日文假名转换到日文汉字的转换引擎)
caps
使用linux capabilities库(posix.1e capabilities)来控制权限[参考文档:linux安全模块简介;利用capability特征加强linux系统安全]
cdb
添加qmail作者编写的cdb数据库引擎支持
cdda
添加compact disk digital audio(数字式激光唱盘,简称cd-da)支持。cd-da又称”audio cd”,直径为12cm,容量为74分钟,以恒线速度(clv)播放,也就是用于激光唱机和diskman的音乐cd。
cddb
添加cddb支持。cddb即internet compact disc database,是一组分布于互联网的各个镜像上的大型cd特征数据库,不过它现在已被商业团体安加了一些版权限制,因此存在后来的freedb.org和musiabrainz一类开放替代方案。
cdinstall
直接从cd复制文件而不要求用户来操作,主要用于游戏。
cdparanoia
添加cdparanoia支持。cdparanoia可以直接从cd光盘上抓取音轨,并转换成其它格式的声音文件。另外它还可以能够读取已经被破坏的光盘内容。libparanoia 是kde和gnome默认的抓音轨库。
cdr
添加cd刻录硬件支持
cgi
添加cgi脚本支持
chasen
添加chasen支持 (一个日语分词标注系统)
cjk
添加多字节字符语言支持 (中日韩)
clamav
添加clam防病毒软件支持(通常是额外添加一个插件)
coreaudio
在mac os x系统上编译coreaudio驱动程序
cracklib
使用cracklib来进行密码强度检查
crypt
添加加密支持 (使用基于私钥的mcrypt或基于公钥的gpg)
cscope
添加cscope接口支持 (比如用于vim和emacs)(cscope具有开发支持功能,极大地方便了对源代码库的浏览和查询,vim中内置的ctags支持提供了类似的功能,但cscope的功能更为强大)
css
允许抓取加密dvd上的数据
ctype
启用ctype函数支持 (ansi c标准库中的字符类型头文件)
cups
添加cups(通用unix打印系统)支持
curl
添加客户端url传输库支持 (curl是一个可以使用url语法传输文件的库,支持http/https/ftp/ftps/dict/telnet/ldap/file和gopher等协议)
curlwrappers
在传输流中使用curl包装
custom-cflags
使用自定义的cflags编译(unsupported)
custom-cxxflags
使用自定义的cxxflags编译(unsupported)
cvs
启用cvs(concurrent versions system)集成
cxx
编译c++支持(绑定,额外的库,代码生成, …)
db2
添加ibm db2数据库支持
dbase
添加dbase文件格式(dbase数据库文件.dbf的文件格式)支持
dbm
添加dbm数据库支持 (dbm是柏克莱大学发展的文件/文本型数据库)
dbmaker
添加dbmaker数据库支持
dbus
为需要dbus的程序添加支持 (gpsd,gnomemeeting …)(dbus是一个消息总线系统,用于在应用程序中发送消息,多用于桌面环境)[主页:http://www.freedesktop.org/software/dbus]
dbx
添加数据库抽象层支持 (目的是提供给用户一种访问数据库的通用方式)
debug
让configure和makefiles使用调试模式编译
dedicated
添加专属游戏服务器支持(一些程序包并不同时支持服务端和客户端)
dga
添加xorg下的dga(直接图形存取)支持
directfb
添加directfb支持。[参考文档:directfb的学习]
djvu
添加djvu支持。一个类似于pdf的文档格式,特别适合于扫描文档。
doc
添加额外的文档资料(api/java文档等)
dri
支持dri硬件3d加速。直接渲染架构(dri)是一个允许在安全和高效的方式下直接访问显卡硬件的架构。它包括对x服务器的改动,以及对几个客户端库和内核的改动。dri的第一个重要应用是创建快速的opengl实现。
dts
启用dts声音解码器支持。
dv
添加一种被许多便携式摄象机使用的编解码器支持
dvb
添加dvb支持 (dvb: 数字视频广播)
dvd
添加dvd支持
dvdr
添加dvd刻录硬件支持 (比如:xcdroast)
eds
添加evolution-data-server支持。我们可以简单地把evolution看作是linux下的outlook,一个易用的电子邮件客户端。但它的定位是linux/unix下的个人/工作组信息管理整套解决方案,包括电子邮件、日历、会议计划、联系人管理与任务列表等。
emacs
添加gnu emacs支持
emboss
添加emboss支持 (emboss:欧洲分子生物学开放软件包,能很好的处理分子生物学研究中的各种问题)
empress
添加empress数据库支持
empress-bcs
添加empress数据库本地存取支持
encode
添加视频和音频文件的多媒体编码器支持
enscript
添加enscript支持。enscript可将ascii文件转换为postscript,html,rtf,ansi格式。
esd
添加media-sound/esound支持 (一种kde的音效合成器)
esoob
添加easysoft ood数据库支持
evo
添加mail-client/evolution支持 (evolution类似微软的outlook,将电子邮件、日历、联系人管理和任务集成到一个易用的应用程序中)
examples
安装示例源代码
exif
添加读取jpeg和tiff图片exif头信息的支持 (exif: 可交换图像文件,实际是一种jpeg文件,是专门为数码相机的照片设定的,可以记录数字照片的属性信息和拍摄数据)
expat
允许使用dev-libs/expat (expat是一个xml解析器,可用于php,perl,python等)
fam
添加fam支持 (fam: 文件变更监视模块,能实时地观察文件系统的变化情况,并做出及时的适当的反应)[参考文档:linux下的实时数据镜像]
fastcgi
添加fastcgi接口支持 (cgi: 公共网关接口)
fbcon
在内核中为控制台添加framebuffer支持 (framebuffer: 帧缓冲,是把显存抽象后的一种设备,可以通过这个设备的读写直接对显存进行操作)
ffmpeg
添加ffmpeg多媒体解码器支持
fftw
使用fftw库进行傅立叶变换计算 (fftw: 快速傅立叶变换,用于一维和多维实数或复数的离散傅里叶变换,有些多媒体音效需要fftw)
firebird
添加firebird数据库支持
firefox
基于firefox编译,而不是基于seamonkey/mozilla编译
flac
添加flac音频编码支持 (flac是一个类似ape的无损编码方案,但容错性能要优于ape)
flatfile
为平面文件(flat file)添加dbm支持[参考文档:平面文件]
fltk
为fltk库提供支持。fltk(fast light toolkit)是一个基于opengl的跨平台c++图形化用户界面工具集。
fontconfig
允许通过media-libs/fontconfig工具配置和定制字体
foomaticdb
支持foomatic打印机驱动程序数据库
fortran
添加fortran(f77)支持
freetds
允许使用tds协议连接mssql/sybase数据库
freewnn
添加freewnn支持 (freewnn是一个将日文假名转换到日文汉字的转换引擎)
frontbase
添加frontbase数据库支持
ftp
添加ftp(文件传输协议)支持
gcj
添加gcj支持 (gcc中的java编译器)
gd
添加media-libs/gd支持 (gd库用于动态生成图片)
gd-external
使用外部的gd版本取代内置的版本(可能有些危险)
gdbm
添加sys-libs/gdbm支持 (gnu数据库函数库)
geoip
添加geoip支持 (geoip一个识别你web网站访问者的所在国家的工具)
ggi
添加media-libs/libggi支持 (非x窗口的视频api/drivers)
gif
添加gif图片格式支持
gimp
为gimp额外编译一个插件
ginac
添加sci-mathematics/ginac(符号数学)支持(ginac是一个c++数学计算函数库,主要用于编写科学和工程上使用的计算器)
glut
使用glut库编译一个opengl插件
gmp
添加dev-libs/gmp支持 (gun mp库允许你使用任意长度的整数)
gnome
添加gnome支持
gnome-keyring
支持通过gnome-keyring保存密码
gnuplot
添加gnuplot支持。gnuplot是一个数学绘图工具,它可以将数据和函数转换为专业的可视化图表。
gnustep
添加gnustep开发环境支持 (gnustep是一个免费/面向对象/图形化/跨平台的开发环境)
gnutls
添加net-libs/gnutls支持(gnutls是一款提供tls 1.0 和 ssl 3.0 加密支持的库)
gphoto2
添加数码相机支持
gpm
添加sys-libs/gpm支持 (gpm是通用鼠标协议,为控制台下提供鼠标支持,提供了通用的剪切和粘贴支持)
gps
添加全球定位系统(gps)支持
graphviz
添加graphviz库支持。graphviz是一个绘图工具集,通过绘制直观的图表,往往能够清晰地表现各种结构之间的关系,从而使复杂的问题简单化。
gzip
添加gzip压缩支持
gsl
使用gsl科学计算函数库进行计算。gnu科学计算函数库gsl(gnu scientific library)是一个强大的c/c++数值计算函数库。
gsm
支持gsm有损语音压缩编码/解码器。gsm俗称”全球通”,是一种起源于欧洲的第二代移动通信技术标准。
gstreamer
添加media-libs/gstreamer支持 (gstreamer是gnome下构建流媒体应用的编程框架,目标是简化音/视频应用程序的开发)
gtk
添加x11-libs/gtk+支持 (gtk: gimp工具包,gimp: 通用图像处理程序)(gtk+是应用程序图形界面编程工具)
gtkhtml
添加gnome-extra/gtkhtml支持 (gtkhtml是一个html分析/编辑库)
guile
添加dev-util/guile支持 (scheme语言解释程序)(guile是gnu工程的扩展语言库,是一个scheme语言的实现版本,把这个库链接到你的应用中就为你的应用增加了一种扩展语言)
hal
添加硬件抽象层(hal)支持 (硬件抽象层完全把系统软件和硬件部分隔离开来,这样就使得系统的设备驱动程序与硬件设备无关,从而大大提高了系统的可移植性)
handbook
允许为kde4生成参考手册
hardened
默认为工具链(gcc/glibc/binutils)启用安全增强特性
hddtemp
启用硬盘驱动器温度监控(app-admin/hddtemp)
hdf5
启用hdf5(hierarchical data format v5)支持。hdf5是一个层次型的数据存储格式,包含了数据定义和支持接口,支持并行i/o。hdf5比较适合用于那些无法用一般的格式存放的复杂科学数据。目前很多遥感存储采用hdf5格式来实现。
ibm
添加ibm ppc64体系结构支持
iconv
添加iconv字符集转换函数库支持
icq
添加icq通信协议支持
icu
添加icu(internationalization components for unicode)支持(使用dev-libs/icu)。是一个c/c++的unicode库,可以根据各地的习俗约定格式化数字、日期、时间和货币,以及对这些格式中的文本进行语法分析。
idn
添加idn(internationalized domain names,国际化域名)支持
ieee1394
添加ieee1394火线支持(数码相机,数码摄像机等)
imagemagick
添加imagemagick支持(imagemagick类似于gd但效果比gd好)
imap
添加imap支持 (imap: 网际网络信息存取协议,是一种比pop3更好的协议,可取代pop3协议)
imlib
添加media-libs/imlib支持 (imlib: 一个图片加载和显示库,用于gnome图形用户环境)
inifile
为.ini文件添加dbm数据库支持
innodb
为mysql添加innodb表类型支持 (innodb表类型可以支持事务处理,且性能优秀)
interbase
添加interbase数据库支持
iodbc
添加iodbc驱动程序库支持 (odbc: 开放数据库连接)
ipod
允许访问ipod设备
ipv6
添加ipv6支持
jabber
添加jabber即时通信协议支持 (jabber是一款即时消息软件)
jack
添加jack音频连接工具包 (低延迟、高性能的中间过程音频连接,以及音频设备共享,适合于专业音频应用程序)
java
添加java支持
java5
使用java 1.5编译java支持
java6
使用java 1.6编译java支持
javascript
添加javascript支持
jbig
为tiff,hylafax,imagemagick等添加jbig-kit支持。jbig-kit是一种高压缩率且不失真的影像压缩函数库,适用於传真或扫描影像。
jingle
允许jabber使用语音进行通信。jabber是一种开放式架构的即时通讯系统,可以和aol、icq以及yahoo通兼容。
joystick
在所有软件包里添加joysticks(游戏操纵杆)支持
jpeg
添加jpeg图片格式支持
jpeg2k
添加jpeg 2000图片格式支持
kontact
添加kde个人信息管理支持(kde-base/kdepim*)
kde
添加kde-base/kde支持 (kde桌面环境)
kdeenablefinal
[试验]使用enable-final标志建立kde的ebuilds,可以加速编译,但是要占用大量内存。官方反对使用此标记。
kdehiddenvisibility
编译kde时默认隐藏符号(使用gcc -fvisibility=hidden 命令行选项),必须使用gcc4.1以上版本。
kdeprefix
在kde的安装目录中添加slot前缀(/usr/kde/$slot),否则将直接安装到fhs兼容的位置(/usr)
kerberos
添加kerberos支持(kerberos是一个基于对称密码的认证协议,该协议能够提供强安全的认证服务)[参考文档:kerberos认证协议]
kolab
添加kolab groupware server支持。kolab是提供email、日历、任务计划、通知联系等功能的集成服务程序。
krb4
添加可选的kerberos4兼容支持 (kerberos 4协议实现中存在多个加密漏洞,目前为版本5)
ladspa
添加ladspa(linux audio developer’s simple plugin api)支持
lame
使用lame库作为mp3编码器。lame据说是目前最好的mp3编码器,是编码高品质mp3的最佳选择。
lapack
添加virtual/lapack数值计算库支持(lapack是一个用于线性代数计算的子程序包)
lash
添加lash支持。lash是一个用于linux音频应用程序的会话管理系统,它允许你保存和恢复由多个相互关联的应用程序组成的音频会话状态。
latex
添加latex支持。latex是一种基于tex的排版系统,即使使用者没有排版和程序设计的知识也可以充分发挥由tex所提供的强大功能。
lcms
添加lcms支持。lcms库可以提供色彩管理功能。
ldap
添加ldap(轻量级目录访问协议)支持。
libcaca
添加彩色ascii艺术图形支持
libedit
使用libedit库代替readline库。libedit是一个非gpl的与gnu readline库兼容的替代品。
libgda
添加gda(gnome data access)支持。gda提供了一种访问多种不同类型的数据源的统一架构,既包括传统的关系型数据库也包括任何可以想象的邮件服务器数据以及ldap数据等。
libnotify
添加桌面通知机制(desktop notification)支持。
libsamplerate
添加libsamplerate支持。libsamplerate(secret rabbit code)是一个音频重采样库,比如将44.1khz的cd音频转换为48khz的dvd音频。
libwww
添加libwww库(通用web应用程序编程接口)支持
lirc
添加lirc支持 (lirc: linux红外端口控制工具)
livecd
!!仅供内部使用,请不要设置此参数!! 在livecd构建中使用
lm_sensors
添加lm_sensors支持 (硬件监测软件,提供电压,温度,风扇转速等的实时监测)
lua
添加lua脚本支持。lua是一种小型的脚本语言,设计目的是为了嵌入其他应用程序中,从而为应用程序提供灵活的扩展和定制功能。
lzo
添加lzo压缩支持。lzo的压缩率并不高,但它是最快速的压缩和解压的算法,主要用于实时性较高的场合。
m17n-lib
添加m17n-lib支持 (“m17n”是”多语言化”的缩写。m17n-lib是一个c语言的多语言文本处理库,可让应用程序实现多语言支持)
mad
添加mad(一个高质量的mp3解码库/命令行前端)支持
maildir
添加maildir风格(~/.maildir)的邮件缓冲池支持
mailwrapper
添加mailwrapper支持,允许使用其他的mta(如postfix)取代sendmail
matroska
添加matroska多媒体容器格式(.mkv .mka .mks)支持。matroska是一种新的多媒体封装格式,它可将多种不同编码的视频及16条以上不同格式的音频和不同语言的字幕流封装到同一个文件当中。
matrox
添加matrox mga系列显卡支持
mbox
添加mbox风格(/var/spool/mail)的邮件缓冲池支持
mcve
添加mcve信用卡支付系统支持
memlimit
对于支持内存限制的程序启用内存限制支持
mhash
添加mhash库支持。mhash是一种线程安全的哈希算法库。
migemo
为日语添加migemo支持
mikmod
添加libmikmod支持来播放音轨格式的音频文件
milter
为sendmail添加milter邮件过滤器支持
mime
添加mime支持。mime是描述消息内容类型的因特网标准,mime消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
minimal
安装一个最小化的build(比如禁止插件/字体/大多数驱动程序/非关键的特性)
mmap
添加mmap(自内存映射)支持[参考文档:内存映射mmap]
mmx
为pentium mmx和athlon等级的处理器添加最佳化优化支持
mng
添加libmng库以支持mng格式的图片
modplug
添加libmodplug支持。libmodplug是一款用于mod类音乐格式(.mod .s3m .it .xm 等后缀)播放和转换的函数库。
mono
添加mono支持。mono是一个linux上的.net平台。
motif
添加motif工具集支持。[参考文档:gnome与kde的战争]
mozilla
添加mozilla web浏览器支持
mp3
添加读取mp3文件支持
mp4
添加读取mp4文件支持。mp4并不是一种编码格式,它实际上只是一种容器
mpeg
添加libmpeg3库支持(libmpeg3是一个处理mpeg编码的库)
mpi
添加mpi(message passing interface)支持 (mpi: 消息传递接口,是一套可用于linux高性能计算集群系统上的数据传送模型,目标是创建一套和程序语言、计算机种类无关的标准,用以撰写收送讯息的程序码)
mplayer
添加mplayer播放/编码支持
msn
添加msn messenger通信协议支持
msql
添加msql数据库支持
mssql
添加microsoft sql server数据库支持
mtp
添加mtp(media transfer protocol,媒体传输协议)支持。[参考文档:媒体传输协议]
mule
为xemacs添加多语言支持
multilib
让64bit系统可以同时编译32bit和64bit二进制文件
musepack
添加musepack音频编码支持。musepack据说是比lame mp3更优秀的有损压缩方案,是目前最适合用于音乐欣赏的有损编码。
musicbrainz
使用musicbrainz(musicbrainz.org)社区服务查找音频文件的元数据
mysql
添加mysql数据库支持
mysqli
添加mysqli库支持(改进版本的mysql库,用于mysql4.1以上版本)
nas
添加网络音频(network audio)支持
ncurses
添加ncurses支持添加ncurses控制台显示库支持 (ncurses是curses的改良版本,是一个能提供快捷键、彩色界面、提供鼠标支持的基于文本终端窗口功能的动态库)
next
添加next工具集支持(??什么玩意??与next软件公司推出的nextstep操作系统有关吗??)
netboot
添加网络启动支持
netcdf
启用netcdf数据格式支持 (netcdf是大气研究大学协会(ucar)开发的。由于netcdf是一种灵活的,自描述的,并能表达大量数组数据的格式,因此netcdf在地球、海洋、大气科学中得到了广泛的应用)
networkmanager
添加net-misc/networkmanager支持
nis
启用nis/yp服务支持 (nis/yp: 网络信息服务)
nls
使用gnu gettext启用本地化语言支持 (gnu gettext是一个本地化/国际化函数库)
nntp
添加网络新闻传输协议nntp(network news transfer protocol)支持。nntp是一种服务器-客户机流模式(端口119)实现新闻文章的发行、查询、修复及记录等过程的协议。新闻文章只需要存储在一台服务器主机上,而位于其它网络主机上的订户通过建立到新闻主机的流连接阅读到新闻文章。nntp为新闻组的广泛应用建立了技术基础。
nocd
安装在没有cd-rom的情况下运行程序所需要的所有文件
nocxx
禁止c++支持(除非你自己知道自己在作什么,否则不要启用该选项)
nptl
添加native posix thread库支持 (linux2.6以上的内核posix线程的新实现,大大提高了性能并增加了可缩放性)[参考文档:linux线程库性能测试与分析;应用2.6内核超线程模式]
nsplugin
为支持netscape插件架构的浏览器编译插件,目前几乎所有浏览器都支持。
ocaml
添加ocaml语言支持。ocaml是caml编程语言的主要实现。
ocamlopt
添加ocamlopt(ocaml本机代码编译器)支持。目的是生成运行速度更快的程序(警告:你必须在全局范围内明确的disable/enable它)
oci8
添加oracle8支持
oci8-instant-client
使用dev-db/oracle-instantclient-basic作为oracle服务提供者,而不是安装完整的oracle服务器。
odbc
添加odbc(开放数据库互连)支持
offensive
??使用程序包中可能存在的攻击的(讨厌的)项目??
ofx
添加ofx(开放式金融交换)数据文件的导入/导出支持
ogg
添加ogg多媒体容器格式支持(通常被vorbis/theora/flac使用)
old-linux
添加老版本的linux-2.4支持
openal
添加openal(open audio library)支持。openal是跨平台音效api,用于多通道三维位置音效的特效表现,其api风格模仿自opengl,也主要用于游戏。
openexr
添加高动态范围/高精度色彩的openexr图形文件格式支持[http://www.openexr.com/]。openexr主要用于全球第一大特效制作公司ilm的电影(变形金刚,侏罗纪公园,加勒比海盗,星球大战…)中。
opengl
添加opengl(3d图形api)支持。
openmp
添加openmp支持。openmp是一个编译器指令和库函数的集合,主要是为共享式存储计算机上的并行程序设计使用的。要求 >=sys-devel/gcc-4.2 并且使用use=”openmp”编译。
oracle
添加oracle数据库支持
osc
添加osc(open sound control)协议支持。osc协议可以用于计算机、声音合成器、各种多媒体设备之间通过网络进行通信,让电子乐器之间也能利用网络的便利。
oscar
添加oscar(aim/icq)即时通信协议支持
oss
添加oss支持(open sound system起源于linux kernel的声卡驱动程序,已是昨日黄花,目前让位给alsa了)
pam
添加pam支持。切勿武断的使用它!(pam: 可插入认证模块,是功能十分强大的系统认证模组系统,所有新式的linux系统皆使用此认证系统,系统可藉由pam,扩充认证机制)
pch
启用预编译头文件支持(要求 >=sys-devel/gcc-3.4),这将增大内存和磁盘用量,但可以加快编译过程。
pcmcia
添加笔记本上的pcmcia设备支持
pcntl
adds support for process creation functions
pcre
添加pcre(perl兼容的正则表达式)支持
pda
添加便携式设备支持(pda??)
pdf
添加pdf文档格式支持
perl
添加perl语言支持
php
添加php支持
plasma
编译可选的plasma widgets支持(依赖于kde-base/libplasma)
plotutils
添加plotutils支持。plotutils是一个2d矢量图函数库。
png
添加libpng库支持(png图片)
policykit
使用sys-auth/policykit获取特权
portaudio
添加跨平台的portaudio音频编程接口支持
posix
添加posix兼容函数库支持
postgres
添加postgresql数据库支持
ppds
自动生成打印驱动程序文件
prelude
启用prelude入侵检测系统支持
prefix
defines if a gentoo prefix offset installation is used
profile
在编译时添加profile支持,主要用于应用程序性能分析和调试。
pulseaudio
添加pulseaudio音频服务支持。[参考文档:linux声音系统和pulseaudio简介]
python
添加python语言支持
qdbm
添加qdbm(quick database manager)库支持(qdbm是一个管理数据库的函数库,它参照gdbm为了下述三点而被开发:更高的处理速度,更小的数据库文件大小,和更简单的api)
qmail-spp
添加qmail smtp插件支持
qt3
添加qt gui/application toolkit 3.x支持(qt 3.x是一个多平台的c++图形用户界面应用程序框架,也是kde 3.x桌面环境的基础)
qt4
添加qt gui/application toolkit 4.x支持(qt 4.x是一个多平台的c++图形用户界面应用程序框架,也是kde 4.x桌面环境的基础)
quicktime
添加openquicktime支持
radius
添加radius认证支持(主要用于对远程拨入的用户进行授权和认证,主要针对的远程登录类型有:ldap、slip、pap、ppp、telnet和rlogin等)
raw
添加raw image格式支持
rdesktop
添加远程桌面协议支持,主要用于连接到windows服务器。
readline
使用libreadline库支持 (readline是一个对命令行进行编辑的库,使用命令行的的人一般都需要, 除非你不使用esc/alt/ctrl/shift键,否则请加上这个参数)
recode
添加gnu recode库支持 (gnu recode库可以在不同的字符集和编码间相互转换)
rss
添加rss feeds支持
ruby
添加ruby语言支持
samba
添加samba支持,可以实现与windows文件共享以及打印共享
sapdb
添加sap db数据库支持(也就是mysql公司的maxdb)
sasl
添加sasl支持 (sasl: 简单认证和安全层)[参考文档:基于cyrus-sasl的认证]
savedconfig
使用它来恢复保存在/etc/portage/savedconfig ${category}/${pn}中的配置信息。你必须确保use标记包含了正确的依赖关系。
scanner
添加硬件扫描支持(比如做为kdegraphics程序的前端)
sdl
添加simple direct layer支持 (多媒体库)
seamonkey
添加seamonkey浏览器支持
selinux
提供selinux支持 !!仅功内部使用,只能由selinux的profile文件设置,其他情况下请勿使用!![参考文档:linux安全模块简介;selinux是什么]
semantic-desktop
跨kde支持语义搜索和信息检索
session
添加持久会话支持(??啥意思??)
sharedext
为php添加创建共享扩展的支持
sharedmem
添加使用共享内存段支持
shorten
添加shorten音频压缩器支持
simplexml
添加simplexml支持(simplexml是一个处理xml的扩展模块,基于gnome项目的libxml2库)
skey
启用s/key认证支持。s/key是种一次性密码系统。
slang
添加slang文本显示库支持 (很像ncurses)
slp
添加服务定位协议(service locator protocol)支持
smartcard
添加智能卡支持
smp
启用多核cpu以及多cpu支持
sndfile
添加libsndfile支持 (libsndfile是一个通过标准接口来读写声音文件的c库)
snmp
添加snmp协议支持 (snmp: 简单网络管理协议)
soap
添加soap协议支持 (soap: 简单对象访问协议)
sockets
添加tcp/ip套接字支持
socks5
添加socks5袋裡服务器支持
solid
添加solid数据库引擎支持
source
将源代码打成zip包并安装??
sox
添加音频格式转换软件sox(sound exchange)支持
speex
添加speex音频编码支持。speex的特点是针对语音压缩的效果非常好,音质不次于ilbc,在丢包和窄带(5-30k)时音质依然非常出色。
spell
添加拼写检查/字典支持
spl
添加php标准程序库(standard php library)支持
sqlite
添加sqlite数据库支持 (一个轻量级数据库)
sqlite3
添加sqlite3数据库支持 (一个轻量级数据库)
sse
为pentiumiii级别以上的cpu启用sse指令集优化支持
sse2
为兼容sse2指令集的cpu启用sse2指令集优化支持
ssl
添加ssl连接支持 (ssl: 安全套接字层)
startup-notification
开启应用程序启动事件反馈机制
static
!!在系统引导过程中切勿使用该参数!! 因为这将导致二进制可执行文件使用静态连接而不是动态连接
subversion
开启subversion(一种版本控制系统)支持
suid
允许具有潜在安全风险的程序具有setuid位
svg
添加svg支持 (svg: 可缩放矢量图,那些经常浏览多媒体网站的用户可能需要)
svga
添加svgalib库支持。svgalib是linux console下的vga驱动函数库。
sybase
添加sybase数据库支持
sybase-ct
添加sybase-ct数据库支持
symlink
强制内核ebuilds自动更新/usr/src/linux符号连接
syslog
添加syslog支持
sysvipc
添加与system v兼容的进程间通信支持
szip
使用szip压缩库。szip是一种无损压缩,对大文本压缩效果较好。
taglib
使用taglib来扩展jsp标记。
tcl
添加tcl/tk支持(tcl/tk 是一种简明、高效、可移植性好的编程语言)
tcpd
添加tcp包装支持
test
portage-2.1.2之后此标记已经失去意义了,不要使用它。
theora
添加开源免费的theora视频编码支持。theora属于ogg项目的一部分,主要用于高清影片,具有超越h.264的画质,下一代的theora编码器将命名为thusnelda
threads
在内核中添加线程库支持,通常是pthreads(posix线程库)[参考文档:linux线程库性能测试与分析;应用2.6内核超线程模式;linux线程初探]
tidy
添加html tidy支持 (tidy: 一个将html转换为xhtml的开源工具)
tiff
添加tiff图片格式支持
timidity
添加timidity++(midi音序器)支持
tk
添加tk gui toolkit支持
tokenizer
添加php文件分析器(file parser)支持
truetype
添加freetype/freetype2字体支持
uclibc
使用uclibc进行编译和连接 (uclibc是一个针对嵌入式系统替代glibc的c库,需要的内存比glibc少)
unicode
添加unicode支持
usb
添加usb支持
v4l
添加video4linux支持 (内核视频采集接口api)
v4l2
添加video4linux2支持 (新一代内核视频采集接口api)
vanilla
不添加改变默认行为的额外补丁。!!切勿在全局范围内使用此标记!!
vcd
添加vcd支持
vhosts
添加为虚拟主机环境安装基于web的应用程序的支持??
videos
安装一些游戏中可选的视频文件
vim-syntax
加入相关的vim语法脚本
vnc
添加vnc(remote desktop viewer)支持。vnc是一类使用rfb协议的跨平台屏幕分享及远程控制软件,比如:realvnc, tightvnc, ultravnc 等。
voodoo3
添加3dfx的voodoo3支持,不然将默认支持voodoo4/5
vorbis
添加oggvorbis音频解码器支持。[参考文档:oggvorbis]
wavpack
添加wavpack音频压缩工具支持。[参考文档:wavpack]
wddx
添加wddx支持 (wddx是一种基于xml的web分布式数据交换技术)
wifi
添加无线网络支持
win32codecs
使用win32编码器动态链接库来支持avi/wmv等文件的解码
wmf
添加wmf矢量图形格式支持。
wxwidgets
添加wxwidgets/wxgtk图形用户界面开发工具支持
wxwindows
反对使用此标记,即将被废除
x264
使用x264来支持h.264编码。h.264是一种高清视频编码标准,而x264是采用这种标准的一种具体实现。
xattr
添加文件系统的扩展属性支持(存储在文件系统内的元数据)。[参考文档:扩展文件属性]
xcb
添加xcb(x protocol c-language binding)支持。xcb是xlib的一个替代品,具有精简、延迟隐藏(latency hiding)、直接访问协议、可扩展性、可支持多线程执行的优点。
xcomposite
添加xorg的复合扩展(composite extension)支持。
xemacs
添加xemacs支持
xface
添加xface支持 (通过在email加入x-face信头来显示一个小头像)
xft
编译xft字体渲染引擎(x11-libs/libxft)支持。xft给x应用程序提供了访问freetype字体光栅化引擎和x渲染扩展的接口,也担负了配置和定制字体的功能。
xine
添加xine电影播放库支持 (xine是一个可播放众多流媒体文件的函数库和播放器)
xinerama
添加xinerama x11扩展支持,以支持多个显示器
xinetd
添加xinetd(超级internet服务器)支持。[参考文档:网络服务和xinetd]
xml
添加xml文件支持
xmlrpc
添加xml-rpc库支持
xosd
使用x on screen display库发送显示信号??
xpm
添加xpm图形格式支持
xprint
添加xprint支持,xprint是一种高级打印系统。
xscreensaver
添加xscreensaver扩展支持。xscreensaver是一个执行在x window系统下的屏幕保护程序,还能锁定屏幕。
xsl
添加xsl库(v1)支持(xsl文档也是xml文档中一种)
xulrunner
使用xulrunner(而不是firefox/seamonkey)来编译本地浏览器集成。
xv
添加可选的xvideo扩展支持 (xvideo是一个x窗口下的视频回放api,可以直接把图像显示在可拖拉的对象里)
xvid
添加xvid.org的开源mpeg-4编码支持
yahoo
添加yahoo messenger即时通信协议支持
yaz
添加用于z39.50协议支持(yaz)。z39.50协议是一种在客户/服务器环境下计算机之间进行信息检索的通讯协议。
zeroconf
添加dns-sd(dns service discovery)支持。dns-sd是一个浏览网络上的dns服务的方法。
zlib
添加zlib(解)压缩支持
zsh-completion
添加zsh-completion支持(改进了zsh的自动补全功能)