开源中文网

您的位置: 首页 > Gentoo > 正文

gentoo学习笔记之make.conf

来源:  作者:

make.conf是gentoo的核心配置文件。可以在这里定义一些最为重要的环境变量。比如CFLAGS CXXFLAGS USE等等。


CFLAGS 定义了c语言程序的优化参数。gcc编译器提供了很多优化参数,但是他的优化会带来各种各样莫名其妙的问题。所以要选择一些比较安全的优化选项,以便在性 能和稳定性上找到平衡点。一般刚装好gentoo时默认的是CFLAGS="-O2 -march=i686 -pipe"CXXFLAGS="${CFLAGS}", 其中-O2表示的是优化级别,如果需要更多的优化,就用O3,再高了可能就有很多问题了,-march=xxx这个是指明你机子的架构,象我是酷睿的就用 -march=core2。需要注意的是,这个只有在gcc4.3.2及以上版本才可以用-march=core2。所以最好还是升级gcc吧,升级 gcc的风险性很高,我觉得最好在刚装好系统的时候就升级,那时候还不用emerge -e system 等到日子长了,这个过程将会十分十分漫长。-pipe是用来加快编译速度用的,一般都加。还有-fomit-frame-pointer 等等这些。一般CXXFLAGS使用跟CFLAGS一样的设置就可以了。

然后再说说十分重要的 USE标记。
很多时候需要设置很多USE标记才能编译出一个你想要的程序。比如你要装kde4,那么在emerge qt:4的时候就要上USE=“ accessibility dbus gif jpeg png qt3support ssl zlib opengl”这样你编译出的qt库才可能支持所有kde的特性。然后emerge kdebase-startkde时,要加上USE="kdeprefix",否则很可能会不能用。可见USE标记之重要,USE标记可以在很多地方定义。一般我们修改的是make.conf 和portage.use。其中make.conf是全局的,而portage.use则是针对单一软件进行设定。为了防止冲突,最好在 portage.use里指明每个东西需要的use,尽量少在make.conf里进行定义。

ACCEPT_KEYWORDS="~x86"可以获得 x86平台的最新软件,亦即官方所说的unstable的软件。虽然是unstable的,但是gentoo会放进portage的都已经是经过测试的了。

CLEAN_DELAY = 整数决定执行 `emerge clean' 后的倒数计时延迟。预设为 5 秒。

CONFIG_PROTECT = [空格分隔的数据夹清单]所有在这里定义的数据夹将被启动 "设定档保护"。请参考 `emerge--help config' 取得更多信息。

CONFIG_PROTECT_MASK = [空格分隔的数据夹清单]所有在此定义的数据夹将被取消 "设定档保护"。请参考 `emerge--help config' 取得更多信息。

DEBUGBUILD若定义此选项,Portage 将在安装之前帮二进制及函式库文件作瘦身动作(strip)。

DISTDIR = [路径]定义本机原始码档案的存放处。预设为 ${PORTDIR}/distfiles。

FEATURES = "sandbox ccache autoaddcvs"设定 Portage 的预设行为。这些选项不该被开发人员或系统维护人员以外的使用者改变。`sandbox' 是个非常重要的功能,所以请将它预设开启。这是个递增型变数。autoaddcvs让 Portage 自动尝试将之后要加入 cvs 的档案加入 cvs。这个选项只在制成时期有用,并且要求 FEATURES 中有 cvs 选项。buildpkg自动制作安装的套件的二进制套件文件。ccache 启动 Portage 的 ccache 支持。若使用者环境设定中未指定ccache 数据夹,则会使用预设的 ${PORTAGE_TMPDIR}/ccache (若 userpriv 有设定) 或 /root/.ccache (没有 userpriv)。cvs 开发人员专用设定,使 Portage 启用所有 USE 旗标,以及制作SRC_URI 底下所有档案的检查码。digest 自动制作套件的检查码。distcc 启动 Portage 的 distcc 支持。fixpackages执行修复所有二进制代码套件依存性的命令稿。这个动作会在每次Portage 目录树有变更的时候执行。请注意,此指令可能要执行很久。keeptemp安装完成之后不要清理 ${T} 目录。keepwork安装完成之后不要清理 ${WORKDIR} 目录。mirror 即使档案已经存在 DISTDIR 中,还是执行 FETCHCOMMAND。noauto 当利用 ebuild(1) 的时候,只执行要求的步骤。noclean 在安装之后不要清理原始码以及暂存影像目录中的数据。nostrip避免对安装至现有系统的二进制文件进行瘦身 (strip)。notitles不要将目前的状态讯息显示在 xterm 标题列。sandbox 于执行 emerge(1) 和 ebuild(1) 时启动沙箱 (sandbox) 功能。strict 让 Portage 对套件作严密的检查 (如回报不存在或错误的Manifest)。userpriv让 Portage 以 portage:portage (非 root 权限) 编译套件。但是不会启用沙箱功能。若 usersandbox 也被定义,使用者沙箱才会启动。usersandbox在以非 root 权限 (userpriv) 编译时启动沙箱功能。

