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

2. 通过变量来配置

内容:

2.a. Portage的配置

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

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

$ man make.conf

2.b. 构建相关的选项

配置和编译器选项

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

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就会从网络上获取数据。含有这些信息和数据的服务器的位置定义在以下变量中:

第3个变量设定rsync服务器的地址,此服务器用来更新你的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命令相关的变量:

更多有关这些参数的信息请阅读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”。