diff options
author | Michael Vogt <mvo@debian.org> | 2015-08-18 11:54:05 +0200 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2015-08-18 11:54:05 +0200 |
commit | 21248c0f00ee71412dbadc6ebf84011cf974346d (patch) | |
tree | 7dc1f5904399482d2128765b5b86d57a4ac5b3e1 /doc/guide.sgml | |
parent | e5f34ad3b043abf033c1626eb8449b75955d6760 (diff) | |
parent | 4fc6b7570c3e97b65c118b58cdf6729fa94c9b03 (diff) |
Merge branch 'debian/experimental' into feature/srv-records
Conflicts:
cmdline/apt-helper.cc
cmdline/makefile
Diffstat (limited to 'doc/guide.sgml')
-rw-r--r-- | doc/guide.sgml | 547 |
1 files changed, 0 insertions, 547 deletions
diff --git a/doc/guide.sgml b/doc/guide.sgml deleted file mode 100644 index 747c5718c..000000000 --- a/doc/guide.sgml +++ /dev/null @@ -1,547 +0,0 @@ -<!-- -*- mode: sgml; mode: fold -*- --> -<!doctype debiandoc PUBLIC "-//DebianDoc//DTD DebianDoc//EN"> -<book> -<title>APT User's Guide</title> - -<author>Jason Gunthorpe <email>jgg@debian.org</email></author> -<version>$Id: guide.sgml,v 1.7 2003/04/26 23:26:13 doogie Exp $</version> - -<abstract> -This document provides an overview of how to use the the APT package manager. -</abstract> - -<copyright> -Copyright © Jason Gunthorpe, 1998. -<p> -"APT" and this document are free software; you can redistribute them and/or -modify them under the terms of the GNU General Public License as published -by the Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -<p> -For more details, on Debian systems, see the file -/usr/share/common-licenses/GPL for the full license. -</copyright> - -<toc sect> - -<!-- General {{{ --> -<!-- ===================================================================== --> -<chapt>General - -<p> -The APT package currently contains two sections, the APT <prgn>dselect</> -method and the <prgn>apt-get</> command line user interface. Both provide -a way to install and remove packages as well as download new packages from -the Internet. - -<sect>Anatomy of the Package System -<p> -The Debian packaging system has a large amount of information associated with -each package to help assure that it integrates cleanly and easily into -the system. The most prominent of its features is the dependency system. - -<p> -The dependency system allows individual programs to make use of shared -elements in the system such as libraries. It simplifies placing infrequently -used portions of a program in separate packages to reduce the -number of things the average user is required to install. Also, it allows -for choices in mail transport agents, X servers and -so on. - -<p> -The first step to understanding the dependency system is to grasp the concept -of a simple dependency. The meaning of a simple dependency is that a package -requires another package to be installed at the same time to work properly. - -<p> -For instance, mailcrypt is an emacs extension that aids in encrypting email -with GPG. Without GPGP installed mailcrypt is useless, so mailcrypt has a -simple dependency on GPG. Also, because it is an emacs extension it has a -simple dependency on emacs, without emacs it is completely useless. - -<p> -The other important dependency to understand is a conflicting dependency. It -means that a package, when installed with another package, will not work and -may possibly be extremely harmful to the system. As an example consider a -mail transport agent such as sendmail, exim or qmail. It is not possible -to have two mail transport agents installed because both need to listen to -the network to receive mail. Attempting to install two will seriously -damage the system so all mail transport agents have a conflicting dependency -with all other mail transport agents. - -<p> -As an added complication there is the possibility for a package to pretend -to be another package. Consider that exim and sendmail for many intents are -identical, they both deliver mail and understand a common interface. Hence, -the package system has a way for them to declare that they are both -mail-transport-agents. So, exim and sendmail both declare that they provide a -mail-transport-agent and other packages that need a mail transport agent -depend on mail-transport-agent. This can add a great deal of confusion when -trying to manually fix packages. - -<p> -At any given time a single dependency may be met by packages that are already -installed or it may not be. APT attempts to help resolve dependency issues -by providing a number of automatic algorithms that help in selecting packages -for installation. -</sect> - -</chapt> - <!-- }}} --> -<!-- apt-get {{{ --> -<!-- ===================================================================== --> -<chapt>apt-get - -<p> -<prgn>apt-get</> provides a simple way to install packages from the command -line. Unlike <prgn>dpkg</>, <prgn>apt-get</> does not understand .deb files, -it works with the package's proper name and can only install .deb archives from -a <em>Source</>. - -<p> -The first <footnote>If you are using an http proxy server you must set the -http_proxy environment variable first, see sources.list(5)</footnote> thing that -should be done before using <prgn>apt-get</> is to fetch the package lists -from the <em>Sources</> so that it knows what packages are -available. This is done with <tt>apt-get update</>. For instance, - -<p> -<example> -# apt-get update -Get http://ftp.de.debian.org/debian-non-US/ stable/binary-i386/ Packages -Get http://llug.sep.bnl.gov/debian/ testing/contrib Packages -Reading Package Lists... Done -Building Dependency Tree... Done -</example> - -<p> -Once updated there are several commands that can be used: -<taglist> -<tag>upgrade<item> -Upgrade will attempt to gently upgrade the whole system. Upgrade will -never install a new package or remove an existing package, nor will it -ever upgrade a package that might cause some other package to break. -This can be used daily to relatively safely upgrade the system. Upgrade -will list all of the packages that it could not upgrade, this usually -means that they depend on new packages or conflict with some other package. -<prgn>dselect</> or <tt>apt-get install</> can be used to force these -packages to install. - -<tag>install<item> -Install is used to install packages by name. The package is -automatically fetched and installed. This can be useful if you already -know the name of the package to install and do not want to go into a GUI -to select it. Any number of packages may be passed to install, they will -all be fetched. Install automatically attempts to resolve dependency problems -with the listed packages and will print a summary and ask for confirmation -if anything other than its arguments are changed. - -<tag>dist-upgrade<item> -Dist-upgrade is a complete upgrader designed to simplify upgrading between -releases of Debian. It uses a sophisticated algorithm to determine the best -set of packages to install, upgrade and remove to get as much of the system -to the newest release. In some situations it may be desired to use dist-upgrade -rather than spend the time manually resolving dependencies in <prgn>dselect</>. -Once dist-upgrade has completed then <prgn>dselect</> can be used to install -any packages that may have been left out. - -<p> -It is important to closely look at what dist-upgrade is going to do, its -decisions may sometimes be quite surprising. -</taglist> - -<p> -<prgn>apt-get</> has several command line options that are detailed in its -man page, <manref name="apt-get" section="8">. The most useful option is -<tt>-d</> which does not install the fetched files. If the system has to -download a large number of package it would be undesired to start installing -them in case something goes wrong. When <tt>-d</> is used the downloaded -archives can be installed by simply running the command that caused them to -be downloaded again without <tt>-d</>. - -</chapt> - <!-- }}} --> -<!-- DSelect {{{ --> -<!-- ===================================================================== --> -<chapt>DSelect -<p> -The APT <prgn>dselect</> method provides the complete APT system with -the <prgn>dselect</> package selection GUI. <prgn>dselect</> is used to -select the packages to be installed or removed and APT actually installs them. - -<p> -To enable the APT method you need to select [A]ccess in <prgn>dselect</> -and then choose the APT method. You will be prompted for a set of -<em>Sources</> which are places to fetch archives from. These can be remote -Internet sites, local Debian mirrors or CD-ROMs. Each source can provide -a fragment of the total Debian archive, APT will automatically combine them -to form a complete set of packages. If you have a CD-ROM then it is a good idea -to specify it first and then specify a mirror so that you have access to -the latest bug fixes. APT will automatically use packages on your CD-ROM before -downloading from the Internet. - -<p> -<example> - Set up a list of distribution source locations - - Please give the base URL of the debian distribution. - The access schemes I know about are: http file - - For example: - file:/mnt/debian, - ftp://ftp.debian.org/debian, - http://ftp.de.debian.org/debian, - - - URL [http://llug.sep.bnl.gov/debian]: -</example> - -<p> -The <em>Sources</> setup starts by asking for the base of the Debian -archive, defaulting to a HTTP mirror. Next it asks for the distribution to -get. - -<p> -<example> - Please give the distribution tag to get or a path to the - package file ending in a /. The distribution - tags are typically something like: stable unstable testing non-US - - Distribution [stable]: -</example> - -<p> -The distribution refers to the Debian version in the archive, <em>stable</> -refers to the latest released version and <em>unstable</> refers to the -developmental version. <em>non-US</> is only available on some mirrors and -refers to packages that contain encryption technology or other things that -cannot be exported from the United States. Importing these packages into the -US is legal however. - -<p> -<example> - Please give the components to get - The components are typically something like: main contrib non-free - - Components [main contrib non-free]: -</example> - -<p> -The components list refers to the list of sub distributions to fetch. The -distribution is split up based on software licenses, main being DFSG free -packages while contrib and non-free contain things that have various -restrictions placed on their use and distribution. - -<p> -Any number of sources can be added, the setup script will continue to -prompt until you have specified all that you want. - -<p> -Before starting to use <prgn>dselect</> it is necessary to update the -available list by selecting [U]pdate from the menu. This is a superset of -<tt>apt-get update</> that makes the fetched information available to -<prgn>dselect</>. [U]pdate must be performed even if <tt>apt-get update</> -has been run before. - -<p> -You can then go on and make your selections using [S]elect and then -perform the installation using [I]nstall. When using the APT method -the [C]onfig and [R]emove commands have no meaning, the [I]nstall command -performs both of them together. - -<p> -By default APT will automatically remove the package (.deb) files once they have been -successfully installed. To change this behavior place <tt>Dselect::clean -"prompt";</> in /etc/apt/apt.conf. - -</chapt> - <!-- }}} --> -<!-- The Interfaces {{{ --> -<!-- ===================================================================== --> -<chapt>The Interface - -<p> -Both that APT <prgn>dselect</> method and <prgn>apt-get</> share the same -interface. It is a simple system that generally tells you what it will do -and then goes and does it. -<footnote> -The <prgn>dselect</> method actually is a set of wrapper scripts -to <prgn>apt-get</>. The method actually provides more functionality than -is present in <prgn>apt-get</> alone. -</footnote> -After printing out a summary of what will happen APT then will print out some -informative status messages so that you can estimate how far along it is and -how much is left to do. - -<!-- ===================================================================== --> -<sect>Startup - -<p> -Before all operations except update, APT performs a number of actions to -prepare its internal state. It also does some checks of the system's state. -At any time these operations can be performed by running <tt>apt-get check</>. -<p> -<example> -# apt-get check -Reading Package Lists... Done -Building Dependency Tree... Done -</example> - -<p> -The first thing it does is read all the package files into memory. APT -uses a caching scheme so this operation will be faster the second time it -is run. If some of the package files are not found then they will be ignored -and a warning will be printed when apt-get exits. - -<p> -The final operation performs a detailed analysis of the system's dependencies. -It checks every dependency of every installed or unpacked package and considers -if it is OK. Should this find a problem then a report will be printed out and -<prgn>apt-get</> will refuse to run. - -<p> -<example> -# apt-get check -Reading Package Lists... Done -Building Dependency Tree... Done -You might want to run apt-get -f install' to correct these. -Sorry, but the following packages have unmet dependencies: - 9fonts: Depends: xlib6g but it is not installed - uucp: Depends: mailx but it is not installed - blast: Depends: xlib6g (>= 3.3-5) but it is not installed - adduser: Depends: perl-base but it is not installed - aumix: Depends: libgpmg1 but it is not installed - debiandoc-sgml: Depends: sgml-base but it is not installed - bash-builtins: Depends: bash (>= 2.01) but 2.0-3 is installed - cthugha: Depends: svgalibg1 but it is not installed - Depends: xlib6g (>= 3.3-5) but it is not installed - libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1) -</example> - -<p> -In this example the system has many problems, including a serious problem -with libreadlineg2. For each package that has unmet dependencies a line -is printed out indicating the package with the problem and the dependencies -that are unmet. A short explanation of why the package has a dependency -problem is also included. - -<p> -There are two ways a system can get into a broken state like this. The -first is caused by <prgn>dpkg</> missing some subtle relationships between -packages when performing upgrades. <footnote>APT however considers all known -dependencies and attempts to prevent broken packages</footnote>. The second is -if a package installation fails during an operation. In this situation a -package may have been unpacked without its dependents being installed. - -<p> -The second situation is much less serious than the first because APT places -certain constraints on the order that packages are installed. In both cases -supplying the <tt>-f</> option to <prgn>apt-get</> will cause APT to deduce a -possible solution to the problem and then continue on. The APT <prgn>dselect</> -method always supplies the <tt>-f</> option to allow for easy continuation -of failed maintainer scripts. - -<p> -However, if the <tt>-f</> option is used to correct a seriously broken system -caused by the first case then it is possible that it will either fail -immediately or the installation sequence will fail. In either case it is -necessary to manually use dpkg (possibly with forcing options) to correct -the situation enough to allow APT to proceed. -</sect> - -<!-- ===================================================================== --> -<sect>The Status Report - -<p> -Before proceeding <prgn>apt-get</> will present a report on what will happen. -Generally the report reflects the type of operation being performed but there -are several common elements. In all cases the lists reflect the final state -of things, taking into account the <tt>-f</> option and any other relevant -activities to the command being executed. - -<sect1>The Extra Package list -<p> -<example> -The following extra packages will be installed: - libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl - mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base - bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy - squake pgp-i python-base debmake ldso perl libreadlineg2 - ssh -</example> - -<p> -The Extra Package list shows all of the packages that will be installed -or upgraded in excess of the ones mentioned on the command line. It is -only generated for an <tt>install</> command. The listed packages are -often the result of an Auto Install. -</sect1> - -<sect1>The Packages to Remove -<p> -<example> -The following packages will be REMOVED: - xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix - xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel - xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid - nas xpilot xfig -</example> - -<p> -The Packages to Remove list shows all of the packages that will be -removed from the system. It can be shown for any of the operations and -should be given a careful inspection to ensure nothing important is to -be taken off. The <tt>-f</> option is especially good at generating packages -to remove so extreme care should be used in that case. The list may contain -packages that are going to be removed because they are only -partially installed, possibly due to an aborted installation. -</sect1> - -<sect1>The New Packages list -<p> -<example> -The following NEW packages will installed: - zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base -</example> - -<p> -The New Packages list is simply a reminder of what will happen. The packages -listed are not presently installed in the system but will be when APT is done. -</sect1> - -<sect1>The Kept Back list -<p> -<example> -The following packages have been kept back - compface man-db tetex-base msql libpaper svgalib1 - gs snmp arena lynx xpat2 groff xscreensaver -</example> - -<p> -Whenever the whole system is being upgraded there is the possibility that -new versions of packages cannot be installed because they require new things -or conflict with already installed things. In this case the package will -appear in the Kept Back list. The best way to convince packages listed -there to install is with <tt>apt-get install</> or by using <prgn>dselect</> -to resolve their problems. -</sect1> - -<sect1>Held Packages warning -<p> -<example> -The following held packages will be changed: - cvs -</example> - -<p> -Sometimes you can ask APT to install a package that is on hold, in such a -case it prints out a warning that the held package is going to be -changed. This should only happen during dist-upgrade or install. -</sect1> - -<sect1>Final summary -<p> -Finally, APT will print out a summary of all the changes that will occur. - -<p> -<example> -206 packages upgraded, 8 newly installed, 23 to remove and 51 not upgraded. -12 packages not fully installed or removed. -Need to get 65.7M/66.7M of archives. After unpacking 26.5M will be used. -</example> - -<p> -The first line of the summary simply is a reduced version of all of the -lists and includes the number of upgrades - that is packages already -installed that have new versions available. The second line indicates the -number of poorly configured packages, possibly the result of an aborted -installation. The final line shows the space requirements that the -installation needs. The first pair of numbers refer to the size of -the archive files. The first number indicates the number of bytes that -must be fetched from remote locations and the second indicates the -total size of all the archives required. The next number indicates the -size difference between the presently installed packages and the newly -installed packages. It is roughly equivalent to the space required in -/usr after everything is done. If a large number of packages are being -removed then the value may indicate the amount of space that will be -freed. - -<p> -Some other reports can be generated by using the -u option to show packages -to upgrade, they are similar to the previous examples. -</sect> - -<!-- ===================================================================== --> -<sect>The Status Display -<p> -During the download of archives and package files APT prints out a series of -status messages. - -<p> -<example> -# apt-get update -Get:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages -Get:2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages -Hit http://llug.sep.bnl.gov/debian/ testing/main Packages -Get:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages -Get:5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages -11% [5 testing/non-free `Waiting for file' 0/32.1k 0%] 2203b/s 1m52s -</example> - -<p> -The lines starting with <em>Get</> are printed out when APT begins to fetch -a file while the last line indicates the progress of the download. The first -percent value on the progress line indicates the total percent done of all -files. Unfortunately since the size of the Package files is unknown -<tt>apt-get update</> estimates the percent done which causes some -inaccuracies. - -<p> -The next section of the status line is repeated once for each download thread -and indicates the operation being performed and some useful information -about what is happening. Sometimes this section will simply read <em>Forking</> -which means the OS is loading the download module. The first word after the [ -is the fetch number as shown on the history lines. The next word -is the short form name of the object being downloaded. For archives it will -contain the name of the package that is being fetched. - -<p> -Inside of the single quote is an informative string indicating the progress -of the negotiation phase of the download. Typically it progresses from -<em>Connecting</> to <em>Waiting for file</> to <em>Downloading</> or -<em>Resuming</>. The final value is the number of bytes downloaded from the -remote site. Once the download begins this is represented as <tt>102/10.2k</> -indicating that 102 bytes have been fetched and 10.2 kilobytes is expected. -The total size is always shown in 4 figure notation to preserve space. After -the size display is a percent meter for the file itself. -The second last element is the instantaneous average speed. This values is -updated every 5 seconds and reflects the rate of data transfer for that -period. Finally is shown the estimated transfer time. This is updated -regularly and reflects the time to complete everything at the shown -transfer rate. - -<p> -The status display updates every half second to provide a constant feedback -on the download progress while the Get lines scroll back whenever a new -file is started. Since the status display is constantly updated it is -unsuitable for logging to a file, use the <tt>-q</> option to remove the -status display. -</sect> - -<!-- ===================================================================== --> -<sect>Dpkg - -<p> -APT uses <prgn>dpkg</> for installing the archives and will switch -over to the <prgn>dpkg</> interface once downloading is completed. -<prgn>dpkg</> will also ask a number of questions as it processes the packages -and the packages themselves may also ask several questions. Before each -question there is usually a description of what it is asking and the -questions are too varied to discuss completely here. -</sect> - -</chapt> - <!-- }}} --> - -</book> |