# Installing on Linux

## Prerequisites

GStreamer is included in all Linux distributions. We recommend using the latest version of a fast moving distribution such as Fedora, Ubuntu (non-LTS), Debian sid or OpenSuse to get a recent GStreamer release.

All the commands given in this section are intended to be typed in from a terminal.

> Make sure you have superuser (root) access rights to install GStreamer.

## Install GStreamer on Fedora

Run the following command:

    dnf install gstreamer1-devel gstreamer1-plugins-base-tools gstreamer1-doc gstreamer1-plugins-base-devel gstreamer1-plugins-good gstreamer1-plugins-good-extras gstreamer1-plugins-ugly gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-devel gstreamer1-plugins-bad-free-extras

## Install GStreamer on Ubuntu or Debian

Run the following command:

    apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio

## Building applications using GStreamer

The only other “development environment” that is required is the `gcc` compiler and a text editor. In order to compile code that requires GStreamer and uses the GStreamer core library, remember to add this string to your `gcc` command:

    pkg-config --cflags --libs gstreamer-1.0

If you're using other GStreamer libraries, e.g. the video library, you have to add additional packages after gstreamer-1.0 in the above string (gstreamer-video-1.0 for the video library, for example).

If your application is built with the help of libtool, e.g. when using automake/autoconf as a build system, you have to run the `configure` script from inside the `gst-sdk-shell` environment.

#### Getting the tutorial's source code

The source code for the tutorials can be copied and pasted from the tutorial pages into a text file, but, for convenience, it is also available in a GIT repository in the `subprojects/gst-docs/examples/tutorials` subdirectory.

The GIT repository can be cloned with:

    git clone https://gitlab.freedesktop.org/gstreamer/gstreamer

#### Building the tutorials

Change directory to find basic-tutorials-1:

    cd gstreamer/subprojects/gst-docs/examples/tutorials/

And then compile it with:

    gcc basic-tutorial-1.c -o basic-tutorial-1 `pkg-config --cflags --libs gstreamer-1.0`

Using the file name of the tutorial you are interested in (`basic-tutorial-1` in this example).

> Depending on the GStreamer libraries you need to use, you will have to add more packages to the `pkg-config` command, besides `gstreamer-1.0` At the bottom of each tutorial's source code you will find the command for that specific tutorial, including the required libraries, in the required order. When developing your own applications, the GStreamer documentation will tell you what library a function belongs to.

#### Running the tutorials

To run the tutorials, simply execute the desired tutorial:

    ./basic-tutorial-1

The results of the search are