# Orienting Yourself to &debian;

&debian; is a little different from other distributions. Even if you're familiar with Linux in other distributions, there are things you should know about &debian; to help you to keep your system in a good, clean state. This chapter contains material to help you get oriented; it is not intended to be a tutorial for how to use &debian;, but just a very brief glimpse of the system for the very rushed.

## &debian; Packaging System

The most important concept to grasp is the &debian; packaging system. In essence, large parts of your system should be considered under the control of the packaging system. These include:

- `/usr` (excluding `/usr/local`)

- `/var` (you could make `/var/local` and be safe in there)

- `/bin`

- `/sbin`

- `/lib`

For instance, if you replace `/usr/bin/perl`, that will work, but then if you upgrade your `perl` package, the file you put there will be replaced. Experts can get around this by putting packages on hold in `aptitude`.

One of the best installation methods is apt. You can use the command line version of `apt` as well as tools like aptitude or synaptic (which are just graphical frontends for `apt`). Note that apt will also let you merge main, contrib, non-free, and non-free-firmware so you can have restricted packages (strictly speaking not belonging to &debian;) as well as packages from &debian-gnu; at the same time.

## Additional Software Available for &debian;

There are official and unofficial software repositories that are not enabled in the default &debian; install. These contain software which many find important and expect to have. Information on these additional repositories can be found on the &debian; Wiki page titled The Software Available for &debian;'s Stable Release.

## Application Version Management

Alternative versions of applications are managed by update-alternatives. If you are maintaining multiple versions of your applications, read the update-alternatives man page.

## Cron Job Management

Any jobs under the purview of the system administrator should be in `/etc`, since they are configuration files. If you have a root cron job for daily, weekly, or monthly runs, put them in `/etc/cron.{daily,weekly,monthly}`. These are invoked from `/etc/crontab`, and will run in alphabetic order, which serializes them.

On the other hand, if you have a cron job that (a) needs to run as a special user, or (b) needs to run at a special time or frequency, you can use either `/etc/crontab`, or, better yet, `/etc/cron.d/whatever`. These particular files also have an extra field that allows you to stipulate the user account under which the cron job runs.

In either case, you just edit the files and cron will notice them automatically. There is no need to run a special command. For more information see cron(8), crontab(5), and `/usr/share/doc/cron/README.Debian`.