Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42090
  • 博文数量: 13
  • 博客积分: 1956
  • 博客等级: 上尉
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-05 23:06
文章分类

全部博文(13)

文章存档

2011年(3)

2010年(5)

2008年(5)

我的朋友

分类: LINUX

2008-12-22 21:37:13

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 等等这些,有兴趣自己研究gcc编译器吧。这东西够研究好长时间了。
一般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)。
阅读(3825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~