- The Illustrated Guide to Installing Debian GNU/Linux
- First Steps
- The Installation Process
- Appendix A -- How To Manually Select Partition Sizes
- Appendix B -- The Basics of Package Management
- Appendix C -- Installing Alternative Desktops
- Appendix D -- Suggested Packages
- Appendix E -- How To Work with an MS Windows XP partition
- Appendix F -- Further Reading
The Illustrated Guide to Installing Debian GNU/Linux
Installing a GNU/Linux operating system is a fairly simple task. There are however a few concepts (e.g. partitioning) that may not be clear to new GNU/Linux users. This guide has been written primarily for them.
Prior to making any major change to your computer you should ALWAYS backup all of your work. The Debian Boot team has extensively tested their installer and they believe it to be safe, but they cannot prevent you from making mistakes and they cannot prevent a power failure in your city while you are installing your new operating system.
Debian is available on a number of installation media. This guide covers both the CD-ROM and the win32-loader. It assumes that you want to install Debian on a computer that already has an MS Windows operating system on a single partition and it assumes that you would like to set up a "dual boot" -- a system that asks you to choose an operating system (e.g. MS Windows or Debian) when you start your computer.
If you plan to use a CD to install Debian, but you don't have the CD yet, you can download a CD image from: http://debian.org/CD/ and burn it to a CD-R, using some of the tips provided at: http://debian.org/CD/faq/#record-windows
There are dozens of CDs listed on those pages. You want one of the three CD images that end with: "CD-1.iso" in its label. The one that simply ends in "CD-1.iso" provides the Gnome desktop, the one that ends in "kde-CD-1.iso" provides the KDE desktop and the one that ends in "xfce-CD-1.iso" provides the Xfce desktop.
If you don't know what that means, don't worry about it, it is a matter of personal preference. One of the authors of this guide prefers KDE, so he used the "kde-CD-1.iso" when making the screenshots for this installation guide.
You also need to obtain the correct CD for your computer's architecture. If you don't know your computer's architecture, it's probably "amd64" (also known as "x86_64"), but note that older computers (before 2005) still use the "i386" architecture. To find information about your computer's architecture from within MS Windows, go to the "Start" menu, then select: "Programs" --> "Accessories" --> "System Tools" --> "System Information".
Once you have burned or purchased an apropriate Debian installation CD and after you have backed up all important files, simply slide the CD into the drive and restart your computer. When the computer restarts, you'll be given a short menu of installation options. Choose "Graphical Install" to start the installer in graphical mode.
To begin installing Debian using win32-loader, you first have to download the (win32-loader.exe) file from the Debian mirrors. Then simply double-click on the "win32-loader.exe" icon to run the program.
After giving you a choice of language (e.g. English), the win32-loader will ask if you agree to the terms of the GNU General Public License. If so, the win32-loader will ask you to select an installation mode: "Normal" or "Expert." Select "Normal."
The only disadvantage of selecting the "Normal" installation mode is that you are not given a choice of desktop. GNOME is installed by default. Appendix C explains how to overcome this disadvantage and install the desktop of your choice.
At the next screen, the win32-loader will ask if you want to install Debian or repair an existing system. The fact that you're reading this indicates that you want to "Install Debian."
After downloading a few files, the win32-loader will prompt you to restart your computer and remind you to backup all important files. (You've already done that, right?)
When the computer restarts, you'll be asked to select an operating system (either MS Windows or the Debian Installer). Select "Debian Installer" to begin the installation process.
The Installation Process
After following the steps outlined above, the Debian Installer will load and the installation process will begin. At this point, your computer may appear to hang for a minute or two at a black screen. Don't panic. This is normal.
Soon the installation process will begin and you'll be asked to select the keyboard that you use (e.g. "American English"). The installer will then automatically detect your hardware and your network.
After completing those tasks, the installer will ask you for the hostname of your computer and your domain name. If you're installing Debian on a home computer, you can make something up.
After asking which time zone you live in, the installer will detect your hard disks and start the partitioner. This is the most important part of the installation, so be careful.
The installer will present you with a set of guided partitioning options that use the entire hard disk and the "Manual" partitioning option. It's important to use the "Manual" option because the guided partitioning options will use the entire hard disk and wipe out your MS Windows installation.
You'll then see a partition table like the one below:
V IDE1 master (hda) - 30.0 GB HITACHI_DK23EA-30 > #1 primary 30.0 GB B ntfs
You want to shrink this partition to create space for your Debian installation, so (if you're using the graphical installer) then select this partition by double-clicking on "#1 primary."
At the next screen, select "Resize the partition." Select "Yes" when prompted to write previous changes to disk and then click on "Continue." Choose a size for you MS Windows partition (e.g. 10.0 GB) and click on "Continue."
The installer will then resize the partition and you'll return to the screen with the partition table which will now look something like this:
V IDE1 master (hda) - 30.0 GB HITACHI_DK23EA-30 > #1 primary 10.0 GB B ntfs > pri/log 20.0 GB FREE SPACE
Now you have to set up the partitions for your Debian installation, so select "Guided partitioning" and, at the next screen, select "Guided -- use the largest continuous free space." At the next screen, select "Separate /home partition."
Some people disagree with the installer's recommendation that new users place all files in one partition. In their view, new users should create a separate partition for their "home" directory. Your home directory is the location where you will store all of your work and where your (personal) configuration files (e.g. which wallpaper your prefer) will be stored. So if you create a separate home partition, your work and your system files will be on separate partitions.
New GNU/Linux users tend to experiment a bit too much with their "new toy." On the one hand, that's good because that's how you learn about your new operating system. On the other hand, some new users go too far. They do foolish things and need to reinstall the operating system.
If they were foresighted enough to create a separate partition for their home directory, reinstallation is relatively painless. They simply install the operating system around the partition that contains their home directory (leaving the files in place). After the reinstallation, all of their work is in place and their configuration is restored.
So select "Separate /home partition." The installer will then select some nice defaults and return you to the partition table screen:
V IDE1 master (hda) - 30.0 GB HITACHI_DK23EA-30 > #1 primary 10.0 GB ntfs > #2 primary 5.4 GB B f ext3 / > #5 logical 682.7 MB f swap swap > #6 logical 14.0 GB f ext3 /home
If you like those defaults, you can select "Finish partitioning and write changes to disk." You'll then be given one last chance to change your mind. If you choose "No," you'll be returned to the partition table screen. If you choose "Yes," the changes will be written to disk and installation of the base system will begin.
If you don't like the partition sizes that the installer selected, turn to Appendix A for an explanation of how to manually choose the partition sizes.
After writing the new partition table to disk, the Debian Installer will install the base system.
Setting Up User Accounts
The next four screens will help you set up a "root" account and a "user" account. The root account is used to perform administrative tasks, such as installing software, while the user account is used for everyday tasks, such as writing letters, etc.
The strict separation of root and user accounts in GNU/Linux operating systems is a security feature. Normal users may not install software because they do not have permission to make changes to the directories (i.e. "folders") where system files are stored. This prevents malicious software that you may encounter while browsing the internet from installing itself and damaging your system.
So at these four screens, pick a good password for your root account, then enter your name for your user account, pick a username for your user account and pick a password for your user account.
Beyond the Base System
The installer will then configure the package manager and ask if you want to use a network mirror to supplement the software that is on the installation CD. If you're using win32-loader, you will have to select "Yes" at this screen. If you're using a CD and if you have a slow internet connection, then you may want to select "No" at this screen. If you select "Yes," the installer will help you select a network mirror (e.g. ftp.us.debian.org).
After configuring the package manager and installing some software, the installer will ask you if you would like to participate in the "popularity contest" by anonymously submitting your usage statistics to Debian.
After installing a few more items, the installer will ask you which predefined collections of software you would like to install. If you are setting up a desktop computer (as opposed to a server), then you should select "Standard system." Laptop users should also select "Laptop."
New users should also select "Desktop environment." If you're using the win32-loader and if you've been following this installation guide, then the GNOME desktop will be installed. If you're using a CD, then the desktop that comes with that CD will be installed (i.e. GNOME, KDE or XFCE).
Users with some GNU/Linux experience under their belt, may wish to install a different desktop or only install the core elements of a desktop. If you're willing to login to a command prompt and manually install your desktop, then do not select "Desktop environment," finish the installation and then turn to Appendix C for help in installing the desktop of your choice.
The installer will now begin installing a lot of software. Feel free to get up and go to the kitchen. This step will take some time.
In the next step, the installer will install GRUB, the boot loader which allows you to select an operating system when you turn on your computer. The installer will detect your MS Windows operating system and ask if you want to install the GRUB boot loader to the master boot record. Select "Yes."
The installer will then perform a few more tasks and inform you when the installation will be complete. At that point, you should remove the CD from the drive (if applicable) and reboot your computer.
Upon reboot, you'll see the GRUB menu where you can select the operating system to start (e.g. Debian or MS Windows).
If you select MS Windows, you'll see that your MS Windows operating system is still intact. The first time you boot into MS Windows, it will notice that it has been resized and it will perform a check on its files.
At this point however, you're probably more excited to see your new Debian operating system.
At the GRUB menu, you'll notice that there are two Debian options. Select the first one. Do NOT select "single-user mode!" It's not what you think it is. Single-user mode should ONLY be used in emergencies when there is no other way to start the computer.
After selecting the first Debian option, a series of boot messages will flash across your screen and then you'll reach a login screen. Enter your username and password and you'll then see your new desktop.
Congratulations! You have successfully installed a GNU/Linux operating system on your computer.
Welcome to Debian!
Appendix A -- How To Manually Select Partition Sizes
If you are not satisfied with partition sizes that the installer selects, then you can select them manually. To do that you should undo the changes by selecting the partitions you dislike and deleting them at the next screen.
For completeness, I'll assume that you have deleted all of the partitions except the MS Windows partition, denoted by "ntfs" (the name of Microsoft's file system for MS Windows XP and Vista) and your partition table looks something like this:
V IDE1 master (hda) - 30.0 GB HITACHI_DK23EA-30 > #1 primary 10.0 GB B ntfs > pri/log 20.0 GB FREE SPACE
For the purpose of this appendix, we'll first create a root partition, then we'll create a swap partition and finally, we'll create a home partition.
To start, double click on "FREE SPACE" and then select "Create a new partition."
At the next screen, select a size for the root partition, e.g. 5.4 GB. You'll then be asked if you want to set up a "Primary" or "Logical" partition. Choose "Primary" and, at the next screen, choose to place the partition at the "Beginning" of the available space.
The next screen will ask how you want to set up the partition. It assumes that you want to set up a root partition, so you should see a screen with the following information:
use as: Ext3 journaling file system mount point: / mount options: defaults ... Bootable flag: on
If any of those fields are different from what is listed above, double click on the field and set it to the correct option at the next screen. Once the fields are properly set, select "Done setting up this partition" and you'll then be taken back to the partition table screen.
V IDE1 master (hda) - 30.0 GB HITACHI_DK23EA-30 > #1 primary 10.0 GB ntfs > #2 primary 5.4 GB B f ext3 / > pri/log 14.6 GB FREE SPACE
Next you need to set up the swap partition, so double click on "FREE SPACE" and select "Create a new partition." Choose a size for the swap partition (e.g. 1.0 GB) and then choose to create a "Logical" partition. At the next screen, choose to place the partition at the "Beginning" of the available space.
The installer will assume that you want to create a home partition, but you don't want that. You want a swap partition, so double click on "use as: ..." and, at the next screen, choose "swap area" and then click "Continue." You'll then return to the partition options and (if all has gone well) you can choose "Done setting up the partition," which will return you to the partition table screen:
V IDE1 master (hda) - 30.0 GB HITACHI_DK23EA-30 > #1 primary 10.0 GB ntfs > #2 primary 5.4 GB B f ext3 / > #5 logical 1.0 GB f swap swap > pri/log 13.6 GB FREE SPACE
Finally, you need to set up your home partition, so double click on "FREE SPACE," choose to "Create a new partition" and choose to use all of the remaining space (in this case, 13.6 GB). Choose to create a "Logical" partition."
The installer will assume that you want to create a home partition, so if the fields look like the following:
use as: Ext3 journaling file system mount point: /home mount options: defaults ... Bootable flag: off
then you can select "Done setting up this partition." If not, double click on the field and set it to the correct option at the next screen. Once the fields are properly set, select "Done setting up this partition" and you'll then be taken back to the partition table screen.
V IDE1 master (hda) - 30.0 GB HITACHI_DK23EA-30 > #1 primary 10.0 GB ntfs > #2 primary 5.4 GB B f ext3 / > #5 logical 1.0 GB f swap swap > #6 logical 13.6 GB f ext3 /home
If you like the way the partition table looks, then click on "Finish partitioning and write changes to disk."
The next screen will give you one last chance to change your mind. If you decide that you don't like the partition table, then click "No" and you'll return to the partition table screen so that you can make the necessary changes. If you're satisfied, choose "Yes" and the changes will be written to disk and installation of the base system will begin.
Appendix B -- The Basics of Package Management
Unlike MS Windows users, GNU/Linux users obtain all of their software from the distribution that creates their operating system. This ensures that the software that they use is fully compatible with the other software packages that are installed on their system. This is important because many packages use the same software libraries.
To install software in Debian, the Advanced Packaging Tool (more commonly known as APT), automates the retrieval, configuration and installation of software packages. In order to retrieve software however, APT must know where to find it. That information is stored in your "sources list" file (i.e. /etc/apt/sources.list ).
The simplest way to edit your sources list file is to go to the console and become root by typing:
$ su Password:
Before going any further, stop to notice the difference in prompts. A normal user sees the $ sign, while root sees the # sign.
Now, we'll edit your sources list with nano, a simple console-based text editor. So type:
# nano /etc/apt/sources.list
If you prefer to use only Free/Open Source software, then edit the file so that it looks like this:
deb http://ftp.us.debian.org/debian/ lenny main deb-src http://ftp.us.debian.org/debian/ lenny main deb http://security.debian.org/ lenny/updates main deb-src http://security.debian.org/ lenny/updates main
Then press Ctrl+X to exit, Y to save and Enter to write the amended file.
If proprietary software does not bother you, then add "contrib non-free" to the end of each of those lines. "contrib" and "non-free" provide you with a wider range of software, but the software there is not Free/Open Source. (Strictly speaking, packages in "contrib" meet Debian's Free Software Guidelines, but depend on packages that are not Free/Open Source. As the name implies, packages in "non-free" are proprietary). You should read http://debian.org/intro/free and acquaint yourself with this issue.
Once you have edited your sources list file, you have to inform APT of the change. To do that, run:
# apt-get update
Advanced users generally prefer to perform all package management tasks from the command line, whereas new users generally prefer to use a graphical tool, such as Synaptic. So let's install Synaptic from the command line:
# apt-get install synaptic
That command will download the DEB files necessary to install Synaptic, decompress them and install them on your system.
Once the packages are installed, there's no need to leave the DEB files laying around. In fact, it's a good idea to get rid of them every once in a while, so that they do not fill up your root partition. To do that you would run:
# apt-get clean
That command will only remove the downloaded DEB files. It will not remove packages that you installed. If you want to remove a package (e.g. Synaptic), then you would run the following command:
# apt-get remove synaptic
Don't run that command. It's just there for completeness of this guide You'll want to give Synaptic a try before you remove it!
Finally, don't forget to exit out of your root account:
When starting Synaptic, you'll have to enter your root password. Once you do, you'll be able to perform package management tasks (such as searching, installing and removing) from within a graphical ("point and click") interface.
The combination of APT and Synaptic make installation of new software easier and safer than the typical MS Windows method of searching the internet for an EXE file from someone you don't know, downloading that EXE file, double-clicking on it and hoping for the best.
Debian's (enormous) repositories contain all the software you'll ever need. Stick to them and breathe easily. You'll never have to worry again.
Appendix C -- Installing Alternative Desktops
One of the great things about GNU/Linux is that it has a number of different faces. As mentioned previously, the win32-loader installs GNOME by default, but that shouldn't stop you from trying some of the others.
If you did not install a desktop when you installed Debian, then you can use this appendix to install one from the command line. Alternatively, you can use this appendix to keep your current desktop and install others, so that you can decide which one you like most.
This appendix assumes that you have already know the basics of package management (as explained in Appendix B). It also assumes that you have not installed a desktop yet.
So let's suppose you want to install KDE. To do that, you would login with your username and password and then become root by typing:
$ su Password:
Next, you would run:
# apt-get update # apt-get install alsa-base xorg kdm kde gtk-qt-engine
More experienced users may to install a smaller subset of packages. To do that you would replace "kde" with "kde-core konq-plugins" in the command above.
In either case, a lot of software will be installed, so follow it with:
# apt-get clean
Then restart your computer by running:
# shutdown -r now
After a reboot, you'll be taken directly to the KDE login screen. After entering your username and password, you'll be taken to your KDE desktop.
If you want to install XFCE, the same procedure applies, but you would run:
# apt-get update # apt-get install alsa-base xorg gdm xfce4
For some extra goodies, follow that command with:
# apt-get install hal xfce4-goodies xfce4-mixer xfce4-mixer-alsa thunar-archive-plugin
# apt-get clean # shutdown -r now
Upon reboot, you'll be taken to a login window. Entering your username and password will take you to your XFCE desktop.
If you want to install GNOME, you would run:
# apt-get update # apt-get install alsa-base xorg gdm gnome # apt-get clean # shutdown -r now
More experienced users may wish to replace "gnome" with "gnome-core" to obtain a smaller subset of packages.
Once again rebooting the computer will take you to a login window, where you'll enter your username and password to get to your GNOME desktop.
Finally, if you already have an installed desktop, then there is no reason to specify "alsa-base", "xorg", "gdm", and "kdm" when you type the commands to install GNOME, KDE or XFCE.
There's also no reason to restart the computer. Simply log out of your current desktop to return to the login screen (either KDM or GDM) and find the menu item which allows you to select the desktop that you would like to login to. Then enter your username and password to go to the desktop of your choice.
Appendix D -- Suggested Packages
Perhaps the most confusing thing about migrating to GNU/Linux is discovering the equivalents of software that you used with MS Windows. This appendix provides a list of packages to help you get started. For a more comprehensive list, see the table of software equivalents at Linux Questions: http://wiki.linuxquestions.org/wiki/Linux_software_equivalent_to_Windows_software
This appendix assumes that you know the basics of package management (described in Appendix B), and it also shows alternatives (i.e. gimp, and kolourpaint both are for image editing).
For a light-weight word processor and spreadsheet, try ?AbiWord and Gnumeric:
# apt-get install abiword gnumeric
For a more complete office software package, try OpenOffice.org:
# apt-get install openoffice.org
For PDF viewing and editing:
# apt-get install evince pdfedit pdftk
For image editing:
# apt-get install gimp kolourpaint inkscape
Of course, you'll want to print some of the documents and spreadsheets you create, so:
# apt-get install cups cups-bsd cups-driver-gutenprint cups-pdf foomatic-db foomatic-db-engine foomatic-db-gutenprint foomatic-filters ijsgutenprint libgutenprint2
For Debian's unbranded versions of Mozilla Firefox and Thunderbird, use Iceweasel and Icedove:
# apt-get install iceweasel icedove
To view embedded movies, you need the MPlayer plugin:
# apt-get install mozilla-mplayer
To view Java applets in your web browser, you need a plugin:
# apt-get install icedtea-gcjwebplugin
To view Flash videos, you'll need a plugin. Gnash provides a Free/Open Source plugin. It's not perfect, but it works reasonably well. To install it, you first need to install GStreamer:
# apt-get install gstreamer0.10-plugins-base gstreamer0.10-alsa gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-gnomevfs gstreamer0.10-plugins-good
Then you need to install Gnash:
# apt-get install mozilla-plugin-gnash gnash-cygnal
Or you can install swfdec which works very well.
# aptitude install swfdec-mozilla
For internet chat:
# apt-get install kopete pidgin
For internet telephony:
# apt-get install wengophone ekiga
# apt-get install amarok vlc mplayer gxine kaffeine k3b ffmpeg
Appendix E -- How To Work with an MS Windows XP partition
Now that you have installed Debian, you probably want to work with some of the files that you created while working in MS Windows. Usually, MS Windows XP uses the proprietary NTFS file system. Microsoft never released the specifications for this file system however, so NTFS used to be very difficult to work with.
Fortunately, a group of developers has created a Free/Open Source driver that can read and write to NTFS-formatted partitions. Unfortunately, their work encountered a lot of concerns about the safety of writing to an NTFS disk from within GNU/Linux. Many were afraid that their driver would seriously damage the NTFS partition.
The NTFS-3G developers made reliability the highest priority for their project however and concerns about the stability of their driver seem to have passed. Please consider these issues before using NTFS-3G.
If you decide not to use NTFS-3G, you will still be able to access the files on your MS Windows partition, but your access will be read-only. That may be sufficient for many people. For example, you could open up a letter that you wrote, but if you wanted to edit it and save the changes, then you would have to save those changes to a GNU/Linux partition or a FAT32 partition. Both GNU/Linux and MS Windows can read and write to FAT32 partitions.
This appendix assumes that you know the basics of package management, as described in Appendix B, and it assumes that your MS Windows XP partition is formatted with NTFS. It will address the case of read-only access and the case of read-write access.
To get started, open a console and become root by typing:
$ su Password:
If you want read-write access, you'll have to install the NTFS-3G library. You can do this by running:
# apt-get update # apt-get install ntfs-3g
If you don't want read-write access, there's no need to install the library.
Next, we need to find the partition where MS Windows XP is located. To get a list of NTFS partitions, type:
# fdisk -l | grep NTFS
Note that that command is "fdisk" followed by a dash and a lower case "L." Then there is a vertical line, called a "pipe," followed by "grep NTFS". The pipe key is located above the "Enter" key on a standard US keyboard, or to the left of the Z key on a UK keyboard.
You'll get something that looks like this:
/dev/sda1 * 1 19457 156288321 7 HPFS/NTFS
What that means is the NTFS partition is located at /dev/sda1 (the "first partition of the 'sda device'").
Before attempting to mount that partition however, we must first make sure that it is not already mounted. To check, type:
and look for the NTFS partition. If it is mounted, then type:
# umount /dev/sda1
Note that there is only one "n" in the "unmount" command.
To mount the partition, we'll first create a directory for it (assuming that one has not already been made), then we'll mount the MS Windows XP partition in that directory.
To make the directory, type:
# mkdir /media/mswindows
If you want read-only access to the partition, type:
# mount -t ntfs /dev/sda1 /media/mswindows -o ro,umask=0222
If you want read-write access to the partition, type:
# mount -t ntfs-3g /dev/sda1 /media/mswindows
If you open your file manager and go to the /media/mswindows directory, you'll now be able to see all of your files. If you used NTFS-3G, you'll also be able to write to those files.
Before going any further, remember to unmount the MS Windows XP partition when you're done. To do that, you would type:
# umount /dev/sda1
Now that we have access to the NTFS partition, let's make it more convenient by mounting that partition at boot time. I'll give you the commands you need, but you are strongly encouraged to read the ?TuxFiles explanation of the /etc/fstab file. http://www.tuxfiles.org/linuxhelp/fstab.html
Once you're ready, use nano (the console-based text editor) to edit your /etc/fstab file:
# nano /etc/fstab
After nano opens the /etc/fstab file, look to see if the "name" of the MS Windows XP partition is already in there. If it is, then "comment out" the line by placing a hash (the # symbol) at the beginning of the line. For example, you could comment out the floppy disk line of your /etc/fstab file:
# /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Commenting out the line will prevent it from being read at boot-time, but leave the text of the line in the same file (in case you need it for some odd reason).
If you want read-only access to the partition, you would add the following line to your /etc/fstab file:
/dev/sda1 /media/mswindows ntfs ro,umask=0222 0 0
If you want read-write access, you would add the following line:
/dev/sda1 /media/mswindows ntfs-3g defaults 0 0
After you have typed the appropriate line, press Ctrl+X to exit, Y to save and Enter to write.
Now exit out of root and out of the console.
# exit $ exit
After your reboot your computer, you'll notice that your MS Windows XP partition is already mounted at the /media/mswindows directory and you can access those files.
Appendix F -- Further Reading
This guide contains a lot of information to quickly get you up and running on your new GNU/Linux desktop. It is not a complete installation manual however. For more detailed installation instructions:
Debian Installation Guide -- http://debian.org/releases/stable/installmanual
There are a lot of differences between GNU/Linux and MS Windows however and it will take time to get used to your new operating system. To help bridge the gap, you may want to read:
Debian Tutorials -- http://debiantutorials.org/
Support from the Debian community can be found at:
Debian Forums -- http://forums.debian.net/
Debian User Mailing Lists -- http://lists.debian.org/users.html
To learn more about the Debian Project:
Debian website -- http://debian.org
What do you mean by Free Software? -- http://debian.org/intro/free
Debian Social Contract -- http://debian.org/social_contract