From Funtoo
Jump to navigation Jump to search
This page is a translated version of the page Make.conf and the translation is 35% complete.
Other languages:
English • ‎español • ‎português do Brasil • ‎中文(中国大陆)‎

什么是 make.conf 文件?

Make.conf 是 portage 和 Funtoo 的主要配置文件。它包含了许多变量,用来定义如何在 Funtoo 系统中安装一个软件包。你可以自定义 portage 的内部变量,如 portage 树的位置,源码包的位置,覆盖等等。你可以自定义硬件规格,如 TMPFS、磁盘限制、GCC 编译标记以达到最佳性能等。大量的自定义工作是通过 make.conf 文件完成的。本页将尝试解释 make.conf 文件的用途,可以添加到其中的不同变量,以及它们的用途。

Where is make.conf located?

make.conf is located in /etc and is a symbolic link to /etc/portage/make.conf, so these filenames are used interchangeably.

No special tool is required to edit /etc/portage/make.conf, besides your favorite text editor, of course:

root # nano /etc/portage/make.conf


Portage is very cutomizable. Because of this, many variables are available to configure /etc/portage/make.conf. Below is an example make.conf file showing some of the variables that can be used to customize portage. The format of a line of this file is usually VARIABLENAME="variable arguments".

   /etc/portage/make.conf - example make.conf variables
CFLAGS="-march=amdfam10 -O2 -pipe"
CXXFLAGS="-march=amdfam10 -O2 -pipe"
VIDEO_CARDS="vesa nouveau"
USE="mmx sse"

Portage has built-in check for CPU's cores and enables MAKEOPTS automatically, if not set. In make.conf you may increase or decrease the value, when needed, otherwise it's set to -j(core number)

Below is a list of variables that can be used in make.conf, along with a description of what they do. For more information on these and other variables, read man make.conf.


   /etc/portage/make.conf - accept all licenses

Relocate Source Compile Directory

By default portage unpacks and compiles sources in /var/tmp/ it appends portage/pkg-cat/pkg to compile a package elsewhere. For example, if portage compiles a package in /tmp, it will be built at: /tmp/portage/pkg-cat/pkg. If you have Funtoo installed on an SSD, it may be a wise decision to mount /tmp in RAM or on a HDD so that you can minimize the number of writes to your SSD and extend its lifetime. After /tmp has been mounted off of your SSD, you can tell portage to compile future packages in /tmp, instead of in /var/tmp. To do this, add the following line to your /etc/portage/make.conf:



The VIDEO_CARDS variable tells portage which video drivers you wish to use on your system. To see the different options that exist for this variable, see Video.

Laptop Mice

See x11-drivers/xf86-input-synaptics for laptop mice & touch pads.


MAKEOPTS can be used to define how many parallel compilations should occur when you compile a package, which can speed up compilation significantly. By default, this variable is set to the number of cores (or CPU threads) in your system plus one. If for example you have a dual core processor without hyper-threading, then MAKEOPTS would be set to 3, which could be done manually as follows:

   /etc/portage/make.conf - set portage to use 3 threads

如果不确定有多少个处理器或线程,那么使用 /proc/cpuinfo 来帮助你。

(chroot) # grep "processor" /proc/cpuinfo

USE 标记

USE flags define what functionality is enabled when packages are built. It is not recommended to add a lot of them during installation; you should leverage Funtoo Profiles instead as much as possible and only set as needed. A USE flag prefixed with a minus (" - ") sign tells Portage not to use the flag when compiling. Through use flags we generate more secure stripped down binaries with reduced attack surface and better performance. A Funtoo guide to USE flags will be available in the future. For now, you can find out more information about USE flags in the Gentoo Handbook.


Some devices need defined such as x11-drivers/xf86-input-synaptics for touch pads.

   /etc/portage/make.conf - synaptics example
INPUT_DEVICES="synaptics evdev"


Available options can be found on Funtoo Linux Localization.