Search This Blog

Thursday 26 November 2009

A Beginners guide to Debian

Draft: Overview:

This is an effort to give a basic overview of the Debian system and frequently asked questions. How people new to Debian can help them selves as much as possible. Also to explain what is expected of new users in terms of forum etiquette and effort. People here are friendly and helpful but due to the very nature of Debian you are expected to put effort into solving any problems you encounter. This is an effort to get you under way in how to be a good community member and contribute, something back! If after trying something you do get stuck or are worried you may do damage or loose data, please post in the forum. No one here would want you to wipe out your wedding photos for the sake of asking.

I'll layout my concept. I'll try and make this guide be as sequential as possible. So new users get a basic grasp of things in order in a few sentences with more detailed answers in the links. Basically, “Bite sized chunks” linking to FAQ or good how to's that already exist. Maybe some small how to's will be incorporated. I shall refer to “stable mostly” Be aware that some information gets old very quickly while some can stay the same for years. Be as sure as you can it's up to date.

Things to be aware of: Debian is a core or source distribution. This means there are many Debian based distributions. "THEY ARE NOT DEBIAN". Their information may or may not be of use. Debian has no way of knowing what has been changed on these systems. Do not add their repositories, or install their programs. You will break your system eventually.

Distributions built from Debian: Too many to list. Quote. ref: http://distrowatch.com/
"The success of Debian GNU/Linux can be illustrated by the following numbers. It is developed by over 1,000 volunteer developers, its software repositories contain more than 20,000 packages (compiled for 11 processor architectures), and it is responsible for inspiring over 120 Debian-based distributions and live CDs. These figures are unmatched by any other Linux-based operating system. The actual development of Debian takes place in three main branches (or four if one includes the bleeding-edge "experimental" branch) of increasing levels of stability: "unstable" (also known as "sid"), "testing" and "stable". This progressive integration and stabilisation of packages and features, together with the project's well-established quality control mechanisms, has earned Debian its reputation of being one of the best-tested and most bug-free distributions available today."

Finding information:

man pages:
Every time you install an application it installs a manual for that application. Also called, “man pages” for short. The quality and style is dependent on the author. It may be new user friendly, very technical, very short, or just poor. Some can be excellent. To access the man page you type “man and the name of the programme” in a terminal.
e.g. “man mplayer”
You will also find the man pages on line try “man mplayer” in your search engine.

Docs:
Documentation is in /usr/share/doc. Most GUI applications access these via their help.
http://www.debian.org/doc/user-manuals
http://newbiedoc.berlios.de/wiki/Debian_newbie_help_documentation
http://tldp.org/
http://www.linfo.org/newbies.html
Debian GNU/Linux Reference Card: The 101 most important things when using Debian GNU/Linux
http://tangosoft.com/refcard/
http://www.debian.org/doc/user-manuals#refcard
http://www.togaware.com/linux/survivor/
http://www.aboutdebian.com/
http://www.debian.org/doc/FAQ/
Useful Wallpaper for beginners
http://www.tux-planet.fr/a-linux-wallpaper-for-beginners-un-fond-decran-linux-pour-les-debutants/
http://www.gnome-look.org/content/show.php/Emacs_shortcuts?content=91961


The wiki:
Just like Wikipedia. Debian has a wiki. This information can be edited by anyone that's registered. There is lots and lots of information there.
http://wiki.debian.org/

Debian lists:
Debian lists are archives of email correspondence. They contain may Q&A's. You can search the different archives and subscribe to the lists that interest you. Once you've subscribed you can post questions, and receive updates via email,and rss feeds.
http://www.debian.org/MailingLists/
http://lists.debian.org/

Debian forums:
Like this one.
http://forums.debian.net
http://www.debianhelp.co.uk/
http://www.linuxforums.org/forum/debian-linux-help/

How to search the forum and the web:
Obvious places.
http://forums.debian.net/viewforum.php?f=30
http://forums.debian.net/viewforum.php?f=1
The built in search could be better. You can use the google site search facility. Paste these examples into a google search to see how they work.

wifi lenny solved site:forums.debian.net

