From d80c8552b60d499dbec7fb37e09ab8fc4145ce2d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 23 Sep 2007 10:04:22 +0200 Subject: Adding live-package 0.99.6-1. --- .../common/doc/FAQ/html/ch-pkg_basics.en.html | 860 +++++++++++++++++++++ 1 file changed, 860 insertions(+) create mode 100644 templates/common/doc/FAQ/html/ch-pkg_basics.en.html (limited to 'templates/common/doc/FAQ/html/ch-pkg_basics.en.html') diff --git a/templates/common/doc/FAQ/html/ch-pkg_basics.en.html b/templates/common/doc/FAQ/html/ch-pkg_basics.en.html new file mode 100644 index 000000000..0ebd3feb3 --- /dev/null +++ b/templates/common/doc/FAQ/html/ch-pkg_basics.en.html @@ -0,0 +1,860 @@ + + + + + + + + +The Debian GNU/Linux FAQ - Basics of the Debian package management system + + + + + +

+
+ +

+[ previous ] +[ Contents ] +[ 1 ] +[ 2 ] +[ 3 ] +[ 4 ] +[ 5 ] +[ 6 ] +[ 7 ] +[ 8 ] +[ 9 ] +[ 10 ] +[ 11 ] +[ 12 ] +[ 13 ] +[ 14 ] +[ 15 ] +[ next ] +

+ +
+ +

+The Debian GNU/Linux FAQ +
Chapter 6 - Basics of the Debian package management system +

+ +
+ +

6.1 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: +

+ + + +

+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, see dpkg(8).) See more in What is meant by saying that a package Depends, +Recommends, Suggests, Conflicts, Replaces +or Provides another package?, Section 6.9 below. +

+ +

+Debian's packaging tools can be used to: +

+ + + + + +
+ +

6.2 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(5) manual page. This internal format is subject to change +(between major releases of Debian GNU/Linux), therefore please always use +dpkg-deb(1) for manipulating .deb files. +

+ +
+ +

6.3 Why are Debian package file names so long?

+ +

+The Debian binary package file names conform to the following convention: +<foo>_<VersionNumber>-<DebianRevisionNumber>.deb +

+ +

+Note that foo is supposed to be the package name. As a check, one +can learn the package name associated with a particular Debian archive file +(.deb file) in one of these ways: +

+ + + +

+The VVV component is the version number specified by the upstream +developer. There are no standards in place here, so the version number may +have formats as different as "19990513" and "1.3.8pre1". +

+ +

+The RRR component is the Debian revision number, and is specified +by the Debian developer (or an individual user if he chooses to build the +package himself). This number corresponds to the revision level of the Debian +package, thus, a new revision level usually signifies changes in the Debian +Makefile (debian/rules), the Debian control file +(debian/control), the installation or removal scripts +(debian/p*), or in the configuration files used with the package. +

+ +
+ +

6.4 What is a Debian control file?

+ +

+Specifics regarding the contents of a Debian control file are provided in the +Debian Policy Manual, section 5, see What other documentation exists on and +for a Debian system?, Section 11.1. +

+ +

+Briefly, a sample control file is shown below for the Debian package hello: +

+ +
+     Package: hello
+     Priority: optional
+     Section: devel
+     Installed-Size: 45
+     Maintainer: Adam Heath <doogie@debian.org>
+     Architecture: i386
+     Version: 1.3-16
+     Depends: libc6 (>= 2.1)
+     Description: The classic greeting, and a good example
+      The GNU hello program produces a familiar, friendly greeting.  It
+      allows nonprogrammers to use a classic computer science tool which
+      would otherwise be unavailable to them.
+      .
+      Seriously, though: this is an example of how to do a Debian package.
+      It is the Debian version of the GNU Project's `hello world' program
+      (which is itself an example for the GNU Project).
+
+ +

+The Package field gives the package name. This is the name by which the +package can be manipulated by the package tools, and usually similar to but not +necessarily the same as the first component string in the Debian archive file +name. +

+ +

+The Version field gives both the upstream developer's version number and (in +the last component) the revision level of the Debian package of this program as +explained in Why are Debian package file names so long?, +Section 6.3. +

+ +

+The Architecture field specifies the chip for which this particular binary was +compiled. +

+ +

+The Depends field gives a list of packages that have to be installed in order +to install this package successfully. +

+ +

+The Installed-Size indicates how much disk space the installed package will +consume. This is intended to be used by installation front-ends in order to +show whether there is enough disk space available to install the program. +

+ +

+The Section line gives the "section" where this Debian package is +stored at the Debian FTP sites. This is the name of a subdirectory (within one +of the main directories, see What +are all those directories at the Debian FTP archives?, Section 5.1) where +the package is stored. +

