jues

Gentoo USE参数清单中文详解

3dfx - 添加XFree86下的3dfx显卡支持 (参见: voodoo3)
3dnow - 添加AMD处理器的3dnow!指令集支持
*X - 添加X11窗口支持
Xaw3d - 添加带3D视图的athena窗口支持
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解析库)
afs - 添加OpenAFS支持 (一个分布式文件系统)[参考文档:OpenAFS帮助聚集分布式数据]
aim - 添加AIM即时通信协议支持 (AOL.com的即时消息工具)
*alsa - 添加media-libs/alsa-lib支持 (先进Linux音效架构)
altivec - 添加G4/G5/ppc970处理器优化支持
apache2 - 当一个程序包同时支持Apache1和Apache2时,选择支持Apache2
*apm - 添加APM电源管理支持[参考文档:高级电源管理常见问题解答]
*arts - 添加aRts支持 (一种KDE的音效合成器)
audiofile - 添加libaudiofile(音频文件库)支持
*avi - 添加avifile(avi库)支持 (avi是一种windows上常用的多媒体文件格式)
bash-completion - 添加bash-completiton支持 (改进了bash的命令补全功能)
bcmath - 添加libbcmath支持 (bcmath是一个任意精度数学函数库,可用于PHP)
*berkdb - 添加sys-libs/db支持 (MySQL的Berkeley DB表类型支持)
bidi - 添加双向语言支持 (支持由右而左的语言,如:阿拉伯语和希伯来语)
bindist - 启用或禁止可选的预编译包(GRP)支持 (比如由于发行许可导致的)
birdstep - 添加Birdstep数据库支持
*bitmap-fonts - 添加位图字体支持(注:该指令存在于make.defaults中,却在use.desc中找不到)
blas - 添加virtual/blas库支持 (BLAS是著名的基本线性代数子程序包,被许多实际应用问题和几乎所有有关矩阵计算的软件所采用,可应用于科学和工程设计的矩阵计算问题,也可应用于生 产基本线性代数计算的高水平程序库,是数学应用软件的基本核心库。)
bluetooth - 添加蓝牙支持
bmp - (测试性)添加beep media player支持,主要用于在XMMS播放器中支持bmp插件,也用于支持纯beep media player
bonobo - 添加gnome-base/bonobo支持 (Gnome的CORBA接口)(CORBA:公用对象请求代理体系结构,是面向对象编程中进程间通信的一个实现。)(Bonobo是用于GNOME桌面 应用程序间通信的基于CORBA的解决方案,它还依赖于GObject,不能用于GNOME 之外)
bootstrap - !!仅供内部使用,请不要设置此参数!!在原始系统的引导过程中使用
boundschecking - 添加Haj Ten Brugge边界检查补丁,这将禁用固有的PIE+SSP补丁 (边界检查用于防止缓冲区溢出漏洞攻击)
build - !!仅供内部使用,请不要设置此参数!! 用于建立引导过程前半部分的镜像构建
bzip2 - 使用bzlib压缩库
calendar - 添加日历支持(不是用mcal!)
canna - 添加Canna支持 (Canna是一个将日文假名转换到日文汉字的转换引擎)
caps - 使用Linux capabilities库(POSIX.1e capabilities)来控制权限[参考文档:Linux安全模块简介;利用capability特征加强Linux系统安全]
cdb - 添加qmail作者编写的CDB数据库引擎
cdparanoia - 添加cdparanoia支持 (CDParanoia是一个音频格式转换软件,它可以直接从CD光盘上读取数据,并转换成其它格式)
cdr - 添加CD刻录硬件支持
chasen - 添加chasen支持 (一个日语分词标注系统)
cjk - 添加多字节字符语言支持 (中日韩)
cpdflib - 添加clibpdf支持 (用PHP操作PDF的库)
*crypt - 添加加密支持 (使用基于私钥的mcrypt或基于公钥的gpg)
cscope - 添加cscope接口支持 (比如用于vim和emacs)(cscope具有开发支持功能,极大地方便了对源代码库的浏览和查询,vim中内置的ctags支持提供了类似的功能,但cscope的功能更为强大)
ctype - 启用ctype函数支持 (ANSI C标准库中的字符类型头文件)
*cups - 添加CUPS支持 (CUPS: 通用UNIX打印系统)
curl - 添加客户端URL传输库支持 (curl是一个可以使用URL语法传输文件的库,支持HTTP/HTTPS/FTP/FTPS/DICT/TELNET/LDAP/FILE和GOPHER等协议)
curlwrappers - 在传输流中使用curl包装
db2 - 添加IBM DB2数据库支持
dba - 启用dbm数据库兼容层
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 - 添加Xfree86下的DGA支持 (DGA: 直接图形存取)
diet - 使用dietlibc进行编译和连接 (Dietlibc是一个可替代Glibc的C库,需要的内存比Glibc少许多,但是不完全兼容Glibc)[参考文档:轻量级 Linux-第 1 部分]
dio - 添加直接I/O支持 [参考文档:直接IO与高速缓存IO]
directfb - 添加DirectFB层支持 (DirectFB是一个库,提供了硬件图形加速/输入设备处理和抽象/一个集成的窗口系统,支持在Linux帧缓冲设备上的半透明的窗口和多显示层技 术。它是一个完整的硬件抽象层,提供了对于每个图形操作的软件反馈,而这一功能还没有被底层硬件支持。)
divx4linux - 添加divx.com的DivX mpeg4库支持
doc - 添加额外的文档资料(API/Java文档等)
dv - 添加一种被许多摄象机使用的编解码器支持
dvb - 添加DVB支持 (DVB: 数字视频广播)
dvd - 添加DVD支持
dvdr - 添加DVD刻录硬件支持 (比如:xcdroast)
dvdread - 启用Ogle播放器的libdvdread库来支持DVD回放
*eds - 添加Evolution-Data-Server(eds)数据库支持
emacs - 添加GNU Emacs支持
emacs-w3 - 添加Emacs/W3支持 (文本模式的浏览器,运行于Emacs上。仅在Xemacs中才能看到图像)
#embedded - 保留的用于嵌入式环境的参数
*emboss - 添加EMBOSS支持 (EMBOSS:欧洲分子生物学开放软件包,能很好的处理分子生物学研究中的各种问题)
empress - 添加Empress数据库支持
empress-bcs - 添加Empress数据库本地存取支持
emul-linux-x86 - (在AMD64bit环境下(或许也可以是IA64bit ??))为32bit x86应用程序提供二进制支持库
*encode - 添加MEncoder(视频)和LaME(音频)多媒体编码器支持
esd - 添加media-sound/esound(ESD)支持 (一种KDE的音效合成器)
esoob - 添加Easysoft OOD数据库支持
ethereal - 在kismet中添加ethereal的wiretap库日志支持 (Kismet是一款无线网络嗅探器和数据包过滤工具,Ethereal是一款网络嗅探器)
ev6 - 假定Alpha处理器使用EV6或更好的总线架构
evo - 添加Evolution到Gnumeric和multisync中 (Evolution类似微软的Outlook,Gnumeric是一款电子表格软件,multisync是OpenSync的前身,是什么呢??)
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: 帧缓冲,是把显存抽象后的一种设备,可以通过这个设备的读写直接对显存进行操作)
fdftk - 添加Adobe的FDF工具包
ffmpeg - 添加ffmpeg支持 (FFmpeg是一个多媒体解码器)
fftw - 使用FFTW库进行傅立叶变换计算 (FFTW: 西部最快速傅立叶变换,用于一维和多维实数或复数的离散傅里叶变换,有些多媒体音效需要fftw)
filepro - 添加filePro数据库支持
firebird - 添加Firebird数据库支持
flac - 添加flac音频编码器支持 (FLAC是一个类似APE的无损编码方案,但容错性能要优于APE)
flash - 添加PHP的Ming库支持 (PHP的Ming库可以动态创建Flash动画)
flatfile - 为平面文件(flat file)添加dbm支持[参考文档:平面文件]
*foomaticdb - 添加foomatic打印驱动程序数据库 (foomatic把PPD和打印管理程序的配置屏蔽掉,通过同一种方式管理所有的打印机,给用户一个统一的界面)
*fortran - 添加fortran支持
freetds - 添加使用TDS协议连接MSSQL/Sybase的支持
freewnn - 添加FreeWnn支持 (FreeWnn是一个将日文假名转换到日文汉字的转换引擎)
frontbase - 添加frontbase数据库支持
ftp - 添加FTP支持
gb - 为Gnumeric添加Gnome Basic支持 (Gnumeric是GNOME下的电子制表软件,GNOME Basic是一个兼容Visual Basic的开发工具)
gcj - 添加GCJ支持 (GCJ是GCC中用于编译JAVA的模块)
gd - 添加media-libs/gd支持 (使用gd库产生动态图片)
gd-external - 使用外部的gd版本取代内建版本(可能有些危险)
*gdbm - 添加sys-libs/gdbm支持 (GNU database函数库)
geoip - 添加GeoIP支持 (GeoIP一个识别你Web网站访问者的所在国家的工具,可用于PHP)
ggi - 添加media-libs/libggi支持 (非X窗口的视频api/drivers)
*gif - 添加GIF图片支持
ginac - 添加sci-mathematics/ginac(符号数学)支持(GiNaC是一个C++数学计算函数库,主要用于编写科学和工程上使用的计算器)
glut - 使用GLUT库构建一个OpenGL插件
gmp - 添加dev-libs/gmp支持 (GUN MP库允许你使用任意长度的整数,可用于PHP)
*gnome - 添加GNOME支持
gnustep - 添加GNUstep开发环境支持 (GNUstep是一个免费/面向对象/图形化/跨平台的开发环境)
gnutls - 添加net-libs/gnutls支持 (GnuTLS是一款提供可靠传输层加密的库)
gphoto2 - 添加数码相机支持
*gpm - 添加sys-libs/gpm支持 (GPM是通用鼠标协议,为控制台下提供鼠标支持,提供了通用的剪切和粘贴支持)
gps - 添加全球定位系统支持
*gstreamer - 添加media-libs/gstreamer支持 (GStreamer是GNOME下构建流媒体应用的编程框架,目标是简化音/视频应用程序的开发)
*gtk - 添加x11-libs/gtk+支持 (GTK: GIMP工具包,GIMP: 通用图像处理程序)(GTK+是应用程序图形界面编程工具)
*gtk2 - 在同时支持gtk+2.0和gtk+1.2的情况下使用gtk+-2.0
gtkhtml - 添加gnome-extra/gtkhtml支持 (GtkHTML是一个HTML分析/编辑库)
guile - 添加dev-util/guile支持 (Scheme语言解释程序)(Guile是GNU工程的扩展语言库,是一个Scheme语言的实现版本,把这个库链接到你的应用中就为你的应用增加了一种扩展语言)
hal - 添加硬件抽象层(HAL)支持 (硬件抽象层完全把系统软件和硬件部分隔离开来,这样就使得系统的设备驱动程序与硬件设备无关,从而大大提高了系统的可移植性)
hardened - 为工具链(gcc/glibc/binutils)启用默认的安全增强特性
hardenedphp - 为php程序组的ebuilds添加Hardened-PHP安全补丁 (Hardened-PHP是一个安全组织,他们开发了自己的安全增强版PHP)
howl - 启用howl和DNS-SD支持 (HOWL是一个高效日志子系统??)(DNS-SD: DNS服务发现,是使用标准的DNS编程接口/服务/包格式来浏览网络服务一种方法,兼容但不依赖与Multicast DNS)
hyperwave-api - 添加Hyperwave文件存储系统支持 (Hyperwave是一个类似于数据库的信息系统,专注于存储和管理文档)
ibm - 添加IBM ppc64体系结构支持
icc - 添加Intel C++编译器支持 (不会更改$CC)
iconv - 添加iconv字符集转换函数库支持(gb2312/big5/utf-8互相转换,可用于PHP)
icq - 添加ICQ通信协议支持
ieee1394 - 添加IEEE1394支持
ifc - 使用ifc代替g77 (ifc: Intel Fortran编译器,g77: GNU Fortran 77编译器)
imagemagick - 添加Imagemagick支持(ImageMagick类似于GD但效果比GD好,可以代替PHP的GD库)
imap - 添加IMAP支持 (IMAP: 网际网络信息存取协议,可取代POP3协议)
*imlib - 添加media-libs/imlib支持 (imlib: 一个图片加载和显示库,用于Gnome图形用户环境)
informix - 添加Informix数据库支持
ingres - 添加Ingres数据库支持
inifile - 为ini文件添加dbm数据库支持
innodb - 为mySQL添加innodb表类型支持 (innoDB表类型可以支持事务处理,且性能优秀)
interbase - 添加Interbase数据库支持
iodbc - 添加iODBC库支持 (一个ODBC驱动程序库,ODBC: 开放数据库连接)
*ipv6 - 添加IPv6支持
jabber - 添加jabber通信协议支持 (一款即时消息软件)
jack - 添加JACK音频连接工具包 (低延迟、高性能的中间过程音频连接,以及音频设备共享,适合于专业音频应用程序)
java - 添加Java支持
javascript - 添加javascript支持
jikes - 使用jikes编译JAVA源码 (Jikes是一个快速的Java编译器)
joystick - 在所有包里添加joysticks支持 (joysticks: 游戏操纵杆)
*jpeg - 添加JPEG图片支持
junit - 添加junit awareness支持 (JUnit是一个回归测试框架)
*kde - 添加kde-base/kde支持 (KDE桌面环境)
kdeenablefinal - 使用enable-final标志建立kde的ebuilds,可以加速编译,但是要占用大量内存
kdexdeltas - 使kde的ebuilds只下载每个发布版与旧版不同的部分,而不是为每个新发布版下载整个tar包
kerberos - 添加kerberos支持(Kerberos是一个基于对称密码的认证协议,该协议能够提供强安全的认证服务)[参考文档:Kerberos认证协议]
krb4 - 添加可选的kerberos4兼容支持 (Kerberos 4协议实现中存在多个加密漏洞,目前为版本5)
ladcca - 添加Linux音频开发者配置与连接API支持 (LADCCA)
lapack - 添加virtual/lapack数值计算库支持(lapack是一个用于线性代数计算的子程序包)
lcms - 为media-gfx/imagemagick添加lcms支持 (lcms库用来提供色彩管理功能)
ldap - 添加LDAP支持 (LDAP: 轻量级目录访问协议)
leim - 为Emacs添加自带的leim输入法支持(据说这个输入法不咋地)
lesstif - 当程序同时支持lesstif和openmotif时,使用lesstif。(Motif,lesstif,openmotif都是用于X的图形接口)
libcaca - 添加彩色ASCII-art图形支持
libedit - 添加libedit库支持 (一个非GPL的与GNU Readline库兼容的替代品)
*libg++ - 在dev-db/postgresql中添加C++模块支持 (libpq++是PostgreSQL的C++ API,是一个C++类的集合,允许客户端程序与PostgreSQL服务器进行联接)
libgda - 为gnumeric添加CORBA包装的GNU数据存取支持 (gnumeric是一款电子表格软件)
*libwww - 添加libwww库支持 (libwww: 通用WEB应用程序编程接口)
lirc - 添加lirc支持 (lirc: 红外端口控制工具)
livecd - !!仅供内部使用,请不要设置此参数!! 在livecd构建中使用
lm_sensors - 添加lm_sensors支持 (硬件监测软件,提供电压,温度,风扇转速等的实时监测)
m17n-lib - 添加m17n-lib支持 ("m17n"是"多语言化"的缩写。m17n-lib是一个C语言的多语言文本处理库,可让应用程序实现多语言支持)
*mad - 添加mad支持 (一个高质量的mp3解码库/插件)
maildir - 添加maildir风格(~/.maildir)的邮件缓冲池支持??
mailwrapper - 添加mailwrapper支持,允许使用其他的MTA(如postfix)取代sendmail
matroska - 添加matroska容器格式支持 (MKV是Matroska的一种媒体文件, Matroska是一种新的多媒体封装格式也称多媒体容器,它可将多种不同编码的视频及16条以上不同格式的音频和不同语言的字幕流封装到一个 Matroska Media文件当中,)
matrox - 为mplayer添加Matrox MGA支持
mbox - 添加mbox风格(/var/spool/mail)的邮件缓冲池支持??
mcal - 添加MCAL模块日历存取函数库支持 (可用于PHP4的一个模块,在PHP5中转移到PECL仓库)
mcve - 添加MCVE信用卡支付系统支持
memlimit - 对于支持内存限制的程序启用内存限制支持
mhash - 添加mhash库支持 (可用于PHP的功能强大的hash函数扩展库)
migemo - 为日语添加migemo支持
*mikmod - 添加libmikmod支持来播放音轨格式的音频文件
milter - 为sendmail添加milter邮件过滤器支持
mime - 添加MIME支持
ming - 添加ming库支持以创建flash文件
minimal - 安装一个最低限度的build (比如禁止插件/字体/大多数驱动程序/非关键的特性)
mmap - 添加mmap支持 (mmap是自内存映射)[参考文档:内存映射mmap]
mmx - 为Pentium MMX和Athlon等级的处理器添加最佳化优化支持
mng - 添加libmng库以支持MNG图片
mnogosearch - 添加mnoGoSearch搜索引擎支持 (mnoGoSearch是基于SQL的搜索引擎,可用于PHP)
mono - 添加Mono支持 (Mono是一个Linux下的.NET开发平台)
*motif - 添加motif支持 (x11-libs/openmotif x11-libs/lesstif)(Motif,lesstif,openmotif都是用于X的图形接口)
mozilla - 添加mozilla支持
*mp3 - 添加读取mp3文件支持
*mpeg - 为许多程序包添加libmpeg3库支持 (libmpeg3是一个全面的处理mpeg的库)
mpi - 为支持MPI的程序添加MPI层支持 (MPI: 消息传递接口,是一套可用于Linux高性能计算集群系统上的数据传送模型,目标是创建一套和程序语言、计算机种类无关的标准,用以撰写收送讯息的程序码)
msession - 添加msession支持 (msession是一个高效的session处理程序,可用于PHP)
msn - 添加MSN Messenger通信协议支持
msql - 添加MSQL数据库支持
mssql - 添加SQL Server数据库支持
mule - 为XEmacs添加多语言支持
multilib - 让64bit系统可以同时编译32bit和64bit二进制文件
mysql - 添加mySQL数据库支持
mysqli - 添加mySQLi库支持 (用于PHP5的改进的MySQL库,用于MySQL4.1以上版本)
nas - 添加网络音频支持
*ncurses - 添加ncurses控制台显示库支持 (ncurses是curses的改良版本,是一个能提供快捷键、彩色界面、提供鼠标支持的基于文本终端窗口功能的动态库)
netboot - 启用网络启动支持
netcdf - 启用NetCDF数据格式支持 (NetCDF是大气研究大学协会(UCAR)开发的。由于NetCDF是一种灵活的,自描述的,并能表达大量数组数据的格式,因此NetCDF在地球、海洋、大气科学中得到了广泛的应用。)
neXt - 启用neXt工具包(这是什么东西?)
nhc98 - 如果程序包支持,就用nhc98 Haskell编译器代替GHC编译器 (两者都是Haskell98语言编译器)
nis - 启用NIS/YP服务支持 (NIS/YP: 网络信息服务)
*nls - 使用GNU gettext启用本地化语言支持 (GNU gettext是一个本地化/国际化函数库,可以用于PHP)
nocd - 让emerge安装在没有CD-ROM的情况下运行程序所需要的所有文件
nocxx - 禁止C++支持 (除非你自己知道自己在作什么,否则不要启用该选项)
nptl - 添加Native POSIX Thread库支持 (Linux2.6以上的内核POSIX线程的新实现,大大提高了性能并增加了可缩放性)[参考文档:Linux线程库性能测试与分析;应用2.6内核超线程模式]
oci8 - 添加Oracle8支持
odbc - 添加ODBC支持
offensive - 使用程序包中可能存在的攻击的(讨厌的)项目??
ofx - 添加OFX(开放式金融交换)数据文件和gnucash/grisbi之间的导入/导出支持
*ogg - 添加Ogg多媒体容器格式支持 (通常被Vorbis/Theora/flac使用)
*oggvorbis - 添加OggVorbis音频编码格式支持
openal - 添加Open Audio库支持
*opengl - 添加OpenGL支持
oracle7 - 添加Oracle7支持
oracle - 添加oracle支持
osc - 添加Open Sound Control支持
oscar - 添加Oscar(AIM/ICQ)通信协议支持
*oss - 添加OSS支持 (Open Sound System起源于Linux kernel的声卡驱动程序,支持大部分的声卡,号称声卡驱动的一揽子解决方案)
ovrimos - 添加Ovrimos数据库支持
*pam - 添加PAM支持 (PAM: 可插入认证模块,是功能十分强大的系统认证模组系统,所有新式的Linux系统皆使用此认证系统,系统可藉由PAM,扩充认证机制)
pcmcia - 添加笔记本上的PCMCIA设备支持
pcntl - 添加进程产生函数/特性支持(啥意思??)
pcre - 添加Perl兼容的正则表达式支持
pda - 添加便携式设备(PDA?)支持
*pdflib - 添加PDF文件格式支持
*perl - 添加Perl语言支持
pfpro - 添加Verisign Payflow Pro函数库支持 (允许通过使用Verisign Payment服务进行支付或财务往来,可用于PHP)
php - 添加php支持
pic - 编译时建立位置无关代码(程序只使用相对寻址),如果你不知道这是什么意思,请勿使用!
plotutils - 为gnuplot添加plotutils支持 (gnuplot: 一个绘图工具,plotutils: 一个2D矢量图函数库)
*png - 添加libpng库支持 (PNG图片)
portaudio - 添加跨平台的portaudio音频编程接口支持
posix - 添加POSIX兼容函数库支持(啥意思??)
postgres - 添加PostgreSQL数据库支持
ppds - 自动生成打印驱动程序文件
prelude - 启用Prelude入侵检测系统支持
profile - 在建立程序包时候添加profile支持(很可能不同于默认的ebuild)??
*python - 添加Python语言支持
qdbm - 添加qdbm库支持 (QDBM是一个管理数据库的例程库,它参照GDBM为了下述三点而被开发:更高的处理速度,更小的数据库文件大小,和更简单的API)
*qt - 添加Qt库支持 (Qt是一个多平台的C++图形用户界面应用程序框架,Qt也是KDE桌面环境的基础)
*quicktime - 添加OpenQuickTime支持
radius - 添加RADIUS服务器支持(主要用于对远程拨入的用户进行授权和认证,主要针对的远程登录类型有:LDAP、SLIP、PAP、PPP、telnet和rlogin等)
*readline - 使用libreadline库支持 (readline是一个对命令行进行编辑的库,使用命令行的的人一般都需要, 除非你不使用Esc/Alt/Ctrl/Shift键,否则请加上这个参数)
recode - 添加GNU recode库支持 (GNU recode库可以在不同的字符集和它表面的编码间相互转换,可用于PHP)
ruby - 添加Ruby语言支持
samba - 添加SAMBA支持
sapdb - 添加SAP DB数据库支持 (也就是MySQL公司的MaxDB)
sasl - 添加SASL支持 (SASL: 简单认证和安全层)[参考文档:基于cyrus-sasl的认证]
scanner - 添加硬件扫描支持 (比如为kde图形界面构建健全的前端)
*sdl - 添加Simple Direct Layer支持 (多媒体库)
selinux - !!仅功内部使用,只能由selinux的profile文件设置,其他情况下请勿使用!! 提供SELinux支持[参考文档:Linux安全模块简介;SELinux是什么]
session - 添加持久会话支持 (??啥意思??)
sharedext - 为php添加创建共享扩展(shared extensions)支持
sharedmem - 添加使用共享内存段支持
shorten - 添加shorten音频压缩支持
simplexml - 添加simplexml支持 (SimpleXML是php5的一个处理XML的扩展模块,基于GNOME项目的libxml2库)
skey - 启用S/Key认证支持 (??啥东西??)
slang - 添加slang文本显示库支持 (很像ncurses,但不是ncurses)
slp - 为CUPS添加服务定位协议支持
smartcard - 添加智能卡支持
sndfile - 添加libsndfile支持 (libsndfile是一个通过标准接口来读写声音文件的C库)
snmp - 添加SNMP支持 (SNMP: 简单网络管理协议)
soap - 添加SOAP支持 (SOAP: 简单对象访问协议)
sockets - 添加tcp/ip套接字支持
socks5 - 添加socks5代理服务器支持
solid - 添加Solid数据库支持
source - 将源代码打成zip包并安装??
sox - 添加音频格式转换软件SoX支持
speex - 添加speex音频编码器支持
*spell - 添加拼写检查/字典支持
spl - 添加PHP标准程序库(Standard PHP Library)支持
sqlite - 添加SQLite数据库支持 (一个轻量级数据库)
sse - 为PentiumIII级别以上的cpu启用SSE指令集优化支持
*ssl - 添加SSL连接支持 (SSL: 安全套接字层)
static - !!在系统引导过程中切勿使用该参数!! 因为这将导致二进制可执行文件使用静态连接而不是动态连接
svg - 添加SVG支持 (SVG: 可缩放矢量图,那些经常浏览多媒体网站的用户可能需要)
svga - 添加SVGA库支持
sybase - 添加Sybase数据库支持
sybase-ct - 添加Sybase-CT数据库支持
symlink - 强制内核ebuilds自动更新/usr/src/linux符号连接
sysvipc - 添加与System V兼容的进程间通信支持
szip - 使用szip压缩库
tcltk - 添加Tcl/Tk支持(Tcl/Tk 是一种简明,高效,可移植性好的编程语言。在信息产业领域具有广泛的应用。)
*tcpd - 添加TCP包装支持
test - ??使用FEATURES=maketest / FEATURES=test逐步的引入需要运行的包?? ??啥意思??
tetex - 添加teTeX支持(teTeX和LaTeX都是TeX套件,用于排版)
theora - 添加Theora视频压缩编码支持
threads - 在内核中添加线程库支持,通常是pthreads (pthreads: Posix线程库)[参考文档:Linux线程库性能测试与分析;应用2.6内核超线程模式;Linux线程初探]
tidy - 添加HTML Tidy支持 (Tidy: 一个将HTML转换为XHTML的开源工具)
tiff - 添加tiff图片支持
tokenizer - 添加PHP文件分析器支持
*truetype - 添加FreeType/FreeType2字体支持
*truetype-fonts - 添加FreeType2字体支持??(注:该指令存在于make.defaults中,却在use.desc中找不到)
*type1-fonts - 添加FreeType1字体支持??(注:该指令存在于make.defaults中,却在use.desc中找不到)
uclibc - 使用uclibc进行编译和连接 (uClibc是一个现代/稳定/高度兼容的替代Glibc的C库,是针对嵌入式系统开发的,需要的内存比Glibc少)
unicode - 添加Unicode支持
usb - 添加USB支持
v4l - 添加video4linux支持 (内核视频采集接口API)
vanilla - 不添加改变默认行为的额外补丁
vcd - 添加VCD支持
verbose - effects vary across packages(??啥意思??); 通常用于启用在编译时或者运行时的额外的输出信息
vhosts - 添加为虚拟主机环境安装基于Web的应用程序的支持??
videos - 指示portage安装可选的在一些游戏中使用的视频文件
voodoo3 - 添加3Dfx的Voodoo3支持,不然将默认支持Voodoo4/5
*vorbis - 添加OggVorbis音频解码器支持
wddx - 添加WDDX支持 (WDDX是一种基于XML的Web分布式数据交换技术,可用于PHP)
wifi - 添加无线网络支持
win32codecs - 使用win32编码器动态链接库来支持avi/wmv等文件的解码
wmf - 添加wmf矢量图形格式支持
wxwindows - 添加wxWindows/wxGTK支持 (wxWindows是一款C++跨平台图形界面工具箱。wx是一个封装层,一套接口。除了可与Windows“绑定”外,还支持Unix上的GTK+ (wxGTK)、Macintosh (wxMac) 以及 OS/2 等。)
xface - 添加xface支持 (通过在Email信头加入X-Face来显示一个小头像)
xine - 添加XINE电影播放库支持 (XINE是一个可播放众多流媒体文件的播放器)
xinerama - 添加xinerama X11扩展支持,以支持多个显示器
xml - 添加XML库支持(version 1)
*xml2 - 添加XML库支持(version 2)
xmlrpc - 添加xml-rpc库支持
*xmms - 添加XMMS多媒体播放器支持
xosd - 使用X On Screen Display库发送显示信号??
xpm - 添加XPM图形格式支持
xprint - 添加xprint支持,Xprint是一种高级打印系统
xsl - 添加XSL库支持 (version 1)(XSL文档也是XML文档中一种)
*xv - 添加可选的Xvideo扩展支持 (Xvideo是一个X窗口下的视频回放API,可以直接把图像显示在可拖拉的对象里)
xvid - 添加xvid.org的开源mpeg-4编码支持
yahoo - 添加Yahoo Messenger通信协议支持
yaz - 添加可选的用于信息检索的Z39.50协议支持 (YAZ)
zeo - 添加Zope企业版对象支持 (Zope是一个Web应用服务器,用来发布动态的web站点,Zope是用Python写的)
*zlib - 添加zlib(解)压缩支持