FETCHCOMMAND设定用来从因特网下载档案的指令。

GENTOO_MIRRORS = [网址]输入您想使用的本地端镜像站,Portage 将会从这些站点下载原始码档。您可以指定一个以上的网址,请用空白分隔。安装 `mirrorselect',它可以帮助您选择镜像站。

HTTP_PROXY FTP_PROXY = [host:port]这些选项只在您要使用 proxy 的时候才必须设定,而且只在您使用wget(1) 或其它工具下载档案的时候会用到。请设定 PROXY,或HTTP_PROXY 及 FTP_PROXY。

MAKEOPTS若您想启动平行编译,可以在这个变量中指定数量。例如,您使用双处理器系统,透过将此变量设为 "-j2" 或 "-j3",可以加快许多套件编译的速度。建议的设定是从 CPU+1 至 2*CPU+1。请参考 make(1) 取得更多信息。
NOCOLOR = ["true" "false"]设定是否不使用颜色。预设为 false。

PKG_TMPDIR = [路径]emerge 会将解开的 .tbz2 套件暂时放在这里,之后才安装至系统中。

PKGDIR = [路径]做好的 .tbz2 二进制代码套件档会被放在这里,要从二进制套件文件安装的时候也会先从这个目录找起。预设为 ${PORTDIR}/packages。

PORT_LOGDIR = [路径]设定存放 ebuild 纪录的数据夹,Portage 会将每次 ebuild 执行的纪录分开放在这里,并且只会在这个变量有定义、而且数据夹可以写入的状况下纪录。

PORTAGE_BINHOST = [URL]设定 Portage 下载预先编译好的二进制套件文件的位置。这个清单只能有一笔纪录,告知下载 .tbz2 预编套件位置的完整 URL。这个变数只有在指定 emerge 下载二进制套件文件的时候会用到。请看 emerge(1),里面有更详细的说明。请注意,这个 URL 应该指至服务器上的 `All' 数据夹,而不是 PKGDIR 的底层。

PORTAGE_NICENESS = [数字]这个变量内的数值会被加在 Portage 执行阶段的 `好心度' (nice level,决定优先权的条件之一) 上。意思是说,这个数字并不直接等于程序的好心度,而是预设的好心度加上这个数值。请参考 nice(1) 取得有关好心度的信息,以及允许的数值范围。

PORTAGE_TMPDIR = [路径]设定编译暂存路径。预设为 /var/tmp。

PORTDIR = [路径]设定 Portage 目录树的位置预设为 /usr/portage。

PORTAGE_OVERLAY = "[路径] [其它路径] [诸如此类...]"设定使用者自行制作的 ebuild 的存放处。这些 ebiuld 不该在每次`emerge sync' 之后被清除,所以必须跟官方 Portage 目录树分开存放。值的格式为空格分隔的数据夹清单。预设为没有任何目录。

RESUMECOMMAND设定用来继续下载上次 FETCHCOMMAND 没下载完档案的指令。

ROOT = [路径]设定安装套件以及 ebuild 的目标档案系统位置。基本上,您应该在环境变量中指定,而不是直接在 /etc/make.conf 中设定。提供这个设定是为了方便建立新的编译影像。预设为 /。

RSYNC_EXCLUDEFROM = "/etc/portage/rsync_excludes"Portage 将在更新 Portage 目录树时把此档案传送给 rsync(1)。指定那些档案或目录应被排除在同步处理之外。若您不够小心,设定这个变量可能造成依存性失败。档案的格式是一行一个句型,空行以及 `;'、或 `#'开头的行会被解释为批注。查询 rsync(1) 取得更多信息。

RSYNC_RETRIES = [数字]当 rsync 联机失败时,要重试的次数。预设为 3 次。

RSYNC_TIMEOUT = [秒]设定 rsync 在判定联机逾时之前的等待时间。拨接使用者可能必须设为300 秒以上。预设为 180 秒。

RPMDIR = [路径]设定制作出的 RPM 套件档存放处。预设为 ${PORTDIR}/rpm。

SYNC = [RSYNC]在此插入您最喜爱的 rsync 镜像站。这是在执行 `emerge sync' 时用来同步本机 Portage 目录树时用的服务器。预设为 rsync://rsync.gentoo.org/gentoo-portage。

USE = [空格分隔的 USE 旗标]这个变量包含控制多个套件的编译行为的选项。ebuild(5) 里面有更多选项。可以使用的 USE 旗标在 /usr/portage/profiles/use.desc 中可以找到。USE_ORDER = "env:pkg:conf:auto:defaults"决定 USE 递增的顺序。上面的设定会以这个顺序递增:环境设定 (env)、套件设定 (pkg)、make.conf (conf)、安装套件自动产生的 USE(auto)、最后是 make.default (defaults)。

Tags:gentoo 学习笔记 make_conf
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明