6

Normally, when I want to download something on my pi (for instance this vnc app, I use apt-get <insert app>?

But, sometimes an app is not in the apt-get area (not sure what proper name is) and I have to use wget <insert URL.

So, can someone explain to me what is apt-get, how does it work, and if there is it specific to the pi?

1
  • 1
    the proper name for what you call the "apt-get area" is a repository. Repositories hold packaged software. There are standard repositories but other repositories exist and you can add these other repositories to the list of repositories known to apt-get. If software you want is available in a repository somewhere, it is better to use apt-get than wget Commented Apr 7, 2013 at 13:33

2 Answers 2

10

apt-get is part of the Advanced Packaging Tool, the user interface for package management for Debian (and Raspbian, since it is a fork of Debian).

In Debian (and its forks), there is this concept of a "package", a specific piece of software that can be installed and uninstalled. These packages consist of precompiled code, configuration files, and meta-information like size, version number, etc.

Package management software, such as APT, keeps track of things like dependencies and installed packages, which simplifies management of software on a system.

Sometimes, the Debian/Raspbian package repositories will not have a package for a given app; hence, you would have to use wget to download a source tarball and then extract, compile, and configure it yourself.

1
  • 2
    As an additional note: there are other frontends to the Debian style packages. For example aptitude is a menu driven package selection and installation tool, which you can also use in Raspbian.
    – Arne
    Commented Apr 7, 2013 at 9:21
5

Have you ever used an “application store” on a smartphone (Android, iPhone, etc.) or computer (Windows Store, Mac App Store, or, say, Steam)? They make the process of managing your applications much easier.

Well, we could kind of say that apt-get is one such “store.” On Linux (and I mean in general), there are two main ways of installing applications.

  1. Either you download the source code of a particular application (with wget to download an archive from the web, or sometimes with git), and then run
    • ./configure, that checks dependencies and creates a Makefile for your architecture
    • make, which reads the Makefile and compiles the source code into binary files
    • make install, which moves all the files to their proper location on your system.
  2. Or you use a package manager (like apt-get/aptitude on Debian), a much more powerful method.

Want to install an interesting Python program (Scribes, for instance)? Just tell your system to install it (apt-get install scribes), and whatever this program needs for running itself (= dependencies), apt-get will install them. It just works.

Basically, what apt-get downloads for you, are versions of your programs that already have been compiled (see point 1 above) for your system. They are packaged (like, archived like ZIP files) as .deb files (stands for “Debian”, the Linux “version” which Raspbian comes from), and it downloads those packages, “unzips” them, moves them, and configures them.

The package management concept is not specific to your Raspberry Pi. On Raspbian, Ubuntu, Linux Mint, etc. which are Debian-based, the packages are .deb files, but other distributions make use of other formats (.rpm for example).

Note that what is called a “package” is not necessarily a file containing a binary version of your program. Some advanced version of Linux called Gentoo, for example, has a package manager called emerge (the equivalent of apt-get) which downloads nothing but the source code of your program & its dependencies, and your computer still has to compile afterwards.

I hope I have been clear! You may want to try using apt-cache search <something> to run a search for packages/applications. (Note to others: aptitude seems good and more powerful, but takes longer time to run, which is critical on a Raspberry Pi.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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