out of memory issue in installing packages on Ubuntu server

gcc, lxml, memory-management, python, ubuntu

Solution

Extend your RAM by adding a swap file: http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/

a swap file is a file stored on the computer hard drive that is used as a temporary location to store information that is not currently being used by the computer RAM. By using a swap file a computer has the ability to use more memory than what is physically installed in the computer http://www.computerhope.com/jargon/s/swapfile.htm

In Short:

- Login as root: `su -` or execute the commands with `sudo` in front

- `dd if=/dev/zero of=/swapfile1 bs=1024 count=524288`

- `mkswap /swapfile1`

- `chown root:root /swapfile1`

- `chmod 0600 /swapfile1`

- `swapon /swapfile1`

Now the swap file will be activated temporarily, but will be gone after reboot. You should have enough RAM for your installing process

To Remove the File:

- `swapoff -v /swapfile1`

- `rm /swapfile1`

Problem

I am using a Ubuntu cloud server with limited 512MB RAM and 20 GB HDD. Its 450MB+ RAM is already used by processes. I need to install a new package called `lxml` which gets complied using `Cpython` while installation and its a very heavy process so it always exits with error `gcc: internal compiler error: Killed (program cc1)` which is due to no RAM available for it to run. Upgrading the machine is a choice but it has its own issues and few of my services/websites live from this server itself. But on my local machine `lxml` is already installed properly. And since my need is `lxml` only, so is it possible that pick all useful files from local machine's directory and copy then into remote machine? Will it work that way? If yes, how to pick-up all files for a package? Regards

Original source