printing site:tldp.org

Use "quotes to group words" "wifi lenny" is not the same as wifi lenny

irc (internet relay chat): See the IRC section for instructions on joining the forum irc.

General GNU/Linux information multimedia:
No cost media. Like youtube. The internet archive, Podcasts, or Oggcasts
http://www.linuxreality.com/faq.php
http://hackerpublicradio.org/

What is Debian? A little background:
Debian is an operating system similar to Microsoft windows and Mac OSX. It has several major differences. It's Free it terms of liberty and cost and you are free to contribute to it. Due to the number of different architectures it runs on, it's flexibility and power it is referred to as “The Universal operating system”
http://www.debian.org/intro/about
http://wiki.debian.org/DebianIntroduction
http://en.wikipedia.org/wiki/Debian
http://d-i.alioth.debian.org/manual/en.i386/ch01s03.html

Debian gives you the choice of several kernels the most popular being the Linux kernel. The kernel is the software that interacts between your physical hardware and passes information to your application software. Debian tweaks the vanilla kernel for you. but you can get make your own modifications with tools Debian provide or use a vanilla kernel.
http://www.kernel.org/
http://en.wikipedia.org/wiki/Linux_kernel

Many of the programmes used to write applications were created using the GNU tools.
http://www.gnu.org/ All the software in the Debian system is free software that complies with the Debian Free Software Guidelines.(DFSG) http://www.debian.org/social_contract#guidelines

The Debian project recognises the valuable input of both the GNU system and Linux kernel in the full name of the Debian OS. “Debian GNU/Linux”.

How owns Debian? You could say “No one” or “You do”. Unlike most other distributions there is no company or magnanimous dictator behind it. It's users, create it and share it. This is why you are encouraged to give back by what ever means you can. Be it programming, graphic design, documentation or sharing your knowledge in the forum. If you can only give back money. That's fine too.
http://www.debian.org/social_contract
http://www.debian.org/intro/help

To find out more about Debian finances see here:
http://www.debian.org/donations
http://www.spi-inc.org/

Applications that are deemed secure, stable, and free enough to be in the Debian system. Are stored on “repositories” (servers) that are mirrored (duplicated) around the world. Here is a list of official Debian mirrors.
http://www.debian.org/mirror/list There are unofficial mirrors also. These may hold software that has possible patent issues in the USA where Debian is based. These issues may not apply in your country. Some DVD and mp3 software are examples that are not in the official repository but readily available.

Getting Debian:
http://www.debian.org/distrib/
Most people will have i386 computers, but not all!. As a new user your first task is to make sure you gather as much detail as you can about your system. If you still using another OS use that to gather as much info as you can. Information like Processor type, Graphics card make and model, HD type, is it an ide drive, SCSI, etc. Your network card and wifi, Your monitor, find out what screen resolutions it supports. In short gather as much info as you can on you hardware and write it down or print it out.

Installing Debian:
There are many great, “how to's” on installing Debian. But you need to consider some questions before installation. Do I want or need to dual boot with another OS? Backing up your data in a suitable format. Will my hardware work with Debian? Can I revert if it all goes awry? Prepare first and ask if you need too.
http://www.debian.org/releases/stable/installmanual

The command line:
You may never want to use the command line interface (CLI) If that's the case fine. But there will be times when you need to, and have to. It's a fundamental part of the system, get used to the basics at least.
http://linuxcommand.org/
http://www.tuxfiles.org/linuxhelp/cli.html
http://www.linfo.org/command_index.html

Installing, removing and updating software:
Getting software from the Debian repositories or CD's and DVD's if you have no internet or a poor connection can be done with the command line tools. Dpkg, apt, and aptitude. You can also install a GUI (Graphical user interface) applications like sysnaptic.

Dpkg:
http://en.wikipedia.org/wiki/Dpkg
http://www.debian.org/doc/FAQ/ch-pkgtools.en.html
Apt:
http://en.wikipedia.org/wiki/Advanced_Packaging_Tool
Aptitude:
http://en.wikipedia.org/wiki/Aptitude_(program)
Synaptic The graphical package installer remover and updater
http://www.nongnu.org/synaptic/
http://en.wikipedia.org/wiki/Synaptic_Package_Manager