# 以下参数不能由用户设置或取消
alpha - 指定64-bit Alpha架构
amd64 - 指定AMD64架构
arm - 指定ARM架构
hppa - 指定HP PA-Risc架构
ia64 - 指定64-bit 安腾架构
mips - 指定MIPS based架构
ppc - 指定PowerPC架构
ppc64 - 指定PowerPC64架构
ppc-macos - 指定操作系统是Mac OS (Jaguar, Panther or Tiger)
s390 - 指定zSeries/s390架构
sh - 指定SuperH架构
sparc - 指定(32-bit) Sparc架构
x86 - 指定x86架构

 

摘于: http://www.linuxdiyf.com/viewarticle.php?id=63596

android运行一个apk

 

建立一个脚本:

sapk.sh

am start -n $1/$1.MainActivity

放到喜欢的位置然后

chmod 755 sapk.sh
ln -s sapk.sh sapk

运行一个apk(在/data/data/下的名字)

sapk ru.meefik.linuxdeploy

 

参数于:http://www.2cto.com/kf/201312/264720.html

SHA-1算法C语言实现

摘于:http://www.linuxsir.org/bbs/thread249790.html

 

/* sha1sum.c - print SHA-1 Message-Digest Algorithm 
 * Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
 * Copyright (C) 2004 g10 Code GmbH
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2, or (at your option) any
 * later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */

