diff options
Diffstat (limited to 'includes/squeeze/common/doc/FAQ/html/ch-pkg_basics.en.html')
-rw-r--r-- | includes/squeeze/common/doc/FAQ/html/ch-pkg_basics.en.html | 1123 |
1 files changed, 1123 insertions, 0 deletions
diff --git a/includes/squeeze/common/doc/FAQ/html/ch-pkg_basics.en.html b/includes/squeeze/common/doc/FAQ/html/ch-pkg_basics.en.html new file mode 100644 index 0000000..d67b3d7 --- /dev/null +++ b/includes/squeeze/common/doc/FAQ/html/ch-pkg_basics.en.html @@ -0,0 +1,1123 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> + +<html> + +<head> + +<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> + +<title>The Debian GNU/Linux FAQ - Basics of the Debian package management system</title> + +<link href="index.en.html" rel="start"> +<link href="ch-ftparchives.en.html" rel="prev"> +<link href="ch-pkgtools.en.html" rel="next"> +<link href="index.en.html#contents" rel="contents"> +<link href="index.en.html#copyright" rel="copyright"> +<link href="ch-basic_defs.en.html" rel="chapter" title="1 Definitions and overview"> +<link href="ch-getting.en.html" rel="chapter" title="2 Getting and installing Debian GNU/Linux"> +<link href="ch-choosing.en.html" rel="chapter" title="3 Choosing a Debian distribution"> +<link href="ch-compat.en.html" rel="chapter" title="4 Compatibility issues"> +<link href="ch-software.en.html" rel="chapter" title="5 Software available in the Debian system"> +<link href="ch-ftparchives.en.html" rel="chapter" title="6 The Debian FTP archives"> +<link href="ch-pkg_basics.en.html" rel="chapter" title="7 Basics of the Debian package management system"> +<link href="ch-pkgtools.en.html" rel="chapter" title="8 The Debian package management tools"> +<link href="ch-uptodate.en.html" rel="chapter" title="9 Keeping your Debian system up-to-date"> +<link href="ch-kernel.en.html" rel="chapter" title="10 Debian and the kernel"> +<link href="ch-customizing.en.html" rel="chapter" title="11 Customizing your installation of Debian GNU/Linux"> +<link href="ch-support.en.html" rel="chapter" title="12 Getting support for Debian GNU/Linux"> +<link href="ch-contributing.en.html" rel="chapter" title="13 Contributing to the Debian Project"> +<link href="ch-redistrib.en.html" rel="chapter" title="14 Redistributing Debian GNU/Linux in a commercial product"> +<link href="ch-nexttime.en.html" rel="chapter" title="15 Changes expected in the next major release of Debian"> +<link href="ch-faqinfo.en.html" rel="chapter" title="16 General information about the FAQ"> +<link href="ch-basic_defs.en.html#s-whatisfaq" rel="section" title="1.1 What is this FAQ?"> +<link href="ch-basic_defs.en.html#s-whatisdebian" rel="section" title="1.2 What is Debian GNU/Linux?"> +<link href="ch-basic_defs.en.html#s-linux" rel="section" title="1.3 OK, now I know what Debian is... what is Linux?!"> +<link href="ch-basic_defs.en.html#s-non-linux" rel="section" title="1.4 Does Debian just do GNU/Linux?"> +<link href="ch-basic_defs.en.html#s-difference" rel="section" title="1.5 What is the difference between Debian GNU/Linux and other Linux distributions? Why should I choose Debian over some other distribution?"> +<link href="ch-basic_defs.en.html#s-gnu" rel="section" title="1.6 How does the Debian project fit in or compare with the Free Software Foundation's GNU project?"> +<link href="ch-basic_defs.en.html#s-pronunciation" rel="section" title="1.7 How does one pronounce Debian and what does this word mean?"> +<link href="ch-getting.en.html#s-version" rel="section" title="2.1 What is the latest version of Debian?"> +<link href="ch-getting.en.html#s-updatestable" rel="section" title="2.2 Are there package upgrades in `stable'?"> +<link href="ch-getting.en.html#s-boot-floppies" rel="section" title="2.3 Where/how can I get the Debian installation disks?"> +<link href="ch-getting.en.html#s-cdrom" rel="section" title="2.4 How do I install the Debian from CD-ROMs?"> +<link href="ch-getting.en.html#s-cdimage-symlinks" rel="section" title="2.5 Why does the official stable released CD-ROM contain symlinks for `frozen' and `unstable'? I thought this CD contains just `stable'!"> +<link href="ch-getting.en.html#s-remoteinstall" rel="section" title="2.6 Can I get and install Debian directly from a remote Internet site?"> +<link href="ch-getting.en.html#s-alternativebootinstaller" rel="section" title="2.7 Are there any alternative strategies for booting the system installer?"> +<link href="ch-choosing.en.html#s3.1" rel="section" title="3.1 Which Debian distribution (stable/testing/unstable) is better for me?"> +<link href="ch-choosing.en.html#s3.2" rel="section" title="3.2 But what about Knoppix, Linex, Ubuntu, and others?"> +<link href="ch-compat.en.html#s-arches" rel="section" title="4.1 On what hardware architectures/systems does Debian GNU/Linux run?"> +<link href="ch-compat.en.html#s-otherdistribs" rel="section" title="4.2 How compatible is Debian with other distributions of Linux?"> +<link href="ch-compat.en.html#s-otherunices" rel="section" title="4.3 How source code compatible is Debian with other Unix systems?"> +<link href="ch-compat.en.html#s-otherpackages" rel="section" title="4.4 Can I use Debian packages (".deb" files) on my Red Hat/Slackware/... Linux system? Can I use Red Hat packages (".rpm" files) on my Debian GNU/Linux system?"> +<link href="ch-compat.en.html#s-non-debian-programs" rel="section" title="4.5 How should I install a non-Debian program?"> +<link href="ch-compat.en.html#s-termcap" rel="section" title="4.6 Why can't I compile programs that require libtermcap?"> +<link href="ch-compat.en.html#s-accelx" rel="section" title="4.7 Why can't I install AccelX?"> +<link href="ch-compat.en.html#s-motifnls" rel="section" title="4.8 Why do my old XFree 2.1 Motif applications crash?"> +<link href="ch-software.en.html#s-apps" rel="section" title="5.1 What types of applications and development software are available for Debian GNU/Linux?"> +<link href="ch-software.en.html#s-softwareauthors" rel="section" title="5.2 Who wrote all that software?"> +<link href="ch-software.en.html#s-pkglist" rel="section" title="5.3 How can I get a current list of programs that have been packaged for Debian?"> +<link href="ch-software.en.html#s-buildenv" rel="section" title="5.4 How can I install a developer's environment to build packages?"> +<link href="ch-software.en.html#s-missing" rel="section" title="5.5 What is missing from Debian GNU/Linux?"> +<link href="ch-software.en.html#s-no-devs" rel="section" title="5.6 Why do I get "ld: cannot find -lfoo" messages when compiling programs? Why aren't there any libfoo.so files in Debian library packages?"> +<link href="ch-software.en.html#s-java" rel="section" title="5.7 (How) Does Debian support Java?"> +<link href="ch-software.en.html#s-isitdebian" rel="section" title="5.8 How can I check that I am using a Debian system, and what version is it?"> +<link href="ch-software.en.html#s-nonenglish" rel="section" title="5.9 How does Debian support non-English languages?"> +<link href="ch-software.en.html#s-pine" rel="section" title="5.10 Where is pine?"> +<link href="ch-software.en.html#s-qmail" rel="section" title="5.11 Where is qmail/ezmlm/djbdns?"> +<link href="ch-software.en.html#s-flash" rel="section" title="5.12 Where is a player for Flash (SWF)?"> +<link href="ch-software.en.html#s-googleearth" rel="section" title="5.13 Where is Google Earth?"> +<link href="ch-software.en.html#s-voip" rel="section" title="5.14 Where is VoIP software?"> +<link href="ch-software.en.html#s-nonfreewireless" rel="section" title="5.15 I have a wireless network card which doesn't work with Linux. What should I do?"> +<link href="ch-ftparchives.en.html#s-dists" rel="section" title="6.1 How many Debian distributions are there?"> +<link href="ch-ftparchives.en.html#s-codenames" rel="section" title="6.2 What are all those names like etch, lenny, etc.?"> +<link href="ch-ftparchives.en.html#s-sid" rel="section" title="6.3 What about "sid"?"> +<link href="ch-ftparchives.en.html#s-stable" rel="section" title="6.4 What does the stable directory contain?"> +<link href="ch-ftparchives.en.html#s-testing" rel="section" title="6.5 What does the testing distribution contain?"> +<link href="ch-ftparchives.en.html#s-unstable" rel="section" title="6.6 What does the unstable distribution contain?"> +<link href="ch-ftparchives.en.html#s-dirtree" rel="section" title="6.7 What are all those directories at the Debian FTP archives?"> +<link href="ch-ftparchives.en.html#s-archsections" rel="section" title="6.8 What are all those directories inside <samp>dists/stable/main</samp>?"> +<link href="ch-ftparchives.en.html#s-source" rel="section" title="6.9 Where is the source code?"> +<link href="ch-ftparchives.en.html#s-pools" rel="section" title="6.10 What's in the <samp>pool</samp> directory?"> +<link href="ch-ftparchives.en.html#s-incoming" rel="section" title="6.11 What is "incoming"?"> +<link href="ch-ftparchives.en.html#s-ownrepository" rel="section" title="6.12 How do I set up my own apt-able repository?"> +<link href="ch-pkg_basics.en.html#s-package" rel="section" title="7.1 What is a Debian package?"> +<link href="ch-pkg_basics.en.html#s-deb-format" rel="section" title="7.2 What is the format of a Debian binary package?"> +<link href="ch-pkg_basics.en.html#s-pkgname" rel="section" title="7.3 Why are Debian package file names so long?"> +<link href="ch-pkg_basics.en.html#s-controlfile" rel="section" title="7.4 What is a Debian control file?"> +<link href="ch-pkg_basics.en.html#s-conffile" rel="section" title="7.5 What is a Debian conffile?"> +<link href="ch-pkg_basics.en.html#s-maintscripts" rel="section" title="7.6 What is a Debian preinst, postinst, prerm, and postrm script?"> +<link href="ch-pkg_basics.en.html#s-priority" rel="section" title="7.7 What is an <em>Essential</em>, <em>Required</em>, <em>Important</em>, <em>Standard</em>, <em>Optional</em>, or <em>Extra</em> package?"> +<link href="ch-pkg_basics.en.html#s-virtual" rel="section" title="7.8 What is a Virtual Package?"> +<link href="ch-pkg_basics.en.html#s-depends" rel="section" title="7.9 What is meant by saying that a package <em>Depends</em>, <em>Recommends</em>, <em>Suggests</em>, <em>Conflicts</em>, <em>Replaces</em> or <em>Provides</em> another package?"> +<link href="ch-pkg_basics.en.html#s-pre-depends" rel="section" title="7.10 What is meant by Pre-Depends?"> +<link href="ch-pkg_basics.en.html#s-pkgstatus" rel="section" title="7.11 What is meant by <em>unknown</em>, <em>install</em>, <em>remove</em>, <em>purge</em> and <em>hold</em> in the package status?"> +<link href="ch-pkg_basics.en.html#s-puttingonhold" rel="section" title="7.12 How do I put a package on hold?"> +<link href="ch-pkg_basics.en.html#s-sourcepkgs" rel="section" title="7.13 How do I install a source package?"> +<link href="ch-pkg_basics.en.html#s-sourcebuild" rel="section" title="7.14 How do I build binary packages from a source package?"> +<link href="ch-pkg_basics.en.html#s-creatingdebs" rel="section" title="7.15 How do I create Debian packages myself?"> +<link href="ch-pkgtools.en.html#s-pkgprogs" rel="section" title="8.1 What programs does Debian provide for managing its packages?"> +<link href="ch-pkgtools.en.html#s-updaterunning" rel="section" title="8.2 Debian claims to be able to update a running program; how is this accomplished?"> +<link href="ch-pkgtools.en.html#s-whatpackages" rel="section" title="8.3 How can I tell what packages are already installed on a Debian system?"> +<link href="ch-pkgtools.en.html#s-listfiles" rel="section" title="8.4 How to display the files of a package installed?"> +<link href="ch-pkgtools.en.html#s-filesearch" rel="section" title="8.5 How can I find out what package produced a particular file?"> +<link href="ch-pkgtools.en.html#s-datapackages" rel="section" title="8.6 Why doesn't get `foo-data' removed when I uninstall `foo'? How do I make sure old unused library-packages get purged?"> +<link href="ch-uptodate.en.html#s-howtocurrent" rel="section" title="9.1 How can I keep my Debian system current?"> +<link href="ch-uptodate.en.html#s-upgradesingle" rel="section" title="9.2 Must I go into single user mode in order to upgrade a package?"> +<link href="ch-uptodate.en.html#s-savedebs" rel="section" title="9.3 Do I have to keep all those .deb archive files on my disk?"> +<link href="ch-uptodate.en.html#s-keepingalog" rel="section" title="9.4 How can I keep a log of the packages I added to the system? I'd like to know when which package upgrades and removals have occured!"> +<link href="ch-uptodate.en.html#s-autoupdate" rel="section" title="9.5 Can I automatically update the system?"> +<link href="ch-uptodate.en.html#s-aptproxy" rel="section" title="9.6 I have several machines how can I download the updates only one time?"> +<link href="ch-kernel.en.html#s-non-debian-kernel" rel="section" title="10.1 Can I install and compile a kernel without some Debian-specific tweaking?"> +<link href="ch-kernel.en.html#s-customkernel" rel="section" title="10.2 What tools does Debian provide to build custom kernels?"> +<link href="ch-kernel.en.html#s-custombootdisk" rel="section" title="10.3 How can I make a custom boot floppy?"> +<link href="ch-kernel.en.html#s-modules" rel="section" title="10.4 What special provisions does Debian provide to deal with modules?"> +<link href="ch-kernel.en.html#s-removeoldkernel" rel="section" title="10.5 Can I safely de-install an old kernel package, and if so, how?"> +<link href="ch-customizing.en.html#s-papersize" rel="section" title="11.1 How can I ensure that all programs use the same paper size?"> +<link href="ch-customizing.en.html#s-hardwareaccess" rel="section" title="11.2 How can I provide access to hardware peripherals, without compromising security?"> +<link href="ch-customizing.en.html#s-consolefont" rel="section" title="11.3 How do I load a console font on startup the Debian way?"> +<link href="ch-customizing.en.html#s-appdefaults" rel="section" title="11.4 How can I configure an X11 program's application defaults?"> +<link href="ch-customizing.en.html#s-booting" rel="section" title="11.5 Every distribution seems to have a different boot-up method. Tell me about Debian's."> +<link href="ch-customizing.en.html#s-custombootscripts" rel="section" title="11.6 It looks as if Debian does not use <samp>rc.local</samp> to customize the boot process; what facilities are provided?"> +<link href="ch-customizing.en.html#s-interconffiles" rel="section" title="11.7 How does the package management system deal with packages that contain configuration files for other packages?"> +<link href="ch-customizing.en.html#s-divert" rel="section" title="11.8 How do I override a file installed by a package, so that a different version can be used instead?"> +<link href="ch-customizing.en.html#s-localpackages" rel="section" title="11.9 How can I have my locally-built package included in the list of available packages that the package management system knows about?"> +<link href="ch-customizing.en.html#s-diverse" rel="section" title="11.10 Some users like mawk, others like gawk; some like vim, others like elvis; some like trn, others like tin; how does Debian support diversity?"> +<link href="ch-support.en.html#s-debiandocs" rel="section" title="12.1 What other documentation exists on and for a Debian system?"> +<link href="ch-support.en.html#s-onlineresources" rel="section" title="12.2 Are there any on-line resources for discussing Debian?"> +<link href="ch-support.en.html#s-searchtools" rel="section" title="12.3 Is there a quick way to search for information on Debian GNU/Linux?"> +<link href="ch-support.en.html#s-buglogs" rel="section" title="12.4 Are there logs of known bugs?"> +<link href="ch-support.en.html#s-bugreport" rel="section" title="12.5 How do I report a bug in Debian?"> +<link href="ch-contributing.en.html#s-contrib" rel="section" title="13.1 How can I become a Debian software developer?"> +<link href="ch-contributing.en.html#s-contribresources" rel="section" title="13.2 How can I contribute resources to the Debian project?"> +<link href="ch-contributing.en.html#s-supportingorganizations" rel="section" title="13.3 How can I contribute financially to the Debian project?"> +<link href="ch-redistrib.en.html#s-sellcds" rel="section" title="14.1 Can I make and sell Debian CDs?"> +<link href="ch-redistrib.en.html#s-packagednonfree" rel="section" title="14.2 Can Debian be packaged with non-free software?"> +<link href="ch-redistrib.en.html#s-childistro" rel="section" title="14.3 I am making a special Linux distribution for a "vertical market". Can I use Debian GNU/Linux for the guts of a Linux system and add my own applications on top of it?"> +<link href="ch-redistrib.en.html#s-commercialdebs" rel="section" title="14.4 Can I put my commercial program in a Debian "package" so that it installs effortlessly on any Debian system?"> +<link href="ch-nexttime.en.html#s-i18n" rel="section" title="15.1 Extended support for non-English users"> +<link href="ch-nexttime.en.html#s-dependencybasedboot" rel="section" title="15.2 Faster booting: Dependency based boot sequence"> +<link href="ch-nexttime.en.html#s-di" rel="section" title="15.3 Improvements in the Debian Installer"> +<link href="ch-nexttime.en.html#s-morearches" rel="section" title="15.4 More architectures"> +<link href="ch-nexttime.en.html#s-morekernels" rel="section" title="15.5 More kernels"> +<link href="ch-faqinfo.en.html#s-authors" rel="section" title="16.1 Authors"> +<link href="ch-faqinfo.en.html#s-feedback" rel="section" title="16.2 Feedback"> +<link href="ch-faqinfo.en.html#s-latest" rel="section" title="16.3 Availability"> +<link href="ch-faqinfo.en.html#s-docformat" rel="section" title="16.4 Document format"> +<link href="ch-choosing.en.html#s3.1.1" rel="subsection" title="3.1.1 You asked me to install stable, but in stable so and so hardware is not detected/working. What should I do?"> +<link href="ch-choosing.en.html#s3.1.2" rel="subsection" title="3.1.2 Will there be different different versions of packages in different distributions?"> +<link href="ch-choosing.en.html#s3.1.3" rel="subsection" title="3.1.3 The stable distributions really contains outdated packages. Just look at Kde, Gnome, Xorg or even the kernel. They are very old. Why is it so?"> +<link href="ch-choosing.en.html#s3.1.4" rel="subsection" title="3.1.4 If I were to decide to change to another distribution, Can I do that?"> +<link href="ch-choosing.en.html#s3.1.5" rel="subsection" title="3.1.5 Could you tell me whether to install testing or unstable?"> +<link href="ch-choosing.en.html#s3.1.6" rel="subsection" title="3.1.6 You are talking about testing being broken. What do you mean by that?"> +<link href="ch-choosing.en.html#s3.1.7" rel="subsection" title="3.1.7 Why is it that testing could be broken for months? Wont the fixes introduced in unstable flow directly down into testing?"> +<link href="ch-choosing.en.html#s3.1.8" rel="subsection" title="3.1.8 From an administrator's point of view, Which distribution requires more attention?"> +<link href="ch-choosing.en.html#s3.1.9" rel="subsection" title="3.1.9 What happens when a new release is made?"> +<link href="ch-choosing.en.html#s3.1.10" rel="subsection" title="3.1.10 I have a working Desktop/cluster with Debian installed. How do I know which distribution I am running?"> +<link href="ch-choosing.en.html#s3.1.11" rel="subsection" title="3.1.11 I am currently tracking stable. Can I change to testing or unstable? If so, How?"> +<link href="ch-choosing.en.html#s3.1.12" rel="subsection" title="3.1.12 I am currently tracking testing (lenny). What will happen when a release is made? Will I still be tracking testing or will my machine be running the new stable distribution?"> +<link href="ch-choosing.en.html#s3.1.13" rel="subsection" title="3.1.13 I am still confused. What did you say I should install?"> +<link href="ch-choosing.en.html#s3.2.1" rel="subsection" title="3.2.1 I know that Knoppix/Linex/Ubuntu/... is Debian-based. So after installing it on the hard disk, can I use 'apt' package tools on it?"> +<link href="ch-choosing.en.html#s3.2.2" rel="subsection" title="3.2.2 I installed Knoppix/Linex/Ubuntu/... on my hard disk. Now I have a problem. What should I do?"> +<link href="ch-choosing.en.html#s3.2.3" rel="subsection" title="3.2.3 I'm using Knoppix/Linex/Ubuntu/... and now I want to use Debian. How do I migrate?"> +<link href="ch-ftparchives.en.html#s-oldcodenames" rel="subsection" title="6.2.1 Which other codenames have been used in the past?"> +<link href="ch-ftparchives.en.html#s-sourceforcodenames" rel="subsection" title="6.2.2 Where do these codenames come from?"> +<link href="ch-ftparchives.en.html#s-frozen" rel="subsection" title="6.5.1 What about "testing"? How is it `frozen'?"> +<link href="ch-pkgtools.en.html#s-dpkg" rel="subsection" title="8.1.1 dpkg"> +<link href="ch-pkgtools.en.html#s-apt-get" rel="subsection" title="8.1.2 APT"> +<link href="ch-pkgtools.en.html#s-aptitude" rel="subsection" title="8.1.3 aptitude"> +<link href="ch-pkgtools.en.html#s-synaptic" rel="subsection" title="8.1.4 synaptic"> +<link href="ch-pkgtools.en.html#s-tasksel" rel="subsection" title="8.1.5 tasksel"> +<link href="ch-pkgtools.en.html#s-dpkg-extra" rel="subsection" title="8.1.6 Other package management tools"> +<link href="ch-pkgtools.en.html#s-dselect" rel="subsection" title="8.1.6.1 dselect"> +<link href="ch-pkgtools.en.html#s-dpkg-deb" rel="subsection" title="8.1.6.2 dpkg-deb"> +<link href="ch-pkgtools.en.html#s-dpkg-split" rel="subsection" title="8.1.6.3 dpkg-split"> +<link href="ch-uptodate.en.html#s-aptitude-upgrade" rel="subsection" title="9.1.1 aptitude"> +<link href="ch-uptodate.en.html#s-apt" rel="subsection" title="9.1.2 apt-get, dselect and apt-cdrom"> +<link href="ch-uptodate.en.html#s-update_aptitude" rel="subsection" title="9.1.3 aptitude"> +<link href="ch-uptodate.en.html#s-mirror" rel="subsection" title="9.1.4 mirror"> +<link href="ch-uptodate.en.html#s-dpkg-mountable" rel="subsection" title="9.1.5 dpkg-mountable"> +<link href="ch-support.en.html#s12.2.1" rel="subsection" title="12.2.1 Mailing lists"> +<link href="ch-support.en.html#s-mailinglistconduct" rel="subsection" title="12.2.1.1 What is the code of conduct for the mailing lists?"> +<link href="ch-support.en.html#s12.2.2" rel="subsection" title="12.2.2 Web forums"> +<link href="ch-support.en.html#s12.2.3" rel="subsection" title="12.2.3 Wiki"> +<link href="ch-support.en.html#s12.2.4" rel="subsection" title="12.2.4 Maintainers"> +<link href="ch-support.en.html#s12.2.5" rel="subsection" title="12.2.5 Usenet newsgroups"> +<link href="ch-contributing.en.html#s-SPI" rel="subsection" title="13.3.1 Software in the Public Interest"> +<link href="ch-contributing.en.html#s-FSF" rel="subsection" title="13.3.2 Free Software Foundation"> + +</head> + +<body> + +<p><a name="ch-pkg_basics"></a></p> +<hr> + +<p> +[ <a href="ch-ftparchives.en.html">previous</a> ] +[ <a href="index.en.html#contents">Contents</a> ] +[ <a href="ch-basic_defs.en.html">1</a> ] +[ <a href="ch-getting.en.html">2</a> ] +[ <a href="ch-choosing.en.html">3</a> ] +[ <a href="ch-compat.en.html">4</a> ] +[ <a href="ch-software.en.html">5</a> ] +[ <a href="ch-ftparchives.en.html">6</a> ] +[ 7 ] +[ <a href="ch-pkgtools.en.html">8</a> ] +[ <a href="ch-uptodate.en.html">9</a> ] +[ <a href="ch-kernel.en.html">10</a> ] +[ <a href="ch-customizing.en.html">11</a> ] +[ <a href="ch-support.en.html">12</a> ] +[ <a href="ch-contributing.en.html">13</a> ] +[ <a href="ch-redistrib.en.html">14</a> ] +[ <a href="ch-nexttime.en.html">15</a> ] +[ <a href="ch-faqinfo.en.html">16</a> ] +[ <a href="ch-pkgtools.en.html">next</a> ] +</p> + +<hr> + +<h1> +The Debian GNU/Linux FAQ +<br>Chapter 7 - Basics of the Debian package management system +</h1> + +<hr> + +<p> +This chapter touches on some lower level internals of Debian package +management. If you're interested mainly in <em>usage</em> of the relevant +tools, skip to chapters <a href="ch-pkgtools.en.html">The Debian package +management tools, Chapter 8</a> and/or <a href="ch-uptodate.en.html">Keeping +your Debian system up-to-date, Chapter 9</a>. +</p> + +<hr> + +<h2><a name="s-package"></a>7.1 What is a Debian package?</h2> + +<p> +Packages generally contain all of the files necessary to implement a set of +related commands or features. There are two types of Debian packages: +</p> +<ul> +<li> +<p> +<em>Binary packages</em>, which contain executables, configuration files, +man/info pages, copyright information, and other documentation. These packages +are distributed in a Debian-specific archive format (see <a +href="#s-deb-format">What is the format of a Debian binary package?, Section +7.2</a>); they are usually distinguished by having a '.deb' file extension. +Binary packages can be unpacked using the Debian utility <samp>dpkg</samp> +(possibly via a frontend like <code>aptitude</code>); details are given in its +manual page. +</p> +</li> +</ul> +<ul> +<li> +<p> +<em>Source packages</em>, which consist of a <samp>.dsc</samp> file describing +the source package (including the names of the following files), a +<samp>.orig.tar.gz</samp> file that contains the original unmodified source in +gzip-compressed tar format and usually a <samp>.diff.gz</samp> file that +contains the Debian-specific changes to the original source. The utility +<samp>dpkg-source</samp> packs and unpacks Debian source archives; details are +provided in its manual page. (The program <code>apt-get</code> can get used a +frontend for <samp>dpkg-source</samp>.) +</p> +</li> +</ul> + +<p> +Installation of software by the package system uses "dependencies" +which are carefully designed by the package maintainers. These dependencies +are documented in the <samp>control</samp> file associated with each package. +For example, the package containing the GNU C compiler (<code>gcc</code>) +"depends" on the package <code>binutils</code> which includes the +linker and assembler. If a user attempts to install <code>gcc</code> without +having first installed <code>binutils</code>, the package management system +(dpkg) will send an error message that it also needs <code>binutils</code>, and +stop installing <code>gcc</code>. (However, this facility can be overridden by +the insistent user, see <code>dpkg(8)</code>.) See more in <a +href="#s-depends">What is meant by saying that a package <em>Depends</em>, +<em>Recommends</em>, <em>Suggests</em>, <em>Conflicts</em>, <em>Replaces</em> +or <em>Provides</em> another package?, Section 7.9</a> below. +</p> + +<p> +Debian's packaging tools can be used to: +</p> +<ul> +<li> +<p> +manipulate and manage packages or parts of packages, +</p> +</li> +</ul> +<ul> +<li> +<p> +administer local overrides of files in a package, +</p> +</li> +</ul> +<ul> +<li> +<p> +aid developers in the construction of package archives, and +</p> +</li> +</ul> +<ul> +<li> +<p> +aid users in the installation of packages which reside on a remote FTP site. +</p> +</li> +</ul> + +<hr> + +<h2><a name="s-deb-format"></a>7.2 What is the format of a Debian binary package?</h2> + +<p> +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 <samp>.deb</samp>. +</p> + +<p> +The internals of this Debian binary packages format are described in the +<code>deb(5)</code> manual page. This internal format is subject to change +(between major releases of Debian GNU/Linux), therefore please always use +<code>dpkg-deb(1)</code> if you need to do lowlevel manipulations on +<samp>.deb</samp> files. +</p> + +<hr> + +<h2><a name="s-pkgname"></a>7.3 Why are Debian package file names so long?</h2> + +<p> +The Debian binary package file names conform to the following convention: +<foo>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb +</p> + +<p> +Note that <samp>foo</samp> 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: +</p> +<ul> +<li> +<p> +inspect the "Packages" file in the directory where it was stored at a +Debian FTP archive site. This file contains a stanza describing each package; +the first field in each stanza is the formal package name. +</p> +</li> +</ul> +<ul> +<li> +<p> +use the command <samp>dpkg --info foo_VVV-RRR_AAA.deb</samp> (where VVV, RRR +and AAA are the version, revision and architecture of the package in question, +respectively). This displays, among other things, the package name +corresponding to the archive file being unpacked. +</p> +</li> +</ul> + +<p> +The <samp>VVV</samp> 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". +</p> + +<p> +The <samp>RRR</samp> 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 (<samp>debian/rules</samp>), the Debian control file +(<samp>debian/control</samp>), the installation or removal scripts +(<samp>debian/p*</samp>), or in the configuration files used with the package. +</p> + +<p> +The <samp>AAA</samp> component identifies the processor for which the package +was built. This is commonly <samp>i386</samp>, which refers to chips +compatible to Intel's 386 or later versions. For other possibilities review +Debian's FTP directory structure at <a +href="ch-ftparchives.en.html#s-dirtree">What are all those directories at the +Debian FTP archives?, Section 6.7</a>. For details, see the description of +"Debian architecture" in the manual page +<code>dpkg-architecture(1)</code>. +</p> + +<hr> + +<h2><a name="s-controlfile"></a>7.4 What is a Debian control file?</h2> + +<p> +Specifics regarding the contents of a Debian control file are provided in the +Debian Policy Manual, section 5, see <a +href="ch-support.en.html#s-debiandocs">What other documentation exists on and +for a Debian system?, Section 12.1</a>. +</p> + +<p> +Briefly, a sample control file is shown below for the Debian package hello: +</p> + +<pre> + 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). +</pre> + +<p> +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. +</p> + +<p> +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 <a href="#s-pkgname">Why are Debian package file names so long?, +Section 7.3</a>. +</p> + +<p> +The Architecture field specifies the chip for which this particular binary was +compiled. +</p> + +<p> +The Depends field gives a list of packages that have to be installed in order +to install this package successfully. +</p> + +<p> +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. +</p> + +<p> +The Section line gives the "section" where this Debian package is +stored at the Debian FTP sites. +</p> + +<p> +The Priority indicates how important is this package for installation, so that +semi-intelligent software like dselect or aptitude can sort the package into a +category of e.g. packages optionally installed. See <a +href="#s-priority">What is an <em>Essential</em>, <em>Required</em>, +<em>Important</em>, <em>Standard</em>, <em>Optional</em>, or <em>Extra</em> +package?, Section 7.7</a>. +</p> + +<p> +The Maintainer field gives the e-mail address of the person who is currently +responsible for maintaining this package. +</p> + +<p> +The Description field gives a brief summary of the package's features. +</p> + +<p> +For more information about all possible fields a package can have, please see +the Debian Policy Manual, section 5., "Control files and their +fields". +</p> + +<hr> + +<h2><a name="s-conffile"></a>7.5 What is a Debian conffile?</h2> + +<p> +Conffiles is a list of configuration files (usually placed in +<samp>/etc</samp>) 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. +</p> + +<p> +To determine exactly which files are preserved during an upgrade, run: +</p> + +<pre> + dpkg --status package +</pre> + +<p> +And look under "Conffiles:". +</p> + +<hr> + +<h2><a name="s-maintscripts"></a>7.6 What is a Debian preinst, postinst, prerm, and postrm script?</h2> + +<p> +These files are executable scripts which are automatically run before or after +a package is installed. Along with a file named <samp>control</samp>, all of +these files are part of the "control" section of a Debian archive +file. +</p> + +<p> +The individual files are: +</p> +<dl> +<dt>preinst</dt> +<dd> +<p> +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). +</p> +</dd> +</dl> +<dl> +<dt>postinst</dt> +<dd> +<p> +This script typically completes any required configuration of the package +<samp>foo</samp> once <samp>foo</samp> 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. +</p> +</dd> +</dl> +<dl> +<dt>prerm</dt> +<dd> +<p> +This script typically stops any daemons which are associated with a package. +It is executed before the removal of files associated with the package. +</p> +</dd> +</dl> +<dl> +<dt>postrm</dt> +<dd> +<p> +This script typically modifies links or other files associated with +<samp>foo</samp>, and/or removes files created by the package. (Also see <a +href="#s-virtual">What is a Virtual Package?, Section 7.8</a>.) +</p> +</dd> +</dl> + +<p> +Currently all of the control files can be found in directory +<samp>/var/lib/dpkg/info</samp>. The files relevant to package +<samp>foo</samp> begin with the name "foo" and have file extensions +of "preinst", "postinst", etc., as appropriate. The file +<samp>foo.list</samp> in that directory lists all of the files that were +installed with the package <samp>foo</samp>. (Note that the location of these +files is a dpkg internal; you should not rely on it.) +</p> + +<hr> + +<h2><a name="s-priority"></a>7.7 What is an <em>Essential</em>, <em>Required</em>, <em>Important</em>, <em>Standard</em>, <em>Optional</em>, or <em>Extra</em> package?</h2> + +<p> +Each Debian package is assigned a <em>priority</em> by the distribution +maintainers, as an aid to the package management system. The priorities are: +</p> +<ul> +<li> +<p> +<strong>Required</strong>: packages that are necessary for the proper +functioning of the system. +</p> + +<p> +This includes all tools that are necessary to repair system defects. You must +not remove these packages or your system may become totally broken and you may +probably not even be able to use dpkg to put things back. Systems with only +the Required packages are probably unusable, but they do have enough +functionality to allow the sysadmin to boot and install more software. +</p> +</li> +</ul> +<ul> +<li> +<p> +<strong>Important</strong> packages should be found on any Unix-like system. +</p> + +<p> +Other packages which the system will not run well or be usable without will be +here. This does <em>NOT</em> include Emacs or X or TeX or any other large +applications. These packages only constitute the bare infrastructure. +</p> +</li> +</ul> +<ul> +<li> +<p> +<strong>Standard</strong> packages are standard on any Linux system, including +a reasonably small but not too limited character-mode system. Tools are +included to be able to browse the web (using w3m), send e-mail (with mutt) and +download files from FTP servers. +</p> + +<p> +This is what will install by default if users do not select anything else. It +does not include many large applications, but it does include the Python +interpreter and some server software like OpenSSH (for remote administration), +Exim (for mail delivery, although it can be configured for local delivery +only), an identd server (pidentd) and the RPC portmapper +(<samp>portmap</samp>). It also includes some common generic documentation +that most users will find helpful. +</p> +</li> +</ul> +<ul> +<li> +<p> +<strong>Optional</strong> packages include all those that you might reasonably +want to install if you did not know what it was, or do not have specialized +requirements. +</p> + +<p> +This includes X, a full TeX distribution, and lots of applications. +</p> +</li> +</ul> +<ul> +<li> +<p> +<strong>Extra</strong>: packages that either conflict with others with higher +priorities, are only likely to be useful if you already know what they are, or +have specialized requirements that make them unsuitable for +"Optional". +</p> +</li> +</ul> + +<p> +If you do a default Debian installation all the packages of priority +<strong>Standard</strong> or higher will be installed in your system. If you +select pre-defined tasks you will get lower priority packages too. +</p> + +<p> +Additionally, some packages are marked as <strong>Essential</strong> since they +are absolutely necessary for the proper functioning of the system. The package +management tools will refuse to remove these. +</p> + +<hr> + +<h2><a name="s-virtual"></a>7.8 What is a Virtual Package?</h2> + +<p> +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 <samp>tin</samp> and <samp>trn</samp> 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 <samp>news-reader</samp>. +</p> + +<p> +Similarly, <samp>smail</samp> and <samp>sendmail</samp> 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 +<samp>mail-transport-agent</samp> will be satisfied by the existence of this +virtual package. +</p> + +<p> +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 +<samp>update-alternatives</samp>, and is described further in <a +href="ch-customizing.en.html#s-diverse">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 11.10</a>. +</p> + +<hr> + +<h2><a name="s-depends"></a>7.9 What is meant by saying that a package <em>Depends</em>, <em>Recommends</em>, <em>Suggests</em>, <em>Conflicts</em>, <em>Replaces</em> or <em>Provides</em> another package?</h2> + +<p> +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: +</p> +<ul> +<li> +<p> +Package A <em>depends</em> on Package B if B absolutely must be installed in +order to run A. In some cases, A depends not only on B, but on a version of B. +In this case, the version dependency is usually a lower limit, in the sense +that A depends on any version of B more recent than some specified version. +</p> +</li> +</ul> +<ul> +<li> +<p> +Package A <em>recommends</em> Package B, if the package maintainer judges that +most users would not want A without also having the functionality provided by +B. +</p> +</li> +</ul> +<ul> +<li> +<p> +Package A <em>suggests</em> Package B if B contains files that are related to +(and usually enhance) the functionality of A. +</p> +</li> +</ul> +<ul> +<li> +<p> +Package A <em>conflicts</em> with Package B when A will not operate if B is +installed on the system. Most often, conflicts are cases where A contains +files which are an improvement over those in B. "Conflicts" are +often combined with "replaces". +</p> +</li> +</ul> +<ul> +<li> +<p> +Package A <em>replaces</em> Package B when files installed by B are removed and +(in some cases) over-written by files in A. +</p> +</li> +</ul> +<ul> +<li> +<p> +Package A <em>provides</em> Package B when all of the files and functionality +of B are incorporated into A. This mechanism provides a way for users with +constrained disk space to get only that part of package A which they really +need. +</p> +</li> +</ul> + +<p> +More detailed information on the use of each these terms can be found in the +Policy manual. +</p> + +<hr> + +<h2><a name="s-pre-depends"></a>7.10 What is meant by Pre-Depends?</h2> + +<p> +"Pre-Depends" is a special dependency. In the case of most packages, +<samp>dpkg</samp> will unpack its archive file (i.e., its <samp>.deb</samp> +file) independently of whether or not the files on which it depends exist on +the system. Simplistically, unpacking means that <samp>dpkg</samp> 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 <em>depend</em> on the +existence of some other packages on your system, <samp>dpkg</samp> will refuse +to complete the installation (by executing its "configure" action) +until the other packages are installed. +</p> + +<p> +However, for some packages, <samp>dpkg</samp> 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 +<samp>a.out</samp> format to <samp>ELF</samp> format, where the <em>order</em> +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. +</p> + +<p> +As before, more detailed information about this can be found in the Policy +manual. +</p> + +<hr> + +<h2><a name="s-pkgstatus"></a>7.11 What is meant by <em>unknown</em>, <em>install</em>, <em>remove</em>, <em>purge</em> and <em>hold</em> in the package status?</h2> + +<p> +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 +<samp>dselect</samp>, or by the user's direct invocations of +<samp>dpkg</samp>). +</p> + +<p> +Their meanings are: +</p> +<ul> +<li> +<p> +unknown - the user has never indicated whether he wants the package +</p> +</li> +</ul> +<ul> +<li> +<p> +install - the user wants the package installed or upgraded +</p> +</li> +</ul> +<ul> +<li> +<p> +remove - the user wants the package removed, but does not want to remove any +existing configuration files. +</p> +</li> +</ul> +<ul> +<li> +<p> +purge - the user wants the package to be removed completely, including its +configuration files. +</p> +</li> +</ul> +<ul> +<li> +<p> +hold - the user wants this package not to be processed, i.e., he wants to keep +the current version with the current status whatever that is. +</p> +</li> +</ul> + +<hr> + +<h2><a name="s-puttingonhold"></a>7.12 How do I put a package on hold?</h2> + +<p> +There are three ways of holding back packages, with dpkg, aptitude or with +dselect. +</p> + +<p> +With dpkg, you have to export the list of package selections, with: +</p> + +<pre> + dpkg --get-selections \* > selections.txt +</pre> + +<p> +Then edit the resulting file <code>selections.txt</code>, change the line +containing the package you wish to hold, e.g. <code>libc6</code>, from this: +</p> + +<pre> + libc6 install +</pre> + +<p> +to this: +</p> + +<pre> + libc6 hold +</pre> + +<p> +Save the file, and reload it into dpkg database with: +</p> + +<pre> + dpkg --set-selections < selections.txt +</pre> + +<p> +With aptitude, you can hold a package using +</p> + +<pre> + aptitude hold package_name +</pre> + +<p> +and remove the hold with +</p> + +<pre> + aptitude unhold package_name +</pre> + +<p> +With dselect, you 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. +</p> + +<hr> + +<h2><a name="s-sourcepkgs"></a>7.13 How do I install a source package?</h2> + +<p> +Debian source packages can't actually be "installed", they are just +unpacked in whatever directory you want to build the binary packages they +produce. +</p> + +<p> +Source packages are distributed on most of the same mirrors where you can +obtain the binary packages. If you set up your APT's +<code>sources.list(5)</code> to include the appropriate "deb-src" +lines, you'll be able to easily download any source packages by running +</p> + +<pre> + apt-get source foo +</pre> + +<p> +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 +</p> + +<pre> + apt-get build-dep foo +</pre> + +<p> +before building the source. +</p> + +<hr> + +<h2><a name="s-sourcebuild"></a>7.14 How do I build binary packages from a source package?</h2> + +<p> +The preferred way to do this is by using various wrapper tools. We'll show how +it's done using the <samp>devscripts</samp> tools. Install this package if you +haven't done so already. +</p> + +<p> +Now, first get the source package: +</p> + +<pre> + apt-get source foo +</pre> + +<p> +and change to the source tree: +</p> + +<pre> + cd foo-* +</pre> + +<p> +Then install needed build-dependencies (if any): +</p> + +<pre> + sudo apt-get build-dep foo +</pre> + +<p> +Then create a dedicated version of your own build (so that you won't get +confused later when Debian itself releases a new version) +</p> + +<pre> + dch -l local 'Blah blah blah' +</pre> + +<p> +And finally build your package +</p> + +<pre> + debuild -us -uc +</pre> + +<p> +If everything worked out fine, you should now be able to install your package +by running +</p> + +<pre> + sudo dpkg -i ../*.deb +</pre> + +<p> +If you prefer to do things manually, and don't want to use +<samp>devscripts</samp>, follow this procedure: +</p> + +<p> +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). +</p> + +<p> +Once you have them (<a href="#s-sourcepkgs">How do I install a source package?, +Section 7.13</a>), if you have the <code>dpkg-dev</code> package installed, the +following command: +</p> + +<pre> + dpkg-source -x foo_version-revision.dsc +</pre> + +<p> +will extract the package into a directory called <samp>foo-version</samp>. +</p> + +<p> +If you want just to compile the package, you may cd into +<samp>foo-version</samp> directory and issue the command +</p> + +<pre> + dpkg-buildpackage -rfakeroot -b +</pre> + +<p> +to build the package (note that this also requires the <code>fakeroot</code> +package), and then +</p> + +<pre> + dpkg -i ../foo_version-revision_arch.deb +</pre> + +<p> +to install the newly-built package(s). +</p> + +<hr> + +<h2><a name="s-creatingdebs"></a>7.15 How do I create Debian packages myself?</h2> + +<p> +For a more detailed description on this, read the New Maintainers' Guide, +available in the <code>maint-guide</code> package, or at <code><a +href="http://www.debian.org/doc/devel-manuals#maint-guide">http://www.debian.org/doc/devel-manuals#maint-guide</a></code>. +</p> + +<hr> + +<p> +[ <a href="ch-ftparchives.en.html">previous</a> ] +[ <a href="index.en.html#contents">Contents</a> ] +[ <a href="ch-basic_defs.en.html">1</a> ] +[ <a href="ch-getting.en.html">2</a> ] +[ <a href="ch-choosing.en.html">3</a> ] +[ <a href="ch-compat.en.html">4</a> ] +[ <a href="ch-software.en.html">5</a> ] +[ <a href="ch-ftparchives.en.html">6</a> ] +[ 7 ] +[ <a href="ch-pkgtools.en.html">8</a> ] +[ <a href="ch-uptodate.en.html">9</a> ] +[ <a href="ch-kernel.en.html">10</a> ] +[ <a href="ch-customizing.en.html">11</a> ] +[ <a href="ch-support.en.html">12</a> ] +[ <a href="ch-contributing.en.html">13</a> ] +[ <a href="ch-redistrib.en.html">14</a> ] +[ <a href="ch-nexttime.en.html">15</a> ] +[ <a href="ch-faqinfo.en.html">16</a> ] +[ <a href="ch-pkgtools.en.html">next</a> ] +</p> + +<hr> + +<p> +The Debian GNU/Linux FAQ +</p> + +<address> +version 4.0.4+nmu1, 3 January 2010<br> +<br> +Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br> +<br> +</address> +<hr> + +</body> + +</html> + |