Adding repositories and CD's or DVD's to your system:
In order for your system to know where to get new applications, libraries (plugins) and security updates. It needs to know where to get them from. This is done by adding details of the repositories and CD's to your sources.list. This is a text file that resides in

/etc/apt/sources.list

By editing this file you can completely change the software available to your system. On a normal desktop PC you can expect over 20,000 “packages” depending on what you decide to install. And if you chose to add the “contrib” and “non-free” sections.

Debian is a Free system and as you saw from the “social contract” only includes, and depends upon free software. All software in the “main” section in your sources.list is Free-software.

For the convenience of it users Debian also links to “contrib” and “non-free”
The “contrib” section is free software that links to or depends on some none free software.
The “non-free” is non-free software as in (proprietory software) not cost.

The three main Debian branches:
Debian branches are divided in to 3 main (there are more) categorises, stable, testing, and unstable. They are always named after characters from the "Toy story"movie's.
stable is currently lenny
testing is currently squeeze
unstable is always sid. see: http://wooledge.org/~greg/sidfaq.html
You can use "stable" in your sources.list and when the current version of testing becomes stable your system will upgrade. If you want to run newer version of applications on a stable system you can via the "Back ports" repository. This is the recommended way for new users. That said "squeeze" is more stable than many other distributions, but you will get breakages.

To update biotube's great post. ref: http://forums.debian.net/viewtopic.php?f=10&t=32860&start=0

