2015-03-18

Hello everyone, I'm castix but this thread is not about introducing myself. Instead, I am going to show you debian packages, their appearance in Linux and Unix systems and how they are related to the deb packages you already know from your iDevice.

What is Debian GNU

Debian GNU/Linux is a particular distribution of the Linux operating system, and numerous packages that run on it.

Debian GNU/Linux is:

Full featured

Debian includes more than 37400 software packages at present.  Users can select which packages to install; Debian provides a tool for this purpose.  You can find a list and descriptions of the packages currently available in Debian at any of the Debian mirror sites

Free to use and redistribute

There is no consortium membership or payment required to participate in its distribution and development.  All packages that are formally part of Debian GNU/Linux are free to redistribute, usually under terms specified by the GNU General Public License. The Debian FTP archives also carry approximately 187 software packages (in the `non-free' and `contrib' sections), which are distributable under specific terms included with each package.

Dynamic

With about 990 volunteers constantly contributing new and improved code, Debian is evolving rapidly.  The FTP archives are updated twice every day.

Most Linux users run a specific distribution of Linux, like Debian GNU/Linux. However, in principle, users could obtain the Linux kernel via the Internet or from elsewhere, and compile it themselves. They could then obtain source code for many applications in the same way, compile the programs, then install them into their systems. For complicated programs, this process can be not only time-consuming but error-prone. To avoid it, users often choose to obtain the operating  system and the application packages from one of the Linux distributors. What distinguishes the various Linux distributors are  the software, protocols, and practices they use for packaging,  installing, and tracking applications packages on users' systems,  combined with installation and maintenance tools, documentation, and other services. Debian GNU/Linux is the result of a volunteer effort to create a free, high-quality Unix-compatible operating system, complete with a suite of applications.  The idea of a free Unix-like system originates from the GNU project, and many of the applications that make Debian GNU/Linux so useful were developed by the GNU project. For Debian, free has the GNUish meaning (see the Debian Free Software Guidelines). When we speak of free software, we are referring to freedom, not price. Free software means that you have the freedom to distribute copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. The Debian Project was created by Ian Murdock in 1993, initially under the sponsorship of the Free Software Foundation's GNU project.  Today, Debian's developers think of it as a direct descendent of the GNU project. Although Debian GNU/Linux itself is free software, it is a base upon which value-added Linux distributions can be built.  By providing a reliable, full-featured base system, Debian provides Linux users with increased compatibility, and allows Linux distribution creators to eliminate duplication of effort and focus on the things that make their distribution special.

How does the Debian project fit in or compare with the Free Softwaren Foundation's GNU project

The Debian system builds on the ideals of free software first championed by the Free Software Foundation (http://www.gnu.org/) and in particular by Richard Stallman (http://www.stallman.org/).  FSF's powerful system development tools, utilities, and applications are also a key part of the Debian system. The Debian Project is a separate entity from the FSF, however we communicate regularly and cooperate on various projects.  The FSF explicitly requested that we call our system "Debian GNU/Linux", and we are happy to comply with that request. The FSF's long-standing objective is to develop a new operating system called GNU, based on Hurd (http://www.gnu.org/software/hurd/).  Debian is working with FSF on this system, called Debian GNU/Hurd (http://www.debian.org/ports/hurd/).

How does one pronounce Debian and what does this word mean

The project name is pronounced Deb'-ee-en, with a short e in Deb, and emphasis on the first syllable.  This word is a contraction of the names of Debra and Ian Murdock, who founded the project. (Dictionaries seem to offer some ambiguity in the pronunciation of Ian (!), but Ian prefers ee'-en.)

How source code compatible is Debian with other Unix systems

For most applications Linux source code is compatible with other Unix systems.  It supports almost everything that is available in System V Unix systems and the free and commercial BSD-derived systems.  However in the Unix business such claim has nearly no value because there is no way to prove it.  In the software development area complete compatibility is required instead of compatibility in "about most" cases.  So years ago the need for standards arose, and nowadays POSIX.1 (IEEE Standard 1003.1-1990) is one of the major standards for source code compatibility in Unix-like operating systems. Linux is intended to adhere to POSIX.1, but the POSIX standards cost real money and the POSIX.1 (and FIPS 151-2) certification is quite expensive; this made it more difficult for the Linux developers to work on complete POSIX conformance.  The certification costs make it unlikely that Debian will get an official conformance certification even if it completely passed the validation suite.  (The validation suite is now freely available, so it is expected that more people will work on POSIX.1 issues.) Unifix GmbH (Braunschweig, Germany) developed a Linux system that has been certified to conform to FIPS 151-2 (a superset of POSIX.1).  This technology was available in Unifix' own distribution called Unifix Linux 2.0 and in Lasermoon's Linux-FT.

How can I check that I am using a Debian system, and what version is it?

In order to make sure that your system has been installed from the real Debian base disks, use the

command.  It will display the name of the distribution (in Distributor ID field) and the version of the system (in Release and Codename

fields).  The following is an example run in a Debian system:

You can also check for the existence of `/etc/debian_version' file, which contains a single one-line entry giving the version number of the release, as defined by the package `base-files'. Users should be aware, however, that the Debian system consists of many parts, each of which can be updated (almost) independently.  Each Debian "release" contains well defined and unchanging contents. Updates are separately available.  For a one-line description of the installation status of package `foo', use the command `dpkg --list foo'.  To view versions of all installed packages, run:

For a more verbose description, use:

Note that the existence of the program `dpkg' shows that you should be able to install Debian packages on your system. However, since the program has been ported to many other operating systems and architectures, this is no longer a reliable method of determining is a system Debian GNU/Linux.

How does Debian support non-English languages

Debian GNU/Linux is distributed with keymaps for nearly two dozen keyboards, and with utilities (in the `kbd' package) to install, view, and modify the tables.

The installation prompts the user to specify the keyboard he will use.

▪ Vast majority of the software we packaged supports entering non-US-ASCII characters used in other Latin languages (e.g. ISO-8859-1 or ISO-8859-2), and a number of programs support multi-byte languages such as Japanese or Chinese.

▪ Currently, support for German-, Spanish-, Finnish-, French-, Hungarian-, Italian-, Japanese-, Korean-, Dutch-, Polish-, Portuguese-, Russian-, Turkish-, and Chinese-language manual pages is provided through the `manpages-LANG' packages (where LANG is the two-letter ISO country code).  To access an NLS manual page, the user must set the shell LC_MESSAGES variable to the appropriate string.

For example, in the case of the Italian-language manual pages, LC_MESSAGES needs to be set to 'italian'.  The `man' program will then search for Italian manual pages under `/usr/share/man/it/'.

What is a Debian package

Packages generally contain all of the files necessary to implement a set of related commands or features.  There are two types of Debian packages:

Binary packages, which contain executables, configuration files, man/info pages, copyright information, and other documentation.  These packages are distributed in a Debian-specific archive format; they are usually distinguished by having a '.deb' file extension.  Binary packages can be unpacked using the Debian utility `dpkg' (possibly via a frontend like `aptitude'); details are given in its manual page).

Source packages, which consist of a `.dsc' file describing the source package (including the names of the following files), a `.orig.tar.gz' file that contains the original unmodified source in gzip-compressed tar format and usually a `.diff.gz' file that contains the Debian-specific changes to the original source.  The utility `dpkg-source' packs and unpacks Debian source archives; details are provided in its manual page.  (The program `apt-get' can get used a frontend for `dpkg-source'.)

Installation of software by the package system uses "dependencies" which are carefully designed by the package maintainers.  These dependencies are documented in the `control' file associated with each package.  For example, the package containing the GNU C compiler (`gcc') "depends" on the package `binutils' which includes the linker and assembler.  If a user attempts to install `gcc' without having first installed `binutils', the package management system (dpkg) will send an error message that it also needs `binutils', and stop installing `gcc'.  (However, this facility can be overridden by the insistent user.)

Debian's packaging tools can be used to:

▪ manipulate and manage packages or parts of packages,

▪ administer local overrides of files in a package,

▪ aid developers in the construction of package archives, and

▪ aid users in the installation of packages which reside on a remote FTP site.

What is the format of a Debian binary package

A Debian "package", or a Debian archive file, contains the executable files, libraries, and documentation associated with a particular suite of program or set of related programs.  Normally, a Debian archive file has a filename that ends in `.deb'. The internals of this Debian binary packages format are described in the deb manual page.  This internal format is subject to change (between major releases of Debian GNU/Linux), therefore please always use dpkg-deb if you need to do lowlevel manipulations on `.deb' files.

As always thanks for reading,

castix

Show more