Portage TMPDIR on tmpfs
When emerging packages it is possible to build them in tmpfs (RAM) space instead of having build files pushed and pulled to Hard Disk Drive (HDD) or Solid State Drive (SSD) space. Building in tmpfs both speeds up emerge times and reduces HDD/SSD wearing. For system's containing SSDs, it is generally a good idea to have Portage compile using tmpfs (RAM) instead burning up precious SSD write cycles (especially on something like compiling software).
fstab Configuration
Mount Portage's TMPDIR
to tmpfs by adding the following to the system's /etc/fstab config file:
/etc/fstab
tmpfs fstab exampletmpfs /var/tmp/portage tmpfs uid=portage,gid=portage,mode=775,size=2048M,noatime 0 0
Adjust the size
parameter /etc/fstab to the desired amount of RAM. Systems with large amounts of RAM can increase the number quite significantly.
After /etc/fstab has been modified, mount Portage's TMPDIR to RAM by running the mount command followed by the directory location outline in fstab:
root #
mount /var/tmp/portage
Considering tmpfs' Size
The system's tmpfs space should be large enough to handle the largest packages to be compiled on the system. If the tmpfs space were to ever become completely full then the emerge will fail. Most packages do not need more than 1 GB of tmpfs space their compiles, but there are few very large packages. If you have a lot of RAM, setting Be careful to include enough tmpfs space when installing the following packages:
app-office/openoffice: 10GBs or so.
www-client/chromium: More than 2GBs.
sys-devel/gcc: More than 4 GiB.
Per-Package Choices at Compile Time
Portage can be configured to build large packages outside of the tmpfs space on a per-package basis.
Create a file to tell Portage where to place the temporary files directory:
/etc/portage/env/notmpfs.conf
PORTAGE_TMPDIR="/var/tmp/notmpfs"
Create a separate temporary file directory outside of the tmpfs mount location:
mkdir /var/tmp/notmpfs && chown portage:portage /var/tmp/notmpfs && chmod 775 /var/tmp/notmpfs
Create a special Portage file called package.env in /etc/portage and list all the packages that are too large to be compiled using tmpfs:
/etc/portage/package.env
app-office/libreoffice notmpfs.conf mail-client/mozilla-thunderbird notmpfs.conf www-client/chromium notmpfs.conf