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)。
阅读(1480) | 评论(1) | 转发(0) |