+ +

+The Priority indicates how important is this package for installation, so that +semi-intelligent software like dselect or console-apt can sort the package into +a category of e.g. packages optionally installed. See What is an Essential Required, +Important, Standard, Optional, or Extra +package?, Section 6.7. +

+ +

+The Maintainer field gives the e-mail address of the person who is currently +responsible for maintaining this package. +

+ +

+The Description field gives a brief summary of the package's features. +

+ +

+For more information about all possible fields a package can have, please see +the Debian Policy Manual, section 5., "Control files and their +fields". +

+ +
+ +

6.5 What is a Debian conffile?

+ +

+Conffiles is a list of configuration files (usually placed in +/etc) that the package management system will not overwrite when +the package is upgraded. This ensures that local values for the contents of +these files will be preserved, and is a critical feature enabling the in-place +upgrade of packages on a running system. +

+ +

+To determine exactly which files are preserved during an upgrade, run: +

+ +
+     dpkg --status package
+
+ +

+And look under "Conffiles:". +

+ +
+ +

6.6 What is a Debian preinst, postinst, prerm, and postrm script?

+ +

+These files are executable scripts which are automatically run before or after +a package is installed. Along with a file named control, all of +these files are part of the "control" section of a Debian archive +file. +

+ +

+The individual files are: +

+
+
preinst
+
+

+This script executes before that package will be unpacked from its Debian +archive (".deb") file. Many 'preinst' scripts stop services for +packages which are being upgraded until their installation or upgrade is +completed (following the successful execution of the 'postinst' script). +

+
+
+
+
postinst
+
+

+This script typically completes any required configuration of the package +foo once foo has been unpacked from its Debian +archive (".deb") file. Often, 'postinst' scripts ask the user for +input, and/or warn the user that if he accepts default values, he should +remember to go back and re-configure that package as the situation warrants. +Many 'postinst' scripts then execute any commands necessary to start or restart +a service once a new package has been installed or upgraded. +

+
+
+
+
prerm
+
+

+This script typically stops any daemons which are associated with a package. +It is executed before the removal of files associated with the package. +

+
+
+
+
postrm
+
+

+This script typically modifies links or other files associated with +foo, and/or removes files created by the package. (Also see What is a Virtual Package?, Section 6.8.) +

+
+
+ +

+Currently all of the control files can be found in directory +/var/lib/dpkg/info. The files relevant to package +foo begin with the name "foo" and have file extensions +of "preinst", "postinst", etc., as appropriate. The file +foo.list in that directory lists all of the files that were +installed with the package foo. (Note that the location of these +files is a dpkg internal; you should not rely on it.) +

+ +
+ +

6.7 What is an Essential Required, Important, Standard, Optional, or Extra package?

+ +

+Each Debian package is assigned a priority by the distribution +maintainers, as an aid to the package management system. The priorities are: +

+ + + + + + +

+If you do a default Debian installation all the packages of priority +Standard or higher will be installed in your system. If you +select pre-defined tasks you will get lower priority packages too. +

+ +

+Additionally, some packages are marked as Essential since they +are absolutely necessary for the proper functioning of the system. The package +management tools will refuse to remove these. +

+ +
+ +

6.8 What is a Virtual Package?

+ +

+A virtual package is a generic name that applies to any one of a group of +packages, all of which provide similar basic functionality. For example, both +the tin and trn programs are news readers, and should +therefore satisfy any dependency of a program that required a news reader on a +system, in order to work or to be useful. They are therefore both said to +provide the "virtual package" called news-reader. +

+ +

+Similarly, smail and sendmail both provide the +functionality of a mail transport agent. They are therefore said to provide +the virtual package, "mail transport agent". If either one is +installed, then any program depending on the installation of a +mail-transport-agent will be satisfied by the existence of this +virtual package. +

+ +

+Debian provides a mechanism so that, if more than one package which provide the +same virtual package is installed on a system, then system administrators can +set one as the preferred package. The relevant command is +update-alternatives, and is described further in Some users like mawk, others like gawk; +some like vim, others like elvis; some like trn, others like tin; how does +Debian support diversity?, Section 10.10. +

+ +
+ +

6.9 What is meant by saying that a package Depends, Recommends, Suggests, Conflicts, Replaces or Provides another package?

+ +

+The Debian package system has a range of package "dependencies" which +are designed to indicate (in a single flag) the level at which Program A can +operate independently of the existence of Program B on a given system: +

+ + + + + + + +

+More detailed information on the use of each these terms can be found in the +Policy manual. +

+ +
+ +

6.10 What is meant by Pre-Depends?