/* SHA-1 coden take from gnupg 1.3.92. 

   Note, that this is a simple tool to be used for MS Windows.
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <errno.h>

#undef BIG_ENDIAN_HOST
typedef unsigned int u32;

/****************
 * Rotate a 32 bit integer by n bytes
 ****************/
#if defined(__GNUC__) && defined(__i386__)
static inline u32 rol( u32 x, int n)
{
	__asm__("roll %%cl,%0"
            :"=r" (x)
            :"0" (x),"c" (n));
	return x;
}
#else
#define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) )
#endif


typedef struct {
    u32  h0,h1,h2,h3,h4;
    u32  nblocks;
    unsigned char buf[64];
    int  count;
} SHA1_CONTEXT;



void sha1_init( SHA1_CONTEXT *hd )
{
    hd->h0 = 0x67452301;
    hd->h1 = 0xefcdab89;
    hd->h2 = 0x98badcfe;
    hd->h3 = 0x10325476;
    hd->h4 = 0xc3d2e1f0;
    hd->nblocks = 0;
    hd->count = 0;
}


/*
 * Transform the message X which consists of 16 32-bit-words
 */
static void
transform( SHA1_CONTEXT *hd, unsigned char *data )
{
    u32 a,b,c,d,e,tm;
    u32 x[16];

    /* get values from the chaining vars */
    a = hd->h0;
    b = hd->h1;
    c = hd->h2;
    d = hd->h3;
    e = hd->h4;

#ifdef BIG_ENDIAN_HOST
    memcpy( x, data, 64 );
#else
    { int i;
        unsigned char *p2;
        for(i=0, p2=(unsigned char*)x; i < 16; i++, p2 += 4 ) {
            p2[3] = *data++;
            p2[2] = *data++;
            p2[1] = *data++;
            p2[0] = *data++;
        }
    }
#endif


#define K1  0x5A827999L
#define K2  0x6ED9EBA1L
#define K3  0x8F1BBCDCL
#define K4  0xCA62C1D6L
#define F1(x,y,z)   ( z ^ ( x & ( y ^ z ) ) )
#define F2(x,y,z)   ( x ^ y ^ z )
#define F3(x,y,z)   ( ( x & y ) | ( z & ( x | y ) ) )
#define F4(x,y,z)   ( x ^ y ^ z )


#define M(i) ( tm =   x[i&0x0f] ^ x[(i-14)&0x0f]    \
               ^ x[(i-8)&0x0f] ^ x[(i-3)&0x0f]      \
               , (x[i&0x0f] = rol(tm,1)) )

