История изменений
Исправление megabaks, (текущая версия) :
А ты скриптик напиши, а он дальше сам всё сделает.
написал :3
#!/bin/bash
RAM_DIR="${PWD%/*}/RAM"
mkdir "${RAM_DIR}"
SOURCE_DIR="${PWD}"
mount -t tmpfs tmpfs ${RAM_DIR}
#####################################################
##### copy sources over symlinks into RAM_DIR #######
for i in $(ls -A);do
cp -Rs ${SOURCE_DIR}/${i} ${RAM_DIR}/${i}
done
cd "${RAM_DIR}"
#####################################################
##### config ########################################
[[ ! -f .config ]] && zcat /proc/config.gz > .config
if [[ -z "${1}" ]];then
make oldconfig
else
make ${1}
fi
#####################################################
##### compiling #####################################
threads="$(( $(awk '/^cpu cores/ {print $4}' /proc/cpuinfo | uniq) + 1 ))"
make -j${threads}
#####################################################
##### copy generated files back into SOURCE_DIR #####
rsync --checksum --recursive --links --safe-links \
--exclude='*.o' \
--exclude='*.cmd' \
--exclude='*.builtin' \
--exclude='*.order' \
--exclude='*.mod' \
${RAM_DIR}/ ${SOURCE_DIR}/
cd "${SOURCE_DIR}"
umount "${RAM_DIR}"
rm -rf "${RAM_DIR}"
- «сорсы» в раме оказываются мгновенно, в отличии от реального копирования
- занимаемое место стремится к нулю, а это очень даже гуд
при сборке все временные файлы в раме
при «установке» на винт падают только реально нужные файлы и линки
в моём случае временных файлов 6000+ на 150+ метров
и приятный бонус - сборка происходит быстрей, хоть и в пределах погрешности
P.S. впринципе это дело можно прикрутить к любой сборке
/me доволен :3
Исходная версия megabaks, :
готово
А ты скриптик напиши, а он дальше сам всё сделает.
написал :3
#!/bin/bash
RAM_DIR="${PWD%/*}/RAM"
mkdir "${RAM_DIR}"
SOURCE_DIR="${PWD}"
mount -t tmpfs tmpfs ${RAM_DIR}
#####################################################
##### copy sources over symlinks into RAM_DIR #######
for i in $(ls -A);do
cp -Rs ${SOURCE_DIR}/${i} ${RAM_DIR}/${i}
done
cd "${RAM_DIR}"
#####################################################
##### config ########################################
[[ ! -f .config ]] && zcat /proc/config.gz > .config
if [[ -z "${1}" ]];then
make oldconfig
else
make ${1}
fi
#####################################################
##### compiling #####################################
threads="$(( $(awk '/^cpu cores/ {print $4}' /proc/cpuinfo | uniq) + 1 ))"
time make -j${threads}
#####################################################
##### copy generated files back into SOURCE_DIR #####
time rsync --checksum --recursive --links --safe-links \
--exclude='*.o' \
--exclude='*.cmd' \
--exclude='*.builtin' \
--exclude='*.order' \
--exclude='*.mod' \
${RAM_DIR}/ ${SOURCE_DIR}/
cd "${SOURCE_DIR}"
umount "${RAM_DIR}"
rm -rf "${RAM_DIR}"
- «сорсы» в раме оказываются мгновенно, в отличии от реального копирования
- занимаемое место стремится к нулю, а это очень даже гуд
при сборке все временные файлы в раме
при «установке» на винт падают только реально нужные файлы и линки
в моём случае временных файлов 6000+ на 150+ метров
и приятный бонус - сборка происходит быстрей, хоть и в пределах погрешности
P.S. впринципе это дело можно прикрутить к любой сборке
/me доволен :3