I am on Ubuntu 17 at the moment but this applies to all Linux operating systems.

Many times I've ran into applications that are compressed in a tarball for me to install. The first time I ever run into one like that I knew even less than I know now (which is not much). That time I just played around with the files until I was able to execute the program by simply putting ./executable in the terminal. What I proceeded to do everytime after that to programs in that format was to move the folder to /usr/local/lib (so that it wouldn't clog my folders) and create a .desktop in /usr/share/applications with all the executable and app information.

Today I ran into an app that I had already installed in the previously mentioned way, but their installation procedure was to execute the following

cd program_folder_to_install 
mkdir build
cd build
cmake -(options)

How do these two procedures differ? As far as I can tell the way I installed it works just fine.

Are the programs I installed not really installed in my computer?.

I am sure If I look into all the other apps I have installed this way I can find another one whose directions said to install it with cmake or make but I just dont know the difference and If I should go back and install them that way.

Thanks for any information regarding this!


There are a myriad of ways to install software. Some will require compilation (C, C++, and other such languages), and some not do or may not require compilation (scripting languages such as shell will not, and others such as Ruby or Perl may or may not have bits that need to be compiled). So, in each case you'll need to look at the documentation or files available to figure out how to build and install the software. Major systems include:

  • make will have a Makefile or GNUmakefile which will have various rules for building or possibly installing the software and may possibly require that some specific version of make (or gmake) be installed.
  • Autotools based systems should have a ./configure script in the tarball. This, in theory, should run most anywhere unless your system is very strange.
  • however, some autotools packages may only have a configure.ac or similar set of files. you'll need for those to run autoreconf or similar which should generate a ./configure script that can then be run.
  • Cmake based systems as you've discovered require cmake and to run various cmake related commands.

This is not a complete list; there are other build and install software systems, and then there's vendor package or ports systems, and the various scripting languages will have one or more build systems to build modules for those languages, and so forth.

  • Thanks for the information. If that program specifically required cmake how is it that I am able to use it with the procedure I took to install it?. I another note, I have also ran into the ones with ./configure in the past too and those needed make check and make install. Good to know a bit more about this subject. Thanks! – M.O. Jul 20 '18 at 14:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.