Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2484906
  • 博文数量: 609
  • 博客积分: 10061
  • 博客等级: 上将
  • 技术积分: 5920
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-25 08:30
文章分类

全部博文(609)

文章存档

2010年(13)

2009年(39)

2008年(558)

我的朋友

分类: LINUX

2008-08-25 13:17:26

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一般会用新文件覆盖掉旧文件,除非这些旧文件位于受保护的位置里。这些受保护的位置由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等等。

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

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

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

2.e. Gentoo的设置

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

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

2.f. Portage的行为

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

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

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

$ man nice

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

阅读(1261) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~