Создадим скрипт /usr/sbin/temerge следующего содержания
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
#!/bin/bash MEMSIZE=10G # Максимальный размер tmpfs mounted=false . /etc/portage/make.conf . /etc/init.d/functions.sh if [ -z "$PORTAGE_TMPDIR" ]; then PORTAGE_TMPDIR="/var/tmp/portage" fi mounttmpfs() { mount -t tmpfs -o size=$MEMSIZE,nr_inodes=1M tmpfs ${PORTAGE_TMPDIR} mounted="true" mkdir /var/tmp/portage/.distcc } compile() { einfo "running emerge ${*}" emerge ${*} } unmount() { ebegin "unmounting tmpfs" umount -f ${PORTAGE_TMPDIR} eend $? } ebegin "Mounting $MEMSIZE of memory to ${PORTAGE_TMPDIR}" if [ -z "$(pgrep -f /usr/bin/emerge)" ];then if [ -z "$(mount | grep ${PORTAGE_TMPDIR})" ];then mounttmpfs else eerror "tmpfs already mounted!" exit 0 fi else eerror "emerge already running!" exit 0 fi eend $? run emerge compile $@ umount tmpfs if $mounted; then unmount fi |
Не забываем выполнить
1 |
chmod +x /usr/sbin/temerge |
Использовать вместо emerge