#define R(a,b,c,d,e,f,k,m)  do { e += rol( a, 5 )   \
            + f( b, c, d )                          \
            + k                                     \
            + m;                                    \
        b = rol( b, 30 );                           \
    } while(0)
    R( a, b, c, d, e, F1, K1, x[ 0] );
    R( e, a, b, c, d, F1, K1, x[ 1] );
    R( d, e, a, b, c, F1, K1, x[ 2] );
    R( c, d, e, a, b, F1, K1, x[ 3] );
    R( b, c, d, e, a, F1, K1, x[ 4] );
    R( a, b, c, d, e, F1, K1, x[ 5] );
    R( e, a, b, c, d, F1, K1, x[ 6] );
    R( d, e, a, b, c, F1, K1, x[ 7] );
    R( c, d, e, a, b, F1, K1, x[ 8] );
    R( b, c, d, e, a, F1, K1, x[ 9] );
    R( a, b, c, d, e, F1, K1, x[10] );
    R( e, a, b, c, d, F1, K1, x[11] );
    R( d, e, a, b, c, F1, K1, x[12] );
    R( c, d, e, a, b, F1, K1, x[13] );
    R( b, c, d, e, a, F1, K1, x[14] );
    R( a, b, c, d, e, F1, K1, x[15] );
    R( e, a, b, c, d, F1, K1, M(16) );
    R( d, e, a, b, c, F1, K1, M(17) );
    R( c, d, e, a, b, F1, K1, M(18) );
    R( b, c, d, e, a, F1, K1, M(19) );
    R( a, b, c, d, e, F2, K2, M(20) );
    R( e, a, b, c, d, F2, K2, M(21) );
    R( d, e, a, b, c, F2, K2, M(22) );
    R( c, d, e, a, b, F2, K2, M(23) );
    R( b, c, d, e, a, F2, K2, M(24) );
    R( a, b, c, d, e, F2, K2, M(25) );
    R( e, a, b, c, d, F2, K2, M(26) );
    R( d, e, a, b, c, F2, K2, M(27) );
    R( c, d, e, a, b, F2, K2, M(28) );
    R( b, c, d, e, a, F2, K2, M(29) );
    R( a, b, c, d, e, F2, K2, M(30) );
    R( e, a, b, c, d, F2, K2, M(31) );
    R( d, e, a, b, c, F2, K2, M(32) );
    R( c, d, e, a, b, F2, K2, M(33) );
    R( b, c, d, e, a, F2, K2, M(34) );
    R( a, b, c, d, e, F2, K2, M(35) );
    R( e, a, b, c, d, F2, K2, M(36) );
    R( d, e, a, b, c, F2, K2, M(37) );
    R( c, d, e, a, b, F2, K2, M(38) );
    R( b, c, d, e, a, F2, K2, M(39) );
    R( a, b, c, d, e, F3, K3, M(40) );
    R( e, a, b, c, d, F3, K3, M(41) );
    R( d, e, a, b, c, F3, K3, M(42) );
    R( c, d, e, a, b, F3, K3, M(43) );
    R( b, c, d, e, a, F3, K3, M(44) );
    R( a, b, c, d, e, F3, K3, M(45) );
    R( e, a, b, c, d, F3, K3, M(46) );
    R( d, e, a, b, c, F3, K3, M(47) );
    R( c, d, e, a, b, F3, K3, M(48) );
    R( b, c, d, e, a, F3, K3, M(49) );
    R( a, b, c, d, e, F3, K3, M(50) );
    R( e, a, b, c, d, F3, K3, M(51) );
    R( d, e, a, b, c, F3, K3, M(52) );
    R( c, d, e, a, b, F3, K3, M(53) );
    R( b, c, d, e, a, F3, K3, M(54) );
    R( a, b, c, d, e, F3, K3, M(55) );
    R( e, a, b, c, d, F3, K3, M(56) );
    R( d, e, a, b, c, F3, K3, M(57) );
    R( c, d, e, a, b, F3, K3, M(58) );
    R( b, c, d, e, a, F3, K3, M(59) );
    R( a, b, c, d, e, F4, K4, M(60) );
    R( e, a, b, c, d, F4, K4, M(61) );
    R( d, e, a, b, c, F4, K4, M(62) );
    R( c, d, e, a, b, F4, K4, M(63) );
    R( b, c, d, e, a, F4, K4, M(64) );
    R( a, b, c, d, e, F4, K4, M(65) );
    R( e, a, b, c, d, F4, K4, M(66) );
    R( d, e, a, b, c, F4, K4, M(67) );
    R( c, d, e, a, b, F4, K4, M(68) );
    R( b, c, d, e, a, F4, K4, M(69) );
    R( a, b, c, d, e, F4, K4, M(70) );
    R( e, a, b, c, d, F4, K4, M(71) );
    R( d, e, a, b, c, F4, K4, M(72) );
    R( c, d, e, a, b, F4, K4, M(73) );
    R( b, c, d, e, a, F4, K4, M(74) );
    R( a, b, c, d, e, F4, K4, M(75) );
    R( e, a, b, c, d, F4, K4, M(76) );
    R( d, e, a, b, c, F4, K4, M(77) );
    R( c, d, e, a, b, F4, K4, M(78) );
    R( b, c, d, e, a, F4, K4, M(79) );

    /* Update chaining vars */
    hd->h0 += a;
    hd->h1 += b;
    hd->h2 += c;
    hd->h3 += d;
    hd->h4 += e;
}