+ +

+"Pre-Depends" is a special dependency. In the case of most packages, +dpkg will unpack its archive file (i.e., its .deb +file) independently of whether or not the files on which it depends exist on +the system. Simplistically, unpacking means that dpkg will +extract the files from the archive file that were meant to be installed on your +file system, and put them in place. If those packages depend on the +existence of some other packages on your system, dpkg will refuse +to complete the installation (by executing its "configure" action) +until the other packages are installed. +

+ +

+However, for some packages, dpkg will refuse even to unpack them +until certain dependencies are resolved. Such packages are said to +"Pre-depend" on the presence of some other packages. The Debian +project provided this mechanism to support the safe upgrading of systems from +a.out format to ELF format, where the order +in which packages were unpacked was critical. There are other large upgrade +situations where this method is useful, e.g. the packages with the required +priority and their LibC dependency. +

+ +

+As before, more detailed information about this can be found in the Policy +manual. +

+ +
+ +

6.11 What is meant by unknown, install, remove purge and hold in the package status?

+ +

+These "want" flags tell what the user wanted to do with a package (as +indicated either by the user's actions in the "Select" section of +dselect, or by the user's direct invocations of +dpkg). +

+ +

+Their meanings are: +

+ + + + + + +
+ +

6.12 How do I put a package on hold?

+ +

+There are three ways of holding back packages, with dpkg, aptitude or with +dselect. +

+ +

+With dpkg, you just have to export the list of package selections, with: +

+ +
+     dpkg --get-selections \* > selections.txt
+
+ +

+Then edit the resulting file selections.txt, change the line +containing the package you wish to hold, e.g. libc6, from this: +

+ +
+     libc6                                           install
+
+ +

+to this: +

+ +
+     libc6                                           hold
+
+ +

+Save the file, and reload it into dpkg database with: +

+ +
+     dpkg --set-selections < selections.txt
+
+ +

+With aptitude, you can hold a package using +

+ +
+     aptitude hold package_name
+
+ +

+and remove the hold with +

+ +
+     aptitude unhold package_name
+
+ +

+With dselect, you just have to enter the [S]elect screen, find the package you +wish to hold in its present state, and press the `=' key (or `H'). The changes +will go live immediately after you exit the [S]elect screen. +

+ +
+ +

6.13 How do I install a source package?

+ +

+Debian source packages can't actually be "installed", they are just +unpacked in whatever directory you want to build the binary packages they +produce. +

+ +

+Source packages are distributed on most of the same mirrors where you can +obtain the binary packages. If you set up your APT's +sources.list(5) to include the appropriate "deb-src" +lines, you'll be able to easily download any source packages by running +

+ +
+     apt-get source foo
+
+ +

+To help you in actually building the source package, Debian source package +provide the so-called build-dependencies mechanism. This means that the source +package maintainer keeps a list of other packages that are required to build +their package. To see how this is useful, run +

+ +
+     apt-get build-dep foo
+
+ +

+before building the source. +

+ +
+ +

6.14 How do I build binary packages from a source package?

+ +

+You will need all of foo_*.dsc, foo_*.tar.gz and foo_*.diff.gz to compile the +source (note: there is no .diff.gz for some packages that are native to +Debian). +

+ +

+Once you have them (How do I install a source package?, +Section 6.13), if you have the dpkg-dev package installed, the +following command: +

+ +
+     dpkg-source -x foo_version-revision.dsc
+
+ +

+will extract the package into a directory called foo-version. +

+ +

+If you want just to compile the package, you may cd into +foo-version directory and issue the command +

+ +
+     dpkg-buildpackage -rfakeroot -b
+
+ +

+to build the package (note that this also requires the fakeroot +package), and then +

+ +
+     dpkg -i ../foo_version-revision_arch.deb
+
+ +

+to install the newly-built package(s). +

+ +
+ +

6.15 How do I create Debian packages myself?

+ +

+For more detailed description on this, read the New Maintainers' Guide, +available in the maint-guide package, or at http://www.debian.org/doc/devel-manuals#maint-guide. +

+ +
+ +

+[ previous ] +[ Contents ] +[ 1 ] +[ 2 ] +[ 3 ] +[ 4 ] +[ 5 ] +[ 6 ] +[ 7 ] +[ 8 ] +[ 9 ] +[ 10 ] +[ 11 ] +[ 12 ] +[ 13 ] +[ 14 ] +[ 15 ] +[ next ] +

+ +
+ +

+The Debian GNU/Linux FAQ +

+ +
+version 3.1.3, 25 April 2006
+
+Authors are listed at Debian FAQ Authors
+
+
+
+ + + + + -- cgit v1.2.3