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

I was wondering

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?

what are the advantage and
disadvantages of installing
softwares on root partition and of
on home partition?

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.

1 Answer
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.

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.

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.