/* Update the message digest with the contents
 * of INBUF with length INLEN.
 */
static void sha1_write( SHA1_CONTEXT *hd, unsigned char *inbuf, size_t inlen)
{
    if( hd->count == 64 ) { /* flush the buffer */
        transform( hd, hd->buf );
        hd->count = 0;
        hd->nblocks++;
    }
    if( !inbuf )
        return;
    if( hd->count ) {
        for( ; inlen && hd->count < 64; inlen-- )
            hd->buf[hd->count++] = *inbuf++;
        sha1_write( hd, NULL, 0 );
        if( !inlen )
            return;
    }

    while( inlen >= 64 ) {
        transform( hd, inbuf );
        hd->count = 0;
        hd->nblocks++;
        inlen -= 64;
        inbuf += 64;
    }
    for( ; inlen && hd->count < 64; inlen-- )
        hd->buf[hd->count++] = *inbuf++;
}


/* The routine final terminates the computation and
 * returns the digest.
 * The handle is prepared for a new cycle, but adding bytes to the
 * handle will the destroy the returned buffer.
 * Returns: 20 bytes representing the digest.
 */

static void sha1_final(SHA1_CONTEXT *hd)
{
    u32 t, msb, lsb;
    unsigned char *p;

    sha1_write(hd, NULL, 0); /* flush */;

    t = hd->nblocks;
    /* multiply by 64 to make a byte count */
    lsb = t << 6;
    msb = t >> 26;
    /* add the count */
    t = lsb;
    if( (lsb += hd->count) < t )
        msb++;
    /* multiply by 8 to make a bit count */
    t = lsb;
    lsb <<= 3;
    msb <<= 3;
    msb |= t >> 29;

    if( hd->count < 56 ) { /* enough room */
        hd->buf[hd->count++] = 0x80; /* pad */
        while( hd->count < 56 )
            hd->buf[hd->count++] = 0;  /* pad */
    }
    else { /* need one extra block */
        hd->buf[hd->count++] = 0x80; /* pad character */
        while( hd->count < 64 )
            hd->buf[hd->count++] = 0;
        sha1_write(hd, NULL, 0);  /* flush */;
        memset(hd->buf, 0, 56 ); /* fill next block with zeroes */
    }
    /* append the 64 bit count */
    hd->buf[56] = msb >> 24;
    hd->buf[57] = msb >> 16;
    hd->buf[58] = msb >>  8;
    hd->buf[59] = msb	   ;
    hd->buf[60] = lsb >> 24;
    hd->buf[61] = lsb >> 16;
    hd->buf[62] = lsb >>  8;
    hd->buf[63] = lsb	   ;
    transform( hd, hd->buf );

    p = hd->buf;
#ifdef BIG_ENDIAN_HOST
#define X(a) do { *(u32*)p = hd->h##a ; p += 4; } while(0)
#else /* little endian */
#define X(a) do { *p++ = hd->h##a >> 24; *p++ = hd->h##a >> 16; \
        *p++ = hd->h##a >> 8; *p++ = hd->h##a; } while(0)
#endif
    X(0);
    X(1);
    X(2);
    X(3);
    X(4);
#undef X
}




