# 2.4 Install Packages from Source

To install packages from source, we of course need to get the source code first. A lot open source code nowadays are hosted on github. Therefore, we need to make sure the code can be `git clone` from github repositories. In our course [**DIY Linux**](http://www.longervisionrobot.com/en/courses/linux-lfs.html), we elaborate how to use github in detail. Here, we won't talk about it, but the **Github Help** on [Adding a new SSH key to your GitHub account](https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/) is strongly recommended for students to follow.

## 2.4.1 Some C/C++ Packages

Actually, the author's most often used packages are:

* **Video Streaming**: [**FFmpeg**](http://ffmpeg.org/), [**live555**](http://www.live555.com/), [**VLC**](https://www.videolan.org/index.html), [**gstreamer**](https://gstreamer.freedesktop.org/), etc.
* **Computer Vision**: [**OpenCV**](http://opencv.org/), [**PCL**](http://pointclouds.org/), [**OpenNI**](https://structure.io/openni), [**NiTE**](http://openni.ru/files/nite/index.html), etc.
* **Image Processing**: [**CImg**](http://cimg.eu/), [**ImageJ**](https://imagej.net/), [**ImageMagick**](https://www.imagemagick.org), etc.
* **GIS**: [**OSGeo**](http://www.osgeo.org/), [**GRASS**](https://grass.osgeo.org/), etc.
* **Robotics**: [**Mrpt**](https://www.mrpt.org/), [**Orocos**](http://www.orocos.org/), etc.

## 2.4.2 Some Python Packages

[Anaconda Python](https://www.continuum.io/) [Virtual Environment](https://conda.io/docs/user-guide/tasks/manage-environments.html) is strongly recommended as the Python working environment. In fact, we've got a course [Anaconda Python](http://www.longervisionrobot.com/en/courses/pl-python.html) focusing on Python language programming under Anaconda virtual environment. Here in this course, we ignore Anaconda Python but **ONLY** work without a virtual environment.

To install a python package, in general, there are 3 ways:

* install the package directly from **Synaptic Package Manager**
* install the package by `pip install`.&#x20;

  > **Pip** is used to support the use of Python in cloud web hosting, such as by Heroku.(Cited from \[Wikipedia]\(<https://en.wikipedia.org/wiki/Pip_(package_manager>)) )
  >
  > * `pip install packagename`
  > * `pip install git+git://github.com/xxxxx/packagename.git`
* install the package from source. From within the source directory, run command line `python setup.py install`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://longer-vision-robot.gitbook.io/raspberry-pi-full-stack/chapter-2.-getting-familiar-with-raspbian/2.4-install-packages-from-source.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