""Unstable (permanently "Sid): When a new version of a package(or a new package all together) gets uploaded, it usually goes here. Sid machines can be highly volatile, (giving birth to the saying "If it breaks, you get to keep both halves"), although it's calmed down in recent years thanks to experimental.

Testing (currently "Squeeze"): After a while, a package in Sid with no really bad bugs gets moved here(the exact time depends on the urgency of the update). For this reason, it's much more stable than Sid. Since packages are updately fairly quickly, it's recommended for desktop users(don't let the name fool you - testing can be more stable than some distros' (especially the-one-that-cannot-be-named) releases).

Stable, (currently "Lenny", soon to be "Squeeze"): Every once in a blue moon, the Debian release team puts testing in what's know as "The Big Freeze". During this time, nothing but bugfixes may be moved to testing. Once all release-critical(RC) bugs are gone, testing becomes stable and a new testing branch is opened. Since only bugfixes are allowed in stable, the packages tend to get dated rapidly."

A new and really nice overview
http://pthree.org/2009/11/17/debian-the-universal-operating-system/

The graphical display (referred to as "X" or as "X Windows") :

The X Window System is a Free (Mit licenced), cross-platform, system for managing a windowed GUI (graphical user interface). If you don't want to be looking at a blank screen with a flashing cursor. You will need this. Some times, now rarely “X” can fail to be configured correctly on installation. It may fail completely (blank screen and said cursor) Or for example not offer the highest resolution that your monitor supports. This is why it's so useful to gather information on your graphics card and monitor first. Debian has tools to help you configure X from the command line interface (CLI).

http://en.wikipedia.org/wiki/X_Window_System
http://www.x.org/wiki/
http://wiki.debian.org/XStrikeForce
http://wiki.debian.org/XStrikeForce/HowToRandR12

The basic system file structure:
If you come from Microsoft Windows You may well be wondering where the C and D,E etc drive is! It's gone. If you come from Mac OSX, being based on BSD the file structure may be more familiar. In Debian there is a single / root directory (folder) with everything placed in it. You can see a general view of how the subsequent directories are organised in the links below.
http://www.tuxfiles.org/linuxhelp/linuxdir.html
http://www.freeos.com/articles/3102/
http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilestruct.html
http://www.comptechdoc.org/os/linux/commands/linux_crfilest.html

The concept of Root and user:
"root is the user name or account that by default has access to all commands and files on a Linux or other Unix-like operating system. It is also referred to as the root account, root user and the superuser. "
Ref: http://www.linfo.org/root.html
An ordinary user only has control over files in his/her own "home" directory. Though may be "allowed access" to other files and applications.

Desktop environments:

Under Windows and Mac OS you have a very limited choice as to your desktop environment.(the actual interface displayed on the screen). DE for short. You get what your given. A Monoculture based on their file manager. Windows explorer in Micosoft Windows, and the Finder in Mac OSX.
Under Debian you get choices of several Desktop environments, each with their own idea of what a good DE should be. Your choice maybe influenced by which one you've used before. What your friends are familiar with. Which is most similar to your current OS. What you want to do, and your PC's capabilities. You can forgo a DE altogether, if for example you want to create a server, or use a window manager.

Desktop environments: available repackaged on CD:

If you downloaded the first Debian CD. You will get the default Gnome Desktop. It uses the GTK libraries. Others DE's include KDE. This uses QT libraries. There is also the XFCE (GTK) desktop. That is slightly lighter than Gnome and KDE. The LXDE (GTK) that is a very light DE. XFCE and LXDE are present on the same CD. Check their prospective sites before you decide which one you think is for you.  You only need the first CD to get up and running. Just choose the Desktop you want.  Don't download all 20 odd unless you need them.

http://en.wikipedia.org/wiki/Comparison_of_X_Window_System_desktop_environments

GNOME:
From the Gnome site.

"GNOME is easy to use and easy to learn: the usability project team makes sure of it. GNOME has all the software you need every day: games, browser, email, office suite, and more. In addition, excellent Windows file compatibility means you can work with files that Windows users send you, and extensive manuals and help systems mean you're never without resources. "

http://www.gnome.org/
http://en.wikipedia.org/wiki/GNOME

KDE.
From the KDE site.

"KDE or the K Desktop Environment, is a network transparent contemporary desktop environment for UNIX workstations. KDE seeks to fulfill the need for an easy to use desktop for UNIX workstations, similar to desktop environments found on Macintosh and Microsoft Windows operating systems."

http://www.kde.org/
http://en.wikipedia.org/wiki/KDE
http://wiki.kde.org/

XFCE:
From the XFCE site.

"About Xfce
"Xfce is a lightweight desktop environment for various *NIX systems. Designed for productivity, it loads and executes applications fast, while conserving system resources." - Olivier Fourdan, creator of Xfce
Xfce 4.6 embodies the traditional UNIX philosophy of modularity and re-usability. It consists of a number of components that together provide the full functionality of the desktop environment. They are packaged separately and you can pick and choose from the available packages to create the best personal working environment. "

http://www.xfce.org/
http://en.wikipedia.org/wiki/Xfce
http://wiki.xfce.org/

LXDE:
From the LXDE site.

"The "Lightweight X11 Desktop Environment" is an extremely fast-performing and energy-saving desktop environment. Maintained by an international community of developers, it comes with a beautiful interface, multi-language support, standard keyboard short cuts and additional features like tabbed file browsing. LXDE uses less CPU and less RAM than other environments. It is especially designed for cloud computers with low hardware specifications, such as, netbooks, mobile devices (e.g. MIDs) or older computers. "

http://lxde.org/
http://en.wikipedia.org/wiki/LXDE
http://wiki.lxde.org/en/Main_Page

GTK + QT: Are tool kits used to create GUI's, for applications. Because these tools kits offer a slightly different look and feel. Many people try to stick to one or the other when choosing applications. Some popular applications are availible  built with either tool kit. There are also "themes" that are avalible to make them look similar.

GTK:
 http://www.gtk.org/
 http://en.wikipedia.org/wiki/Gtk
 GTK+ is a highly usable, feature rich toolkit for creating graphical user interfaces which boasts cross platform compatibility and an easy to use API. GTK+ it is written in C, but has bindings to many other popular programming languages such as C++, Python and C# among others. GTK+ is licensed under the GNU LGPL 2.1 allowing development of both free and proprietary software with GTK+ without any license fees or royalties.

QT:
 http://qt.nokia.com/products
http://en.wikipedia.org/wiki/Qt_(toolkit)
 Qt is a cross-platform application and UI framework. Using Qt, you can write web-enabled applications once and deploy them across desktop, mobile and embedded operating systems without rewriting the source code.

Features
Building your own system with a net install:

With Debian you have the choice of doing a net install a from a minimalistic CD.   http://www.debian.org/CD/netinst/
You may want to do a net install if you have a poor internet connection or old hardware that would struggle with a full DE. You could then build your own lighter system using a window manager and a file manager of your choice.


Window mangers:
A window manager controls the window your GUI applications run in. How you Move ,expand, hide, shrink, them, and how they inter-react with each other.
 http://en.wikipedia.org/wiki/Window_managers
 http://xwinman.org/

File managers: 
Quote ref:  http://en.wikipedia.org/wiki/File_manager

"A file manager or file browser is a computer program that provides a user interface to work with file systems. The most common operations used are create, open, edit, view, print, play, rename, move, copy, delete, attributes, properties, search/find, and permissions. Files are typically displayed in a hierarchy. Some file managers contain features inspired by web browsers, including forward and back navigational buttons."
http://en.wikipedia.org/wiki/Comparison_of_file_managers#Cross-platform_file_managers
http://www.linuxlinks.com/article/20081224191928555/FileManagers.html

IRC:
Quote: ref: http://en.wikipedia.org/wiki/Internet_Relay_Chat

 "Internet Relay Chat (IRC) is a form of real-time Internet text messaging (chat) or synchronous conferencing. It is mainly designed for group communication in discussion forums, called channels, but also allows one-to-one communication via private message as well as chat and data transfers"

1. install an irc application. There are lots: barnowl-ircii-sirc-tinyirc-barnowl-iceape-chatzilla-ii-irssi-konversation-pidgin-scrollz-sic-talksoup-weechat-xchat

A very easy to use but light GUI one is lostirc. Here's how to get it set up

As root install it with
# apt-get install lostirc

Start it from a menu, or a run dialog or  terminal by typing its name. 

2. Add the server
Under "hostname" Thats the Server put: irc.oftc.net
Under "port" put: 6667
Under "password" leave that blank until you've registered your "nick" 
Under "nickname" your-desired-nick

3. Join the channel : #debian-forums

4. Register Your Nick
In order to register your nick (nickname) for use on  debian-forums irc channel you must notify the NicServ. You do this by  typing

/msg nickserv REGISTER  your-password your-email

NOTICE NickServ: Nickname "your-desired-nick" has been registered successfully and is now yours to use.

Now go and add your password to the "password" section and you can also  tick the "connect automatically" box. And automatically join the forum chat by placing

/join #debian-forums

In the "commands to perform when connected" section.


http://www.ircbeginner.com/ircinfo/ircc-commands.html
http://wiki.debian.org/GettingHelpOnIrc
http://www.irchelp.org/irchelp/irctutorial.html#quickstart



### END ###

I think that'll get you going. I may add to the sections below  as and when I have the inclination.

Printing:
I may add to this section. You may want to....

Fonts:
I may add to this section. You may want to.....

Networking:
I may add to this section. You may want to.....

Ethernet:
I may add to this section. You may want to.....

Wifi:
I may add to this section. You may want to.....

Samba:
I may add to this section. You may want to.....

NFS:
I may add to this section. You may want to.....

SSH:
I may add to this section. You may want to.....

FTP:
I may add to this section. You may want to.....

RSS:
I may add to this section. You may want to.....

Graphics drivers:
I may add to this section. You may want to.....

Free:
I may add to this section. You may want to.....

Non Free:
I may add to this section. You may want to.....

ATI:
I may add to this section. You may want to.....
http://wiki.debian.org/ATIProprietary

Nvidia:
I may add to this section. You may want to.....
http://wiki.debian.org/NvidiaGraphicsDrivers

Sound:
I may add to this section. You may want to.....
You may want to.....

Multimedia:
I may add to this section. You may want to.....
You may want to.....

Applications:
I may add to this section. You may want to.....
You may want to.....

etc....