int main (int argc, char **argv)
{
    assert (sizeof (u32) == 4);

    if (argc < 2)
    {
        fprintf (stderr, "usage: sha1sum filenames\n");
        exit (1);
    }
    for (argc--, argv++; argc; argv++, argc--)
    {
        FILE *fp;
        char buffer[4096];
        size_t n;
        SHA1_CONTEXT ctx;
        int i;
      
        fp = fopen (*argv, "rb");
        if (!fp)
        {
            fprintf (stderr, "can't open `%s': %s\n", *argv, strerror (errno));
            exit (1);
        }
        sha1_init (&ctx);
        while ( (n = fread (buffer, 1, sizeof buffer, fp)))
            sha1_write (&ctx, buffer, n);
        if (ferror (fp))
        {
            fprintf (stderr, "error reading `%s': %s\n", *argv,strerror (errno));
            exit (1);
        }
        sha1_final (&ctx);
        fclose (fp);
      
        for (i=0; i < 20; i++)
            printf ("%02x", ctx.buf[i]);
        printf ("  %s\n", *argv);
    }
    return 0;
}

/*
Local Variables:
compile-command: "cc -Wall -g -o sha1sum sha1sum.c"
End:
*/

gentoo睡眠休眠不能唤醒

 

继续阅读

Linux程序前台后台切换

