Ubuntu – Software installed on root partition or on home partition

partitioningwindows 7

I am planning to install some big softwares such as Matlab (4GB), Mathematica (4GB) on my Ubuntu partitions.

I was wondering

  1. if I installed them on my home
    partition, when I reinstall Ubuntu
    without touching the home partition,
    will the softwares still be runnable
    after reinstallation?
  2. what are the advantage and
    disadvantages of installing
    softwares on root partition and of
    on home partition?
  3. with your answer to the previous
    questions, what are some reasonable
    plans for the sizes of root
    partition and of home partition?
    Note that I would like to learn
    programming in C, C++, Java, Python,
    Lisp, databases under both Ubuntu
    and Windows, and no games. My laptop
    has around 230 GB, where I plan to
    install both Windows and Ubuntu, and
    reserve 40 GB for Ubuntu (three
    partitions: swap, root and home),
    110 GB for NTFS partition shared
    between the two OSes, 70 GB for
    Windows OS partition, and 10 GB that
    can be added to any of the above
    partitions. I will change my plan
    according to your suggestions.

Thanks and regards!

Best Answer

I will try to answer your questions in the order you asked them:

  1. It depends on how Matlab and Mathematica are distributed; if they are distributed as static binaries, then you should be okay. A static binary has any of the libraries needed by the program compiled into them. Generally, this is not the default for compiled applications, as it leads to extremely large binaries.

  2. There really aren't any disadvantages, per say; it depends on the application. If you're installing an application from apt-get, Synaptic or from the Ubuntu Software Centre, the application is being installed in your root partition. If you have a static binary that you have downloaded and unpackaged yourself, then your best bet would be to keep it in your home directory. For any scripts or programs I write or install, that are not provided by the Ubuntu repositories, I keep them in a bin directory in my home folder. This way, they aren't "polluting" my base system.

  3. The size of your root partition really depends on how many applications and libraries you plan on installing from the Ubuntu repositories. Different Linux distributions recommend different sizes. If you allow Ubuntu to automatically partition your drive, with a separate partition for /home, the Ubuntu installer will give you a sane layout. C and C++ compilers, Lisp REPLs, Python interpreters and the various databases do not take up much room. The only large compiler is for Java; I believe it weighs in at around 80MB for the JDK (Java Development Kit). As with my answer for your second question, most of the stuff you write, you should keep to your home directory, so you do not pollute the base system. Plus, if you ever upgrade your Ubuntu install, you will not have to worry about accidentally blowing away the directory you keep your projects in. Granted, you run this risk anyways, it will just be easier to keep everything you do in your home directory; that is what it is there for.