Gentoo Logo

声明: 本手册已经被新版本代替了,不再被维护。


[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


2. 通过变量来配置

内容:

2.a. Portage的配置

如前面所述,你可以在/etc/make.conf中定义许多变量来配置Portage。请参考make.conf的手册页以获得更详细和完整的信息:

代码 1.1: 阅读make.conf的手册页

$ man make.conf

2.b. 构建相关的选项

配置和编译器选项

当Portage构建应用程序时,他会将下面变量的内容传给编译器和configure脚本:

  • CFLAGS和CXXFLAGS定义了编译器编译C和C++程序所使用的参数。
  • CHOST为程序的configure脚本定义了build和host信息。
  • MAKEOPTS参数被传递给make命令,通常用来设定编译时并行处理线程的数量。更多关于make的参数可在make的手册页中找到。

USE变量也会在配置和编译的过程中被用到,不过这在前面的章节中已经详细解释过了。

安装相关选项

当Portage在安装了一个某软件的新版本后,会把属于旧版本的已经过时的文件从你的系统中删除。在此之前Portage会给用户5秒钟时间撤销此操作,这5秒钟由CLEAN_DELAY变量定义。

你可以通过设定EMERGE_DEFAULT_OPTS变量以使emerge每次运行时都使用某些特定的选项。一些常用的选项是--ask,--verbose,--tree,等等。

2.c. 配置文件的保护

Portage的保护位置

Portage一般会用新文件覆盖掉旧文件,除非这些旧文件位于受保护的位置里。这些受保护的位置由CONFIG_PROTECT变量设定,通常是配置文件的位置。在设置时,多个目录间用空格分开。

当受保护的位置里的文件有新版本时,新文件被保存前将会被更名,同时用户会被告知此新配置文件的存在。

你可以利用emerge --info来获得目前CONFIG_PROTECT的设置:

代码 3.1: 获得CONFIG_PROTECT的设定

$ emerge --info | grep 'CONFIG_PROTECT='

更多关于Portage配置文件保护的信息可以查看emerge手册页的CONFIGURATION FILES部分:

代码 3.2: 更多关于Portage配置文件保护的信息

$ man emerge

解除对某些目录的保护

你可以通过变量CONFIG_PROTECT_MASK来解除对受保护目录下某些子目录的保护。

2.d. 下载的选项

服务器的地址

当你的系统上没有所需要的信息和数据时,Portage就会从网络上获取数据。含有这些信息和数据的服务器的位置定义在以下变量中:

  • GENTOO_MIRRORS定义了一些提供源代码(distfiles)的服务器地址。
  • PORTAGE_BINHOST定义了一个特定的服务器地址,此服务器可为你的系统提供预先编译好的软件包。

第3个变量设定rsync服务器的地址,此服务器用来更新你的Portage树:

  • SYNC定义了一个特定的服务器,Portage用此服务器获取Portage树。

GENTOO_MIRRORS和SYNC变量可以由程序mirrorselect自动设定。首先你要emerge mirrorselect。更多信息参考mirrorselect的在线帮助:

代码 4.1: 更多关于mirrorselect的信息

# mirrorselect --help

如果你需要使用代理服务器,你可以用http_proxy、ftp_proxy和RSYNC_PROXY变量来设定它们。

获取源代码的命令

当Portage需要获取源代码时,默认使用wget来下载。你可以通过定义FETCHCOMMAND变量来改变它。

Portage支持断点续传。默认是使用wget来实现,但你可以通过定义RESUMECOMMAND来变量来改变它。

确保你的FETCHCOMMAND和RESUMECOMMAND把源代码存放到正确的位置。在这些变量中你应该用\${URI}和\${DISTDIR}分别指定源代码和distfiles的位置。

你可以对不同的传输协议使用不同的设置,相关的参数有FETCHCOMMAND_HTTP、FETCHCOMMAND_FTP、RESUMECOMMAND_HTTP和RESUMECOMMAND_FTP等等。

Rsync的设置

你不能改变Portage用来更新Portage树所使用的rsync命令,但你可以设定一些与rsync命令相关的变量:

  • PORTAGE_RSYNC_OPTS定义了一些在sync过程中使用的变量,变量之间用空格分开。不要做任何改变除非你十分清楚会有什么后果。注意某些必要的选项总会起作用,即使PORTAGE_RSYNC_OPTS的设置是空的。
  • PORTAGE_RSYNC_EXTRA_OPTS可以用于在同步过程中设置附加选项。选项之间用空格分开。
    • --timeout=<number>: 这里设定rsync连接超时的秒数。此变量默认为180秒。如果用户是使用拨号上网或者一台处理速度慢的电脑,这个值需要设到300或者更高。
    • --exclude-from=/etc/portage/rsync_excludes: 这个参数指定一个文件,内容是rsync在更新过程中需要忽略的软件包和/或者类别的列表。这个例子指定的是/etc/portage/rsync_excludes。请参考使用Portage树的子集以了解此文件的格式。
    • --quiet: 减少屏幕输出
    • --verbose: 在屏幕上输出完整的文件列表
    • --progress: 为每个文件显示一个进度条
  • PORTAGE_RSYNC_RETRIES定义了rsync程序试图连接到由SYNC变量所指定的服务器的次数,默认为3。

更多有关这些参数的信息请阅读man rsync.

2.e. Gentoo的设置

分支的选则

你可以用ACCEPT_KEYWORDS变量改变默认的系统分支。此变量的默认设置为你的电脑体系结构的稳定分支。更多关于Gentoo分支的信息可以在下一章节找到。

Portage的特性

你可以通过FEATURES变量激活Portage的某个特性。这些已在前面的章节中讨论过,如Portage的特性.

2.f. Portage的行为

资源管理

通过PORTAGE_NICENESS变量,你可以增加或减少Portage运行时的nice值。PORTAGE_NICENESS变量的值会被加到目前的nice值上。

更多关于nice值的信息, 请参考nice的手册页:

代码 6.1: 更多关于nice的信息

$ man nice

输出行为

NOCLOR变量的默认值为“false”,如果你想禁用Portage的彩色输出,请把这个变量设为“true”。


[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


打印

查看全部

更新于2009年 7月 11日

本翻译已经不再被维护

总结: 你可以通过在配置文件里或者环境变量里设定的各种变量来全面的配置Portage。

Sven Vermeulen
作者

Grant Goodyear
作者

Roy Marples
作者

Daniel Robbins
作者

Chris Houser
作者

Jerry Alexandratos
作者

Seemant Kulleen
Gentoo x86开发人员

Tavis Ormandy
Gentoo Alpha开发人员

Jason Huebel
Gentoo AMD64开发人员

Guy Martin
Gentoo HPPA开发人员

Pieter Van den Abeele
Gentoo PPC开发人员

Joe Kallar
Gentoo SPARC开发人员

John P. Davis
编辑

Pierre-Henri Jondot
编辑

Eric Stockbridge
编辑

Rajiv Manglani
编辑

Jungmin Seo
编辑

Stoyan Zhekov
编辑

Jared Hudson
编辑

Colin Morey
编辑

Jorge Paulo
编辑

Carl Anderson
编辑

Jon Portnoy
编辑

Zack Gilburd
编辑

Jack Morgan
编辑

Benny Chuang
编辑

Erwin
编辑

Joshua Kinard
编辑

Xavier Neys
编辑

Joshua Saddler
编辑

Gerald J. Normandin Jr.
审校

Donnie Berkholz
审校

Ken Nowack
审校

Lars Weiler
投稿

Tobias Scherbaum
编辑

杨珂
译者

沈辰俊
译者

叶宝泰
译者

张乐
译者

余雷
译者

王国辉
译者

娄东斌
译者

贾震
译者

杨小广
译者

余鈺炜
译者

陈代焱
译者

范华
译者

陈永骥
译者

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Edurium
Copyright 2001-2010 Gentoo Foundation, Inc. Questions, Comments? Contact us.