]>
Commit | Line | Data |
---|---|---|
1 | <?xml version="1.0" encoding="UTF-8"?> | |
2 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" | |
3 | "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ | |
4 | <!ENTITY % aptent SYSTEM "apt.ent"> %aptent; | |
5 | <!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent"> %aptverbatiment; | |
6 | <!ENTITY % aptvendor SYSTEM "apt-vendor.ent"> %aptvendor; | |
7 | ]> | |
8 | ||
9 | <book lang="en"> | |
10 | ||
11 | <title>APT User's Guide</title> | |
12 | ||
13 | <bookinfo> | |
14 | ||
15 | <authorgroup> | |
16 | <author> | |
17 | <personname>Jason Gunthorpe</personname><email>jgg@debian.org</email> | |
18 | </author> | |
19 | </authorgroup> | |
20 | ||
21 | <releaseinfo>Version &apt-product-version;</releaseinfo> | |
22 | ||
23 | <abstract> | |
24 | <para> | |
25 | This document provides an overview of how to use the the APT package manager. | |
26 | </para> | |
27 | </abstract> | |
28 | ||
29 | <copyright><year>1998</year><holder>Jason Gunthorpe</holder></copyright> | |
30 | ||
31 | <legalnotice> | |
32 | <title>License Notice</title> | |
33 | <para> | |
34 | "APT" and this document are free software; you can redistribute them and/or | |
35 | modify them under the terms of the GNU General Public License as published by | |
36 | the Free Software Foundation; either version 2 of the License, or (at your | |
37 | option) any later version. | |
38 | </para> | |
39 | </legalnotice> | |
40 | ||
41 | <legalnotice> | |
42 | <para> | |
43 | For more details, on Debian systems, see the file | |
44 | /usr/share/common-licenses/GPL for the full license. | |
45 | </para> | |
46 | </legalnotice> | |
47 | ||
48 | </bookinfo> | |
49 | ||
50 | <chapter id="ch1"><title>General</title> | |
51 | <para> | |
52 | The APT package currently contains two sections, the APT | |
53 | <command>dselect</command> method and the <command>apt-get</command> command | |
54 | line user interface. Both provide a way to install and remove packages as well | |
55 | as download new packages from the Internet. | |
56 | </para> | |
57 | ||
58 | <section id="s1.1"><title>Anatomy of the Package System</title> | |
59 | <para> | |
60 | The Debian packaging system has a large amount of information associated with | |
61 | each package to help assure that it integrates cleanly and easily into the | |
62 | system. The most prominent of its features is the dependency system. | |
63 | </para> | |
64 | <para> | |
65 | The dependency system allows individual programs to make use of shared elements | |
66 | in the system such as libraries. It simplifies placing infrequently used | |
67 | portions of a program in separate packages to reduce the number of things the | |
68 | average user is required to install. Also, it allows for choices in mail | |
69 | transport agents, X servers and so on. | |
70 | </para> | |
71 | <para> | |
72 | The first step to understanding the dependency system is to grasp the concept | |
73 | of a simple dependency. The meaning of a simple dependency is that a package | |
74 | requires another package to be installed at the same time to work properly. | |
75 | </para> | |
76 | <para> | |
77 | For instance, mailcrypt is an emacs extension that aids in encrypting email | |
78 | with GPG. Without GPGP installed mailcrypt is useless, so mailcrypt has a | |
79 | simple dependency on GPG. Also, because it is an emacs extension it has a | |
80 | simple dependency on emacs, without emacs it is completely useless. | |
81 | </para> | |
82 | <para> | |
83 | The other important dependency to understand is a conflicting dependency. It | |
84 | means that a package, when installed with another package, will not work and | |
85 | may possibly be extremely harmful to the system. As an example consider a mail | |
86 | transport agent such as sendmail, exim or qmail. It is not possible to have | |
87 | two mail transport agents installed because both need to listen to the network | |
88 | to receive mail. Attempting to install two will seriously damage the system so | |
89 | all mail transport agents have a conflicting dependency with all other mail | |
90 | transport agents. | |
91 | </para> | |
92 | <para> | |
93 | As an added complication there is the possibility for a package to pretend to | |
94 | be another package. Consider that exim and sendmail for many intents are | |
95 | identical, they both deliver mail and understand a common interface. Hence, | |
96 | the package system has a way for them to declare that they are both | |
97 | mail-transport-agents. So, exim and sendmail both declare that they provide a | |
98 | mail-transport-agent and other packages that need a mail transport agent depend | |
99 | on mail-transport-agent. This can add a great deal of confusion when trying to | |
100 | manually fix packages. | |
101 | </para> | |
102 | <para> | |
103 | At any given time a single dependency may be met by packages that are already | |
104 | installed or it may not be. APT attempts to help resolve dependency issues by | |
105 | providing a number of automatic algorithms that help in selecting packages for | |
106 | installation. | |
107 | </para> | |
108 | </section> | |
109 | ||
110 | </chapter> | |
111 | ||
112 | <chapter id="ch2"><title>apt-get</title> | |
113 | <para> | |
114 | <command>apt-get</command> provides a simple way to install packages from the | |
115 | command line. Unlike <command>dpkg</command>, <command>apt-get</command> does | |
116 | not understand .deb files, it works with the package's proper name and can only | |
117 | install .deb archives from a <emphasis>Source</emphasis>. | |
118 | </para> | |
119 | <para> | |
120 | The first <footnote><para> If you are using an http proxy server you must set | |
121 | the http_proxy environment variable first, see sources.list(5) </para> | |
122 | </footnote> thing that should be done before using <command>apt-get</command> | |
123 | is to fetch the package lists from the <emphasis>Sources</emphasis> so that it | |
124 | knows what packages are available. This is done with <literal>apt-get | |
125 | update</literal>. For instance, | |
126 | </para> | |
127 | <screen> | |
128 | # apt-get update | |
129 | Get http://ftp.de.debian.org/debian-non-US/ stable/binary-i386/ Packages | |
130 | Get http://llug.sep.bnl.gov/debian/ testing/contrib Packages | |
131 | Reading Package Lists... Done | |
132 | Building Dependency Tree... Done | |
133 | </screen> | |
134 | <para> | |
135 | Once updated there are several commands that can be used: | |
136 | </para> | |
137 | <variablelist> | |
138 | <varlistentry> | |
139 | <term>upgrade</term> | |
140 | <listitem> | |
141 | <para> | |
142 | Upgrade will attempt to gently upgrade the whole system. Upgrade will never | |
143 | install a new package or remove an existing package, nor will it ever upgrade a | |
144 | package that might cause some other package to break. This can be used daily | |
145 | to relatively safely upgrade the system. Upgrade will list all of the packages | |
146 | that it could not upgrade, this usually means that they depend on new packages | |
147 | or conflict with some other package. <command>dselect</command> or | |
148 | <literal>apt-get install</literal> can be used to force these packages to | |
149 | install. | |
150 | </para> | |
151 | </listitem> | |
152 | </varlistentry> | |
153 | <varlistentry> | |
154 | <term>install</term> | |
155 | <listitem> | |
156 | <para> | |
157 | Install is used to install packages by name. The package is automatically | |
158 | fetched and installed. This can be useful if you already know the name of the | |
159 | package to install and do not want to go into a GUI to select it. Any number | |
160 | of packages may be passed to install, they will all be fetched. Install | |
161 | automatically attempts to resolve dependency problems with the listed packages | |
162 | and will print a summary and ask for confirmation if anything other than its | |
163 | arguments are changed. | |
164 | </para> | |
165 | </listitem> | |
166 | </varlistentry> | |
167 | <varlistentry> | |
168 | <term>dist-upgrade</term> | |
169 | <listitem> | |
170 | <para> | |
171 | Dist-upgrade is a complete upgrader designed to simplify upgrading between | |
172 | releases of Debian. It uses a sophisticated algorithm to determine the best | |
173 | set of packages to install, upgrade and remove to get as much of the system to | |
174 | the newest release. In some situations it may be desired to use dist-upgrade | |
175 | rather than spend the time manually resolving dependencies in | |
176 | <command>dselect</command>. Once dist-upgrade has completed then | |
177 | <command>dselect</command> can be used to install any packages that may have | |
178 | been left out. | |
179 | </para> | |
180 | <para> | |
181 | It is important to closely look at what dist-upgrade is going to do, its | |
182 | decisions may sometimes be quite surprising. | |
183 | </para> | |
184 | </listitem> | |
185 | </varlistentry> | |
186 | </variablelist> | |
187 | <para> | |
188 | <command>apt-get</command> has several command line options that are detailed | |
189 | in its man page, | |
190 | <citerefentry><refentrytitle>apt-get</refentrytitle><manvolnum>8</manvolnum></citerefentry>. The | |
191 | most useful option is <literal>-d</literal> which does not install the | |
192 | fetched files. If the system has to download a large number of package it | |
193 | would be undesired to start installing them in case something goes wrong. When | |
194 | <literal>-d</literal> is used the downloaded archives can be installed by | |
195 | simply running the command that caused them to be downloaded again without | |
196 | <literal>-d</literal>. | |
197 | </para> | |
198 | </chapter> | |
199 | ||
200 | <chapter id="ch3"><title>DSelect</title> | |
201 | <para> | |
202 | The APT <command>dselect</command> method provides the complete | |
203 | APT system with the <command>dselect</command> package selection | |
204 | GUI. <command>dselect</command> is used to select the packages to be | |
205 | installed or removed and APT actually installs them. | |
206 | </para> | |
207 | <para> | |
208 | To enable the APT method you need to select [A]ccess in | |
209 | <command>dselect</command> and then choose the APT method. You will be | |
210 | prompted for a set of <emphasis>Sources</emphasis> which are places to fetch | |
211 | archives from. These can be remote Internet sites, local Debian mirrors or | |
212 | CD-ROMs. Each source can provide a fragment of the total Debian archive, APT | |
213 | will automatically combine them to form a complete set of packages. If you | |
214 | have a CD-ROM then it is a good idea to specify it first and then specify a | |
215 | mirror so that you have access to the latest bug fixes. APT will automatically | |
216 | use packages on your CD-ROM before downloading from the Internet. | |
217 | </para> | |
218 | <screen> | |
219 | Set up a list of distribution source locations | |
220 | ||
221 | Please give the base URL of the debian distribution. | |
222 | The access schemes I know about are: http file | |
223 | ||
224 | For example: | |
225 | file:/mnt/debian, | |
226 | ftp://ftp.debian.org/debian, | |
227 | http://ftp.de.debian.org/debian, | |
228 | ||
229 | ||
230 | URL [http://llug.sep.bnl.gov/debian]: | |
231 | </screen> | |
232 | <para> | |
233 | The <emphasis>Sources</emphasis> setup starts by asking for the base of the | |
234 | Debian archive, defaulting to a HTTP mirror. Next it asks for the distribution | |
235 | to get. | |
236 | </para> | |
237 | <screen> | |
238 | Please give the distribution tag to get or a path to the | |
239 | package file ending in a /. The distribution | |
240 | tags are typically something like: stable unstable testing non-US | |
241 | ||
242 | Distribution [stable]: | |
243 | </screen> | |
244 | <para> | |
245 | The distribution refers to the Debian version in the archive, | |
246 | <emphasis>stable</emphasis> refers to the latest released version | |
247 | and <emphasis>unstable</emphasis> refers to the developmental | |
248 | version. <emphasis>non-US</emphasis> is only available on some mirrors | |
249 | and refers to packages that contain encryption technology or other | |
250 | things that cannot be exported from the United States. Importing these | |
251 | packages into the US is legal however. | |
252 | </para> | |
253 | <screen> | |
254 | Please give the components to get | |
255 | The components are typically something like: main contrib non-free | |
256 | ||
257 | Components [main contrib non-free]: | |
258 | </screen> | |
259 | <para> | |
260 | The components list refers to the list of sub distributions to fetch. The | |
261 | distribution is split up based on software licenses, main being DFSG free | |
262 | packages while contrib and non-free contain things that have various | |
263 | restrictions placed on their use and distribution. | |
264 | </para> | |
265 | <para> | |
266 | Any number of sources can be added, the setup script will continue to prompt | |
267 | until you have specified all that you want. | |
268 | </para> | |
269 | <para> | |
270 | Before starting to use <command>dselect</command> it is necessary to update | |
271 | the available list by selecting [U]pdate from the menu. This is a superset of | |
272 | <literal>apt-get update</literal> that makes the fetched information available | |
273 | to <command>dselect</command>. [U]pdate must be performed even if | |
274 | <literal>apt-get update</literal> has been run before. | |
275 | </para> | |
276 | <para> | |
277 | You can then go on and make your selections using [S]elect and then perform | |
278 | the installation using [I]nstall. When using the APT method the [C]onfig and | |
279 | [R]emove commands have no meaning, the [I]nstall command performs both of | |
280 | them together. | |
281 | </para> | |
282 | <para> | |
283 | By default APT will automatically remove the package (.deb) files once they | |
284 | have been successfully installed. To change this behavior place | |
285 | <literal>Dselect::clean "prompt";</literal> in /etc/apt/apt.conf. | |
286 | </para> | |
287 | </chapter> | |
288 | ||
289 | <chapter id="ch4"><title>The Interface</title> | |
290 | <para> | |
291 | Both that APT <command>dselect</command> method and <command>apt-get</command> | |
292 | share the same interface. It is a simple system that generally tells you what | |
293 | it will do and then goes and does it. <footnote><para> The | |
294 | <command>dselect</command> method actually is a set of wrapper scripts to | |
295 | <command>apt-get</command>. The method actually provides more functionality | |
296 | than is present in <command>apt-get</command> alone. </para> </footnote> After | |
297 | printing out a summary of what will happen APT then will print out some | |
298 | informative status messages so that you can estimate how far along it is and | |
299 | how much is left to do. | |
300 | </para> | |
301 | ||
302 | <section id="s4.1"><title>Startup</title> | |
303 | <para> | |
304 | Before all operations except update, APT performs a number of actions | |
305 | to prepare its internal state. It also does some checks of the system's | |
306 | state. At any time these operations can be performed by running | |
307 | <literal>apt-get check</literal>. | |
308 | </para> | |
309 | <screen> | |
310 | # apt-get check | |
311 | Reading Package Lists... Done | |
312 | Building Dependency Tree... Done | |
313 | </screen> | |
314 | <para> | |
315 | The first thing it does is read all the package files into memory. APT uses a | |
316 | caching scheme so this operation will be faster the second time it is run. If | |
317 | some of the package files are not found then they will be ignored and a | |
318 | warning will be printed when apt-get exits. | |
319 | </para> | |
320 | <para> | |
321 | The final operation performs a detailed analysis of the system's | |
322 | dependencies. It checks every dependency of every installed or unpacked | |
323 | package and considers if it is OK. Should this find a problem then a report | |
324 | will be printed out and <command>apt-get</command> will refuse to run. | |
325 | </para> | |
326 | <screen> | |
327 | # apt-get check | |
328 | Reading Package Lists... Done | |
329 | Building Dependency Tree... Done | |
330 | You might want to run apt-get -f install' to correct these. | |
331 | Sorry, but the following packages have unmet dependencies: | |
332 | 9fonts: Depends: xlib6g but it is not installed | |
333 | uucp: Depends: mailx but it is not installed | |
334 | blast: Depends: xlib6g (>= 3.3-5) but it is not installed | |
335 | adduser: Depends: perl-base but it is not installed | |
336 | aumix: Depends: libgpmg1 but it is not installed | |
337 | debiandoc-sgml: Depends: sgml-base but it is not installed | |
338 | bash-builtins: Depends: bash (>= 2.01) but 2.0-3 is installed | |
339 | cthugha: Depends: svgalibg1 but it is not installed | |
340 | Depends: xlib6g (>= 3.3-5) but it is not installed | |
341 | libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1) | |
342 | </screen> | |
343 | <para> | |
344 | In this example the system has many problems, including a serious problem with | |
345 | libreadlineg2. For each package that has unmet dependencies a line is printed | |
346 | out indicating the package with the problem and the dependencies that are | |
347 | unmet. A short explanation of why the package has a dependency problem is also | |
348 | included. | |
349 | </para> | |
350 | <para> | |
351 | There are two ways a system can get into a broken state like this. The | |
352 | first is caused by <command>dpkg</command> missing some subtle relationships | |
353 | between packages when performing upgrades. <footnote><para> APT however | |
354 | considers all known dependencies and attempts to prevent broken | |
355 | packages </para> </footnote>. The second is if a package installation | |
356 | fails during an operation. In this situation a package may have been | |
357 | unpacked without its dependents being installed. | |
358 | </para> | |
359 | <para> | |
360 | The second situation is much less serious than the first because APT places | |
361 | certain constraints on the order that packages are installed. In both cases | |
362 | supplying the <literal>-f</literal> option to <command>apt-get</command> | |
363 | will cause APT to deduce a possible solution to the problem and then | |
364 | continue on. The APT <command>dselect</command> method always supplies | |
365 | the <literal>-f</literal> option to allow for easy continuation of failed | |
366 | maintainer scripts. | |
367 | </para> | |
368 | <para> | |
369 | However, if the <literal>-f</literal> option is used to correct a seriously | |
370 | broken system caused by the first case then it is possible that it will either | |
371 | fail immediately or the installation sequence will fail. In either case it is | |
372 | necessary to manually use dpkg (possibly with forcing options) to correct the | |
373 | situation enough to allow APT to proceed. | |
374 | </para> | |
375 | </section> | |
376 | ||
377 | <section id="s4.2"><title>The Status Report</title> | |
378 | <para> | |
379 | Before proceeding <command>apt-get</command> will present a report on what will | |
380 | happen. Generally the report reflects the type of operation being performed | |
381 | but there are several common elements. In all cases the lists reflect the | |
382 | final state of things, taking into account the <literal>-f</literal> option | |
383 | and any other relevant activities to the command being executed. | |
384 | </para> | |
385 | ||
386 | <section id="s4.2.1"><title>The Extra Package list</title> | |
387 | <screen> | |
388 | The following extra packages will be installed: | |
389 | libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl | |
390 | mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base | |
391 | bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy | |
392 | squake pgp-i python-base debmake ldso perl libreadlineg2 | |
393 | ssh | |
394 | </screen> | |
395 | <para> | |
396 | The Extra Package list shows all of the packages that will be installed or | |
397 | upgraded in excess of the ones mentioned on the command line. It is only | |
398 | generated for an <literal>install</literal> command. The listed packages are | |
399 | often the result of an Auto Install. | |
400 | </para> | |
401 | </section> | |
402 | ||
403 | <section id="s4.2.2"><title>The Packages to Remove</title> | |
404 | <screen> | |
405 | The following packages will be REMOVED: | |
406 | xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix | |
407 | xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel | |
408 | xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid | |
409 | nas xpilot xfig | |
410 | </screen> | |
411 | <para> | |
412 | The Packages to Remove list shows all of the packages that will be removed | |
413 | from the system. It can be shown for any of the operations and should be given | |
414 | a careful inspection to ensure nothing important is to be taken off. The | |
415 | <literal>-f</literal> option is especially good at generating packages to | |
416 | remove so extreme care should be used in that case. The list may contain | |
417 | packages that are going to be removed because they are only partially | |
418 | installed, possibly due to an aborted installation. | |
419 | </para> | |
420 | </section> | |
421 | ||
422 | <section id="s4.2.3"><title>The New Packages list</title> | |
423 | <screen> | |
424 | The following NEW packages will installed: | |
425 | zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base | |
426 | </screen> | |
427 | <para> | |
428 | The New Packages list is simply a reminder of what will happen. The packages | |
429 | listed are not presently installed in the system but will be when APT is done. | |
430 | </para> | |
431 | </section> | |
432 | ||
433 | <section id="s4.2.4"><title>The Kept Back list</title> | |
434 | <screen> | |
435 | The following packages have been kept back | |
436 | compface man-db tetex-base msql libpaper svgalib1 | |
437 | gs snmp arena lynx xpat2 groff xscreensaver | |
438 | </screen> | |
439 | <para> | |
440 | Whenever the whole system is being upgraded there is the possibility that new | |
441 | versions of packages cannot be installed because they require new things or | |
442 | conflict with already installed things. In this case the package will appear | |
443 | in the Kept Back list. The best way to convince packages listed there to | |
444 | install is with <literal>apt-get install</literal> or by using | |
445 | <command>dselect</command> to resolve their problems. | |
446 | </para> | |
447 | </section> | |
448 | ||
449 | <section id="s4.2.5"><title>Held Packages warning</title> | |
450 | <screen> | |
451 | The following held packages will be changed: | |
452 | cvs | |
453 | </screen> | |
454 | <para> | |
455 | Sometimes you can ask APT to install a package that is on hold, in such a case | |
456 | it prints out a warning that the held package is going to be changed. This | |
457 | should only happen during dist-upgrade or install. | |
458 | </para> | |
459 | </section> | |
460 | ||
461 | <section id="s4.2.6"><title>Final summary</title> | |
462 | <para> | |
463 | Finally, APT will print out a summary of all the changes that will occur. | |
464 | </para> | |
465 | <screen> | |
466 | 206 packages upgraded, 8 newly installed, 23 to remove and 51 not upgraded. | |
467 | 12 packages not fully installed or removed. | |
468 | Need to get 65.7M/66.7M of archives. After unpacking 26.5M will be used. | |
469 | </screen> | |
470 | <para> | |
471 | The first line of the summary simply is a reduced version of all of the lists | |
472 | and includes the number of upgrades - that is packages already installed that | |
473 | have new versions available. The second line indicates the number of poorly | |
474 | configured packages, possibly the result of an aborted installation. The final | |
475 | line shows the space requirements that the installation needs. The first pair | |
476 | of numbers refer to the size of the archive files. The first number indicates | |
477 | the number of bytes that must be fetched from remote locations and the second | |
478 | indicates the total size of all the archives required. The next number | |
479 | indicates the size difference between the presently installed packages and the | |
480 | newly installed packages. It is roughly equivalent to the space required in | |
481 | /usr after everything is done. If a large number of packages are being removed | |
482 | then the value may indicate the amount of space that will be freed. | |
483 | </para> | |
484 | <para> | |
485 | Some other reports can be generated by using the -u option to show packages to | |
486 | upgrade, they are similar to the previous examples. | |
487 | </para> | |
488 | </section> | |
489 | ||
490 | </section> | |
491 | ||
492 | <section id="s4.3"><title>The Status Display</title> | |
493 | <para> | |
494 | During the download of archives and package files APT prints out a series of | |
495 | status messages. | |
496 | </para> | |
497 | <screen> | |
498 | # apt-get update | |
499 | Get:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages | |
500 | Get:2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages | |
501 | Hit http://llug.sep.bnl.gov/debian/ testing/main Packages | |
502 | Get:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages | |
503 | Get:5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages | |
504 | 11% [5 testing/non-free `Waiting for file' 0/32.1k 0%] 2203b/s 1m52s | |
505 | </screen> | |
506 | <para> | |
507 | The lines starting with <emphasis>Get</emphasis> are printed out when APT | |
508 | begins to fetch a file while the last line indicates the progress of the | |
509 | download. The first percent value on the progress line indicates the total | |
510 | percent done of all files. Unfortunately since the size of the Package files | |
511 | is unknown <literal>apt-get update</literal> estimates the percent done which | |
512 | causes some inaccuracies. | |
513 | </para> | |
514 | <para> | |
515 | The next section of the status line is repeated once for each download | |
516 | thread and indicates the operation being performed and some useful | |
517 | information about what is happening. Sometimes this section will simply | |
518 | read <emphasis>Forking</emphasis> which means the OS is loading the download | |
519 | module. The first word after the [ is the fetch number as shown on the | |
520 | history lines. The next word is the short form name of the object being | |
521 | downloaded. For archives it will contain the name of the package that is | |
522 | being fetched. | |
523 | </para> | |
524 | <para> | |
525 | Inside of the single quote is an informative string indicating the progress of | |
526 | the negotiation phase of the download. Typically it progresses from | |
527 | <emphasis>Connecting</emphasis> to <emphasis>Waiting for file</emphasis> to | |
528 | <emphasis>Downloading</emphasis> or <emphasis>Resuming</emphasis>. The final | |
529 | value is the number of bytes downloaded from the remote site. Once the | |
530 | download begins this is represented as <literal>102/10.2k</literal> indicating | |
531 | that 102 bytes have been fetched and 10.2 kilobytes is expected. The total | |
532 | size is always shown in 4 figure notation to preserve space. After the size | |
533 | display is a percent meter for the file itself. The second last element is the | |
534 | instantaneous average speed. This values is updated every 5 seconds and | |
535 | reflects the rate of data transfer for that period. Finally is shown the | |
536 | estimated transfer time. This is updated regularly and reflects the time to | |
537 | complete everything at the shown transfer rate. | |
538 | </para> | |
539 | <para> | |
540 | The status display updates every half second to provide a constant feedback on | |
541 | the download progress while the Get lines scroll back whenever a new file is | |
542 | started. Since the status display is constantly updated it is unsuitable for | |
543 | logging to a file, use the <literal>-q</literal> option to remove the status | |
544 | display. | |
545 | </para> | |
546 | </section> | |
547 | ||
548 | <section id="s4.4"><title>Dpkg</title> | |
549 | <para> | |
550 | APT uses <command>dpkg</command> for installing the archives and will | |
551 | switch over to the <command>dpkg</command> interface once downloading is | |
552 | completed. <command>dpkg</command> will also ask a number of questions as | |
553 | it processes the packages and the packages themselves may also ask several | |
554 | questions. Before each question there is usually a description of what it | |
555 | is asking and the questions are too varied to discuss completely here. | |
556 | </para> | |
557 | </section> | |
558 | ||
559 | </chapter> | |
560 | ||
561 | </book> |