1、在Linux终端运行命令的时候,在命令末尾加上 & 符号,就可以让程序在后台运行

root@Ubuntu$ ./tcpserv01 &

 

2、如果程序正在前台运行,可以使用 Ctrl+z 选项把程序暂停,然后用 bg %[number] 命令把这个程序放到后台运行

cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ ./tcpserv01
^Z
[1]+  Stopped                 ./tcpserv01
cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ bg %1
[1]+ ./tcpserv01 &
cat@Ubuntu:~/unp/unpv13e/tcpcliserv$


3、对于所有运行的程序,我们可以用jobs –l 指令查看

cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ jobs -l
[1]+  4524 Running                 ./tcpserv01 &
 

4、也可以用 fg %[number] 指令把一个程序掉到前台运行

cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ fg %1
./tcpserv01


5、也可以直接终止后台运行的程序,使用 kill 命令

cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ kill %1

 

摘于: www.cnblogs.com/wangshuo/archive/2011/04/11/2012620.html

 

android 终端上使用gcc

首先下载个GCC Plugin for C4droid
http://115.com/file/belmf820#

然后安装Android Terminal Emulator或者DropBear SSH Server II,取决于你喜欢在手机上直接操作还是喜欢用电脑ssh上去。


然后把gcc.zip放到手机上的某个地方,比如/data下面。
然后打开解压,并给一些可执行的文件添加可执行属性:


cd /data/
unzip gcc.zip
chmod 755 gcc/bin/*
chmod 755 gcc/libexec/gcc/arm-linux-androideabi/4.6.1/*
chmod 755 gcc/arm-linux-androideabi/bin/*

接着修改下home目录的.profile,添加上这么几行


export GCCHOME="/data/gcc"                                                 
export GCCPATH=$GCCHOME/bin:$GCCHOME/arm-linux-androideabi/bin:$GCCHOME/libexec/  
export PATH=$PATH:$GCCHOME:$GCCPATH

试着写个hello.c


#include <stdio.h>
void main(){
    printf("Hello world!\n");
}

然后编译运行


arm-linux-androideabi-gcc hello.c -o hello
./hello

 

 

摘于: blog.163.com/chen_xin_ming/blog/static/522431420134152175447/

计算两个GPS坐标的距离

#include <math.h>

#ifdef WIN32
#define round(x) floor(x+0.5) 
#endif /*WIN32*/

#define PI 3.1415926535897
static const double EARTH_RADIUS = 6378.137;

//////////////////////////////////////////////////////////////////////////

double rad(double d)
{
	return d * PI / 180.0;
}

double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
	double radLat1 = (double)rad(lat1);
	double radLat2 = rad(lat2);
	double a = radLat1 - radLat2;
	double b = rad(lng1) - rad(lng2);
	double s = 2 * asin(sqrt(pow(sin(a/2),2) +
		cos(radLat1)*cos(radLat2)*pow(sin(b/2),2)));
	//
	s = s * EARTH_RADIUS;
	s = round(s * 10000) / 10000;
	return s;
}

摘于:www.cnblogs.com/xuanfeng/archive/2010/04/20/1716431.html 

#5楼 2013-07-25 23:26 by 国之将亡五毛成灾  

我只是摘过来写为C语言。

gentoo 编写 ebuild

简介:
整理的文章,原文来自 http://zh.gentoo-wiki.com/index.php?title=HOWTO_Write_Ebuilds&variant=zh-cn介绍了如何编写 ebuild ,从而建立一个你私人的overlay,用于你个人的软件库 。


首先我们需要有一个地方来放置自己私人的Ebuild,所以我们先来学习一下如何建立一个overlay.

mkdir -p /usr/portage/local/myebuilds echo PORTDIR_OVERLAY=”/usr/portage/local/myebuilds” >> /etc/make.conf 

现在举一个例子,假设你正在写一个简单的脚本来实现自动unmask软件包

