From my experience. Swap space on a SD Card is considered as not trustworthy and it also slows down the installation process. - disable any boot to desktop in `raspi-config`, this saves valuable memory. - disable unnecessary autostart executions - do the most critical installation (for me rethinkdb) first - write an installation script, this makes it easier to start from a bare img if you have to start again. Also it allows you easily to change the order and retry the installation. - save your SD after each crucial step to an img/after the installation I copy my installation script in here, maybe you can use it, if not the important steps can be extracted from the script. Please let me know if you need some explanation to one of the steps. You have to set YOUR_SSID and YOUR_PASSWORD to include your Wifi. Copy this script in a new file: `nano /etc/S99rc.installer` and add a file with `echo "start">/home/pi/installscript.status`. I started in the middle with applying this script, so no warranty that this works, maybe some adaption is necessary. #RASPI INSTALLATION SCRIPT set -eu #exit on any error & show bugs Failure () { sudo -u pi echo rm /home/pi/installscript.status exit 1 echo "FAILURE PLEASE CHECK INSTALLSCRIPT" } echo "PLEASE DO RASPI-CONFIG BEFORE: set boot to logged in and non desktop mode" counter=0 while [ -f /home/pi/installscript.status ]; do counter=$((counter+1)) if [ "$counter" -gt "100" ] then Failure fi status=$(< /home/pi/installscript.status) sudo -u pi echo "Current install step: $status" #=================================== WIFI SETUP && SYSTEM UPGRADE ========================================== if [ "$status" == "start" ] #wifi setup then chmod 755 /etc/S99rc.installer sed -i '/exit 0/i\/etc\/S99rc.installer' /etc/rc.local echo "setup autostart installer" printf 'network={%s\n\tssid="YOUR_SSID"%s\n\tpsk="YOUR_PASSWORD"%s\n}' >> /etc/wpa_supplicant/wpa_supplicant.conf echo "setup wifi" apt-get update apt-get upgrade 'swap' > /home/pi/installscript.status echo "upgraded system" #=================================== INCREASE SWAP ========================================== elif [ "$status" == "swap" ] #increase swap space then sed -i.bak 's/^\(CONF_SWAPFILE=\).*/\11000/' /etc/dphys-swapfile /etc/init.d/dphys-swapfile start sleep 5 free -m sudo -u pi echo 'database' > /home/pi/installscript.status echo "increased swap" #=================================== RETHINKDB ========================================== elif [ "$status" == "database" ] then apt-get install g++ protobuf-compiler libprotobuf-dev libboost-dev curl m4 wget cd /home/pi/Downloads wget https://download.rethinkdb.com/dist/rethinkdb-2.3.0.tgz tar vxf rethinkdb-2.3.0.tgz cd rethinkdb-2.3.0 ./configure --with-system-malloc --allow-fetch make ALLOW_WARNINGS=1 make install ALLOW_WARNINGS=1 sudo -u pi echo 'swap2' > /home/pi/installscript.status echo "installed rethinkdb 2.3.0" #=================================== DECREASE SWAP ========================================== elif [ "$status" == "swap2" ] #decrease swap space then sed -i.bak 's/^\(CONF_SWAPFILE=\).*/\1100/' /etc/dphys-swapfile /etc/init.d/dphys-swapfile start sleep 10 free -m sudo -u pi echo 'autostart' > /home/pi/installscript.status echo "decreased swap" #=================================== APPLY AUTOSTARTS ========================================== elif [ "$status" == "autostart" ] then #database sed -i '/exit 0/irethinkdb --http-port 8090' /etc/rc.local sudo -u pi echo 'delete' > /home/pi/installscript.status echo "added autostarts" elif [ "$status" == "delete" ] #clean up when the script was succesful then sudo -u pi echo rm /home/pi/installscript.status sed -i.bak '/bash \/etc\/S99rc.installer/d' /etc/rc.local echo "installations finished" exit 0 reboot else Failure fi done ls -l /home/pi/installscript.status echo "nothing to do" exit 0 EDIT: You have to remove temporarily, the `exit 0` in the comments of `/etc/rc.local` otherwise `sed -i '/exit 0/i\/etc\/S99rc.installer' /etc/rc.local` will be inserted after each `exit 0`. Or change the script accordingly: http://stackoverflow.com/questions/29256795/how-to-insert-a-line-before-the-first-and-last-matching-pattern-using-sed