Installing Sofware Packages in Linux from the Command Line Interface

To install any software package from the command line interface in Linux, you need to have Super User rights first. That means, you are either logged in as the “root” user or you’re not “root” but your username in the system is a Super User. Once you’ve taken care of this, you can open a terminal on your machine and type the following command:

sudo apt-get install <package-name>

If you’re installing the Apache HTTP web server for instance, the command would be,

sudo apt-get install apache2
  • “apt-get install” is used in case of installing software packages in general.
  • “apache2” is the name of the the package in your repository. These names are usually the same in case of different Linux distributions but you usually can find out what the name is if you do a simple Google search or read your distribution’s documentation.

A repository is basically a place on the Internet where all such software packages are kept and maintained for your specific distribution of Linux. They build the application from the source code that they get from the software vendor, compile it specifically for your distribution and then keep it in the repository. Once you run the command mentioned above, the package will be downloaded from the repository and installed on the machine.

Sometimes, the software is on the DVD with which you installed the operating system. Especially in case of Debian, the installation media is way too big and contains almost everything, in terms of those software packages, that you might need. When you install the operating system, the system asks you to let the system scan all the media that you currently own related to the operating system and keeps a record of them. The operating system knows which package can be found on which media. For example, in case of Debian, the apache2 package is on the first DVD. So then if run the command mentioned above, the machine asks you to insert the first DVD and installs the software from the DVD rather than going to the Internet and downloading the package. It’s worth mentioning that when you want to install Debian, you don’t have to install all the DVDs that you find on Debian.org and scan them all during the installation. The first one is enough. If you need anything else in the future, you could always go out to the Internet and download it.

Now when you run the command mentioned above, the following happens and is prompted to you in the terminal:

  • The system will read the package lists to make sure that it has the package you’re looking for. “Reading package lists… Done”
  • The system builds the dependency tree. This is a list of all the packages that are required for the package you’re trying to install. That means, the installation of your desired package depends on the existence of those dependency packages. If they’re not already present, they’ll be installed too.  “Building dependency tree”
  • “Reading state information… Done”
  • The system will inform you about the extra packages that need to be installed. “The following extra packages will be installed: <list-of-extra-packages>”
  • The system suggests some other packages that are usually installed along with the package you’re trying to install, or a list of packages that somehow go well with the desired package. For example, if you’re installing some sort of virtualization software, the system will suggest that you install the management console related to that software package as well so that you can manage it easily on a GUI. “Suggested packages: <list-of-suggested-packages>
  • The system will give you an overall report of what’s going to happen, for example how many packages are going to be upgraded, how many removed, how many installed, etc. “0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded”
  • The system will inform you about the size of the packages that it needs to get. “Need to get 0 B/1,942 kB of archives.”
  • The system will inform you about the additional disk space required for the whole operation. “After this operation, 6,643 kB of additional disk space will be used.”
  • The system will ask you if you want to continue. “Do you want to continue=[Y/n]”
  • Once you say, “Yes”, the system will ask you to insert the disk that came with the operating system, if you have scanned that disk before while you were installing the operating system. This way, you don’t have to download anything from the Internet. “Media change: please insert the disk labeled ‘Debian GNU/Linux 8.7.1 _Jessie_  – official amd64 DVD Binary-1 20170116-11:01’ in the drive ‘/media/cdrom/’ and press enter”
  • Once you insert the disk, the system will start to get the relevant packages from the DVD, unpack them and install them. Everything will be reported as it’s being done. You can always scroll up in your terminal to read about everything that happened during the installation. And your package is installed.

How To: Write Compile Run a C Program on Ubuntu

There are many Integrated Development Environments (IDEs) no matter what platform you’re on, Window, Linux, Max OS, Unix, etc. You can install  and configure them and develop software projects in them. For example, you could install Codeblocks, Netbeans, any IDE from Eclipse and the list goes on.

This guide comes in handy if,

  • you want to write a simple small program on a Linux machine for example to test something
  • you want to understand how the compilation or execution process works when you write a program or project in an IDE and run it.

So to write a simple “Hello World” Program in C language on an Ubuntu machine, you can proceed as follows:

Open gedit, write your program code in it and save your program somewhere you can find it. “gedit” is the standard text editor that you can find on almost all the different types of Linux machines like Ubuntu, Mint, etc.

You code might look something like this:

#include <stdio.h>
int main() {  
printf("Hello world!");
return 0; 
}

Save this files as hello.c somewhere you can navigate to using your Terminal (We’ll get to this in a little bit). This is just your source code and needs to be translated into machine code so that the machine can understand it and so you can run it.

In order to translate the source code into machine code, you use the C compiler that comes pre-installed on Ubuntu called GCC short for GNU Compiler Collection.

Now in order to compile the code, open a terminal window like “Terminal” on an Ubuntu machine. In Terminal, go to the path you saved hello.c. You should be able to do that by using commands like “pwd”, “cd”, etc to navigate to the path you saved hello.c. I’m assuming you can find your way through your file system on a terminal on your Linux machine. If not, Google for example, “Ten most important Linux commands” and you will be able to learn your way through.

Once you’re inside the path where you saved the file, write the following to compile your source code using GCC:

gcc hello.c -o helloWorld

“gcc” is the name of your compiler. “hello.c” is the source code. “-o” implies output and “helloWorld” is the name of the executable file that the compiler is going to create from your source code.

After successful compilation, you’ll have the file “helloWorld” in the same directory where you save hello.c. You could check that if you used the command “ls” for example which would give you a list of files present in the directory you were currently in.

Then, assuming that you’re still in the same directory where you saved hello.c, you can now run helloWorld right from the terminal.

./helloWorld

As a result the sentence “Hello World!” will be printed in the terminal which is what you used as the argument for the printf function in your program.

As a final note, in Linux, everything is case sensitive. So be careful about your naming conventions. That means, “helloWorld” is NOT the same files as “helloworld”.