#!/bin/sh
# version 0.1 echo “$1 ~x86″ >> /etc/portage/package.keywords      

你还为这个脚本写了一个简单的使用说明.

首先我们需要为自己写的脚本进行归类管理,所以我们先看一下系统中是否已有一个合适的类别来放置这种脚本.

ls /usr/portage      

好,app-portage看起来是个合适的类别,所以我们在自己的overlay中建立一个名为app-portage的目录.

mkdir /usr/portage/local/myebuilds/app-portage

现在,我们要为这个脚本命名,”unmask”看来是个挺不错的名称,当然在决定使用这个名称之前我们要先确认一下这个名称是不是 已经被别人使用过了:

emerge unmask -p
These are the packages that would be merged, in order:

Calculating dependencies
emerge: there are no ebuilds to satisfy “unmask”.

看来这个名称暂时还没有人用过,所以我们建立一个名为unmask的目录,并进入该目录.

mkdir /usr/portage/local/myebuilds/app-portage/unmask
cd /usr/portage/local/myebuilds/app-portage/unmask        

我 们需要一个空间来存放我们刚才写的脚本。一般的软件都有自己的项目主页,源代码应该放在项目主页空间里。这里为了简单起见,就直接把软件源代码包 放在/usr/portage/distfiles里。软件源代码包下载下来之后,都会被放在/usr/portage/distfiles里。 建立压缩包。压缩包的名字要包含软件版本:

mkdir /tmp/unmask-0.1
cp /path/to/unmask /path/to/readme /tmp/unmask-0.1
cd /tmp
tar jcvf unmask-0.1.tar.bz2 unmask-0.1

然后,复制它到正确的位置

cp /tmp/unmask-0.1.tar.bz2 /usr/portage/distfiles

好,启动你最喜欢的编辑器来编写该ebuild.ebuild的名称就是该包的名称(unmask),-及版本号(0.1)

nano unmask-0.1.ebuild

每个ebuild都是以一系列的变量声明作为开始的,其实至少包括下面这些变量:

SLOT="0"         # 通常这里写成0就可以了,这主要用于GCC,emacs这类可以多版本共存的软件包
LICENSE="GPL-2"  # 软件许可协议
KEYWORDS="~x86"  # 这只是个简单的脚本,所以在各种架构上都应该是可以正常运行的,不过,我们只想在x86
                 # 上测试它,并且所有起始的ebuild都应该先进行测试,所以只写上~x86
DESCRIPTION=”A simple script to unmask packages” # 这是对你的软件包进行的简短说明
SRC_URI="http://abc.org/${P}.tar.bz2"      # 这个地址应该指向该软件包可以下载的链接。
                 # 本例中软件包已经放在/usr/portage/distfiles里了,所以emerge不会从这个地
                 # 址下载文件。再加上本来我们这个软件就没有主页,所以就用abc.org代替,正式的
                 # ebuild里应该写上正确的地址。
HOMEPAGE=""      # 这个就没什么好说的了,如果你在某个站点发布你的软件,那在这里加上网站的链接就是了
IUSE="doc"       # 这里设置USE标记,较为复杂,这里就只加一个doc作例子了

接下去,我们要加入几个函数,emerge安装这个包时时将会依次调用它们.

# src_unpack() # 这个函数用于解压源代码过程中打补丁
# src_compile() { } #如果你需要编译什么东西,就在这个函数中完成.
src_install()
{
  dosbin unmask # 使用dosbin将目标程序安装到/usr/sbin/目录,相应的,如果要安装到/usr/bin,
                # 可以使用dobin,这是ebuild本身提供的几个简单的安装函数,可以在man 5 ebuild
                # 中查到它们
  if use doc; then                  #如果使用doc这个USE标记,我们就把readme也复制进去.
    dodoc readme # dodoc也是ebuild脚本所提供的一个安装文档的函数,它会自动创建
                 # /usr/share/doc/${PF}并且将文档安装进去
  fi
}

最后我们需要建立一个清单,很简单:

ebuild unmask-0.1.ebuild digest
emerge unmask

这里你可以找到一个很不错的ebuild例子:/usr/portage/skel.ebuild 关于更多的变量和函数,参阅: "The Official Ebuild HOWTO" 也可以参阅: http://devmanual.gentoo.org/ 或在freenode的 #gentoo-dev-help频道中寻求帮助.

  1. 建立一个overlay

  2. 目录

  3. 文件

  4. 进入正题–Ebuild

  5. 建立一个清单

  6. 测试它

  7. 其他帮助


附言 By yyc:
其实 portage 中提供了很多的辅助函数,例如 econf, emake, einstall等等,由这些辅助函数就可以很轻松的完成一个简单的 ebuild 的编写工作,下面是一个简单的模版,可以在这个的基础上进行逐步的添加,从而形成一个丰富完整的 ebuild:

# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/gnome-base/gconf/gconf-2.26.2-r1.ebuild,v 1.10 2010/07/20 15:32:51 jer Exp $  DESCRIPTION="(>>FILE<<)" DOCS="AUTHORS ChangeLog NEWS README TODO" EAPI="2" HOMEPAGE="http://www.bukengnikengshui.com/(joke)" IUSE="doc" KEYWORDS="amd64 x86" LICENSE="LGPL-2" SLOT="0" SRC_URI="http://abc.org/${P}.tar.bz2"  src_configure(){      local myconf      myconf="${myconf} --prefix=/usr --sysconfdir=/etc"      econf ${myconf}  }  src_compile(){     emake -j3 || dir "Make failed." }  src_install() {     einstall }      




Author:yangyingchao, 2010-10-09

 

http://blog.163.com/vic_kk/blog/static/4947052420109932141528/

 

linux 下更快的vnc

在GENTOO下的kde自带的远程桌面速度实在太慢了,不知道是不是我能力 问题,网上找了一段时间,终于能找到个好的,那就是X11VNC

 

https://wiki.archlinux.org/index.php/X11vnc_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29

aMule 添加服务器

方法之一:

在“选项”—“服务器”里面,然后点击第3项后面的“列表”,会打开写字板,把以下的每日更新的服务器列表拷贝到里面:

http://www.srv1000.com/x1/server.met

http://emule.945.cn/server.met

http://www.edk-files.com/x1/server.met

方法之二:
推荐一个每天都更新的世界服务器列表的网站:

http://ed2k.2x4u.de/index.html

connect list: server.met (add to eMule) 2.9kB (25 servers)
best servers: server.met (add to eMule) 6.7kB (63 servers)
all servers: server.met (add to eMule) 9.9kB (94 servers)

选择.met 添加即可。

One thought on “aMule 添加服务器

 

 

摘于: http://blog.guoshuang.com/amule-%E6%B7%BB%E5%8A%A0%E6%9C%8D%E5%8A%A1%E5%99%A8.html