File: apt-howto-es.sgml

package info (click to toggle)
apt-howto 1.7.7-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 488 kB
  • ctags: 5
  • sloc: makefile: 68
file content (1272 lines) | stat: -rw-r--r-- 49,779 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
<!doctype debiandoc system>

<book>

<title>APT HOWTO</title>

<author>
<name>Gustavo Noronha Silva</name> <email>kov@debian.org</email>
</author>
<version>1.7.3 - September 2001</version>

<abstract>
Este documento pretende proveer al usuario de un conocimiento sobre
el programa que maneja la paquetera de Debian, el APT. El propsito
de este documento, es hacer la vida ms fcil a los nuevos usuarios
de Debian y para ayudar a aquellos que desean tener un conocimiento ms
profundo de la administracin de este sistema. Fue creado para el
proyecto Debian para mejorar y ayudar al soporte existente y as mismo
ayudar a los usuarios de este sistema.
</abstract>

<copyright>
<copyrightsummary>
Copyright &copy; 2001 Gustavo Noronha Silva
</copyrightsummary>
<copyrightsummary>
Traduccin: Hugo Mora <<email>h.mora@melix.com.mx</email>>
</copyrightsummary>
<p>
Este manual esta protegido bajos los trminos de la GNU FDL (Free
Documentation License). Ha sido escrito con la esperanza de que sea de
utilidad a la comunidad pero no viene con alguna garanta, usalo bajo tu
propio riesgo.
</copyright>

<toc>

<chapt>Introduccin
<p>
En el principio existan los .tar.gz. Los usuarios tenan que compilar
cada programa que quisieran usar en su sistema GNU/Linux. Cuando Debian fue
creado, fue imperante que el sistema incluyera un programa que se
encargara de manejar la paquetera instalada en la computadora.
Este programa se llam <prgn>dpkg</prgn>. As fue
como naci el primer "paquete" en el mundo GNU/Linux, an antes de que
Red Hat decidiera crear su propio programa "rpm".
<p>
Rpidamente lleg un nuevo dilema a las mentes de los creadores de
GNU/Linux. Ellos necesitaban un modo fcil, rpido y eficiente de
instalar programas, que manejara automticamente las dependencias y se
hiciera cargo de la configuracin mientras se actualizan. Nuevamente
Debian fue pionero y cre el APT, Herramienta Avanzada de
Empaquetamiento (Advanced Packaging Tool), el cual ha sido adaptado por
Conectiva para usarse con rpm y ha sido adoptado por otras
distribuciones.
<p>
Este manual no cubre el apt-rpm, tal como se denomina a la adaptacin de
Conectiva del APT, y tal vez algunos "parches" para este documento
podran aparecer en algn tiempo.
</chapt>

<chapt id="basico">Configuracin Bsica

<sect id="sources.list">El archivo /etc/apt/sources.list
<p>
Como parte de su funcionamiento, APT utiliza un archivo que lista las
"fuentes" en donde se encuentran los paquetes. Este archivo es:
<tt>/etc/apt/sources.list</tt>.
<p>
El contenido de este archivo, normalmente sigue este formato:
<example>
deb http://site.http.org/debian distribucin seccin1 seccin2 seccin3
deb-src http://site.http.org/debian distribucin seccin1 seccin2 seccin3
</example>

Por supuesto que los renglones arriba mencionados son ficticios y no
debern ser usados. La primera palabra en cada lnea, <tt>deb</tt> o
<tt>deb-src</tt>, indican el tipo del archivo: ya sea que contenga
paquetes binarios (<tt>deb</tt>), esto es, los paquetes pre-compilados que
normalmente se usan, o los paquetes fuente (<tt>deb-src</tt>), que son
los cdigos originales, ms el archivo de control de Debian (<tt>.dsc</tt>)
y el <tt>diff.gz</tt> que contienen los cambios necesarios para "debianizar"
el programa.
<p>
Generalmente se encuentra lo siguiente por defecto en el archivo sources.list:
<example>
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free

# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable non-US
</example>

stas son las lneas necesarias para una instalacin bsica de Debian.
La primer lnea <tt>deb</tt> apunta al archivo en el servidor oficial,
la segunda lnea apunta hacia el archivo del servidor non-US y la
tercer lnea apunta hacia el archivo del servidor de actualizaciones de
seguridad.
<p>
Las dos ltimas lneas estn deshabilitadas (con un "#" al inicio), as
que apt-get las ignora. stas son las lneas de <tt>deb-src</tt>, esto
es, apuntan hacia los paquetes fuente de Debian. Si frecuentemente
descargas paquetes fuente para probar o recompilar, habilitalas
(borrando el "#" al inicio de la lnea).
<p>
El archivo <tt>/etc/apt/sources.list</tt> puede contener varios tipos de
lneas. APT sabe como interpretar lneas del tipo <tt>http</tt>,
<tt>ftp</tt>, <tt>file</tt> (archivos locales, p.e., un directorio que
contiene un CD-ROM) y <tt>ssh</tt>, que yo tenga conocimiento.
</sect>

<sect id="dpkg-scanpackages">Como utilizar APT localmente
<p>
Algunas veces se pueden llegar a tener muchos paquetes .deb los cuales
te gustaria instalar utilizando APT para que las dependencias fueran
resueltas automticamente.
<p>
Para hacer esto, crea un directorio y coloca los .debs que quieras
sealar en el. Por ejemplo:
<example>
mkdir /root/debs
</example>
As pues, dentro del directorio /root, crea un archivo vaco, con
cualquier nombre. Esto es porque un deposito APT necesita un archivo
conocido como "override", puede estar vaco, pero tiene que existir. Se
puede utilizar el siguiente comando para crear este archivo:
<example>
touch archivo
</example>
Dentro de este archivo se pueden definir opciones para descartar las que
vienen por defecto en el paquete. Por ejemplo:
<example>
paquete prioridad seccin
</example>
Paquete es el nombre del paquete o programa a instalar, la prioridad puede
 ser baja, media o alta y seccin es la seccin a donde pertenece. Es
suficiente con dejar el archivo vaco.
<p>
Continuando en el directorio /root se hace lo siguiente:
<example>
dpkg-scanpackages debs archivo | gzip > debs/Packages.gz
</example>
En la lnea anterior, archivo es el archivo de "override", el comando
genera un archivo debs/Packages.gz el cual contiene informacin que
APT necesita acerca de los paquetes. Para utilizar los
paquetes, finalmente agrega:
<example>
deb file:/root debs/
</example>
Despus de eso, utiliza los comandos de APT como siempre. Tambin
podras generar un deposito de fuentes de paquetes. Para hacer eso, haz
exactamente lo mismo, pero recuerda que necesitas tener los archivos
<tt>.orig.tar.gz</tt>, <tt>.dsc</tt> y <tt>.diff.gz</tt> en el
directorio y cambia Sources.gz por Packages.gz. El programa utilizado
tambin es diferente. Es el <prgn>dpkg-scansources</prgn>. El comando
completo se vera as:
<example>
dpkg-scansources debs | gzip > debs/Sources.gz
</example>
Observa que <prgn>dpkg-scansources</prgn> no necesita un archivo
"override". La lnea de sources.list es:
<example>
deb-src file:/root debs/
</example>
</sect>

<sect id="netselect">Decidiendo cual archivo sources.list es el mejor:
netselect, netselect-apt.<p>

Una duda frecuente, principalmente entre los usuarios novatos es: "Cul
servidor Debian debo incluir en el archivo <tt>sources.list</tt>?".
Hay muchas formas de decidir esto. Los expertos podran tener un
script que determine el tiempo de un ping entre los distintos servidores.
Pero hay un programa que hace esto por nosotros: <strong>netselect</strong>.
<p>
Para instalar netselect, hazlo as:
<example>
apt-get install netselect
</example>
Al ejecutarlo sin algn parmetro muestra la ayuda. Ejecutndolo con una
lista de servidores separada por un espacio, regresar una lista con
la puntuacin del host. Esta lista considera el tiempo de ping y el numero de
"saltos" (servidores por los cuales una peticin de red debe pasar para
alcanzar su destino) y es inversamente proporcional a la velocidad de
descarga (la menor es la mejor). El servidor que regresa es aquel que
tiene una puntuacin menor (se puede ver la lista completa
agregando la opcin -vv). ejemplo:
 <example>
bash$ netselect ftp.debian.org http.us.debian.org ftp.at.debian.org
 download.unesp.br ftp.debian.org.br
 365 ftp.debian.org.br
bash$
</example>
Esto significa que, de los servidores incluidos como parmetros en
netselect, <tt>ftp.debian.org.br</tt> fue el mejor, con una puntuacin
de 365. (Atencin, la puntuacin depende de la localizacin geogrfica,
la topologa de red, la distancia entre la computadora y los servidores,
por lo tanto, depende de la computadora en la que se ejecute el comando
sera otro el mejor servidor).
<p>
Ahora agrega el servidor ms rpido encontrado por netselect en el
archivo <tt>/etc/apt/sources.list</tt> ( regresa a <ref
id="sources.list">) sigue los pasos en <ref id="apt-get">.
<p> <strong>Nota:</strong> la lista de los servidores se puede encontrar en
el archivo:<url id="http://www.debian.org/mirror/mirrors_full"
name="http://www.debian.org/mirror/mirrors_full">. <p>
Iniciando con la versin 0.3, el paquete netselect incluye el script
<strong>netselect-apt</strong>, el cual realiza el proceso mencionado
arriba automticamente. Solo introduce el rbol de la distribucin como
parmetro (el cual, por defecto es "stable") y el archivo
<tt>sources.list</tt> sera generado con los mejores servidores para main
y non-US y sera guardado en el directorio actual. El siguiente ejemplo
genera un archivo sources.list de una distribucin estable
<example>
bash$ ls sources.list
ls: sources.list: File or directory not found
bash$ netselect-apt stable
(...)
bash$ ls -l sources.list
sources.list
bash$
</example>
<strong>Recuerda:</strong> el archivo <tt>sources.list</tt> se crea en
el directorio actual, y debe moverse al directorio <tt>/etc/apt</tt>
.
<p>
Despus, sigue los pasos de <ref id="apt-get">.
</sect>

<sect id="cdrom">Agregando un CD-ROM al archivo sources.list
<p>
Si prefieres utilizar el CD-ROM para instalar los paquetes o para actualizar
tu sistema con APT, lo puedes agregar en tu archivo <tt>sources.list</tt>.
Para hacerlo, puedes utilizar el programa <tt>apt-cdrom</tt> as:
<example>
apt-cdrom add
</example>
con el CD-ROM de Debian en la unidad. Esta instruccin montar el CD-ROM,
y si es un CD valido de Debian buscar la informacin de los paquetes en
el CD. Si la configuracin de tu unidad de CD-ROM es inusual, tienes las
siguientes opciones:

<example>
-h           - program help
-d directory - CD-ROM mount point
-r           - Rename a recognized CD-ROM
-m           - No mounting
-f           - Fast mode, don't check package files
-a           - Thorough scan mode
</example>

Por ejemplo:

<example>
apt-cdrom -d /home/kov/mycdrom add
</example>

Tambin puedes identificar el CD-ROM sin agregarlo a tu lista:

<example>
apt-cdrom ident
</example>

Nota que este programa solo funcionar si el CD-ROM est configurado
adecuadamente en el archivo <tt>/etc/fstab</tt> de tu sistema.

</sect>

</chapt>


<chapt id="apt-get">Trabajando con paquetes
<sect id="update">Actualizando la lista de paquetes disponibles
<p>
El sistema de paquetes utiliza una base de datos para llevar un
monitoreo de los paquetes instalados, los no instalados y cuales estn
disponibles para su futura instalacin. El programa <prgn>apt-get</prgn>
utiliza esta base de datos para averiguar como instalar los paquetes que
son requeridos por el usuario y para indagar sobre que paquetes
adicionales sern requeridos para que el paquete seleccionado funcione
correctamente.
<p>
Para actualizar la lista, se utiliza el comando <prgn>apt-get update</prgn>.
Este comando busca el paquete en los archivos listados en
<tt>/etc/apt/sources.list</tt>; para ms informacin acerca de este
archivo, revisa <ref id="sources.list">
<p>
Es una buena costumbre ejecutar este archivo regularmente para
mantenerte informado acerca de las posibilidades de actualizacin para
el sistema, particularmente las actualizaciones de seguridad.
</sect>

<sect id="install">Instalando paquetes
<p>
Finalmente, el proceso que estabas esperando!. Con tu archivo
sources.list listo y tu lista de paquetes disponibles al da, todo lo
que necesitas es ejecutar <tt>apt-get</tt> para tener el paquete que
quieras instalado. Por ejemplo, puedes ejecutar:

<example>
apt-get install xchat
</example>

APT buscara en su base de datos para encontrar la versin ms reciente
del paquete y lo descargar del servidor correspondiente especificado en
<tt>sources.list</tt>. Si este paquete necesitara otro para funcionar --
como en este caso -- APT resolver las dependencias e instalar los
paquetes necesarios. Observa este ejemplo:

<example>
[root]@[/] # apt-get install nautilus
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  bonobo libmedusa0 libnautilus0
The following NEW packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 17.2MB will be used.
Do you want to continue? [Y/n]
</example>

El paquete <package>nautilus</package> necesita las libreras
compartidas mencionadas, as pues APT las descargar del servidor. Si
se especifican antes los nombres de esas libreras con el comando
<tt>apt-get</tt> APT no pregunta si deseas continuar o no;
supone automticamente que se desea instalar esos paquetes.
<p>
Esto significa que APT solo pregunta por confirmacin cuando se van a
instalar ms paquetes que los especificados en la lnea de comando para
satisfacer las necesidades del programa a instalar.
<p>
Las siguientes opciones de apt-get podran ser tiles

<example>
-h  This help text.
-d  Download only - do NOT install or unpack archives
-f  Attempt to continue if the integrity check fails
-s  No-act. Perform ordering simulation
-y  Assume Yes to all queries and do not prompt
-u  Show a list of upgraded packages as well
</example>

Pueden seleccionarse varios paquetes para instalar en una sola
lnea. Los archivos descargados son almacenados en el directorio
<tt>/var/cache/apt/archives</tt> para su instalacin posterior.
<p>
Puedes especificar tambin que paquetes sern eliminados en la misma
lnea. Solo agrega un "-" inmediatamente despus del nombre del paquete
que quieres eliminar, por ejemplo:

<example>
[root]@[/] # apt-get install nautilus gnome-panel-
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  bonobo libmedusa0 libnautilus0
The following packages will be REMOVED:
  gnome-applets gnome-panel gnome-panel-data gnome-session
The following NEW packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n]
</example>

Consulta la seccin <ref id="remove"> para ms detalles acerca de la
eliminacin de paquetes.
<p>
Si de alguna forma daas un paquete instalado, o simplemente
deseas reinstalar la misma versin del paquete, puedes utilizar
la opcin <tt>--reinstall</tt> como se muestra:

<example>
[root]@[/] # apt-get --reinstall install gdm
Reading Package Lists... Done
Building Dependency Tree... Done
0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not
 upgraded.
Need to get 0B/182kB of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n]
</example>

La versin de APT al crear este documento es la 0.5.3, la cual forma
parte de la versin inestable de Debian (<tt>sid</tt>) al momento de
escribir. Si tienes esta versin instalada, tienes algunas opciones ms a
tu alcance: Puedes utilizar un comando como <tt>apt-get install
paquete/distribucin</tt> para instalar paquetes de una distribucin en
especfico, o <tt>apt-get install package=versin</tt>. por ejemplo:

<example>
apt-get install nautilus/unstable
</example>

Esta instruccin instalar nautilus de la distribucin inestable aun si
ests utilizando la estable. Los valores aceptados para distribucin son
<tt>stable</tt>, <tt>testing</tt> y <tt>unstable</tt>.
<p>
<em>IMPORTANTE</em>: La versin "unstable" de Debian es la versin a la
cual se le agregan las nuevas versiones de los paquetes de Debian. Esta
distribucin tiene todos los cambios por los cuales atraviesan muchos de
los paquetes, ya sean cambios pequeos o grandes que afecten a unos
paquetes o a todo el sistema. Por esta razn, esta versin de la
distribucin <em>no</em> deber ser usada por usuarios novatos o por
aquellos que necesitan de estabilidad.
<p>
La distribucin "testing" (de prueba) es un poco mejor que la inestable,
con algo de estabilidad, pero para sistemas en produccin la que se debe
usar es la estable.
</sect>

<sect id="remove">Eliminando paquetes
<p>
Si ya no necesitas ms utilizar cierto paquete, puedes eliminarlo de tu
sistema utilizando APT. Para realizar esta tarea solo escribe:
<tt>apt-get remove paquete</tt>.
por ejemplo:

<example>
[root]@[/] # apt-get remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  gnome-applets gnome-panel gnome-panel-data gnome-session
0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n]
</example>

Como se puede apreciar en el ejemplo anterior, APT se hace cargo de
eliminar los paquetes de los cuales dependa el paquete eliminado. No
hay manera de eliminar un paquete utilizando APT sin eliminar los
paquetes que este necesitaba.
<p>
Ejecutando <prgn>apt-get</prgn> como en el ejemplo causara que los
paquetes sean eliminados, pero sus archivos de configuracin, si
existan, permanecern intactos en el sistema.
Para una eliminacin completa del paquete, ejecuta:

<example>
[root]@[/] # apt-get --purge remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n]
</example>

Observa el "*" despus de los nombres. Esto indica que los archivos
de configuracin de cada paquete sern eliminados tambin.
<p>
Al igual que en el caso de la <tt>instalacin</tt>, puedes utilizar un
smbolo con la opcin de <tt>"remove"</tt> para invertir el significado
para un paquete en especial. En el caso de la eliminacin, si agregas un
<tt>"+"</tt> despus del nombre del paquete, el paquete sera instalado
en vez de eliminarlo.

<example>
[root]@[/] # apt-get --purge remove gnome-panel nautilus+
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus
The following packages will be REMOVED:
  gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
The following NEW packages will be installed:
  bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n]
</example>

Observa que <prgn>apt-get</prgn> lista los paquetes que sern
instalados aparte de los seleccionados (esto es, aquellos que su
instalacin es necesaria para el funcionamiento de aquellos que son
seleccionados), aquellos que sern eliminados, y aquellos que sern
instalados (incluyendo los paquetes adicionales otra vez).
</sect>

<sect id="upgrade">Actualizando paquetes
<p>
Las actualizaciones de los paquetes son un gran xito de APT. Pueden
realizarse con tan solo un comando: <tt>apt-get upgrade</tt>. Puedes
utilizar esa opcin para actualizar los paquetes de la distribucin
actual, o bien para actualizar a una nueva distribucin, aunque el
comando <tt>apt-get dist-upgrade</tt> es una mejor opcin; para mayor
informacin, consulta la seccin <ref id="dist-upgrade">.
<p>
Es muy til utilizar este comando con la opcin <tt>-u</tt>. Esta opcin
muestra la lista completa de paquetes que APT actualizar. Sin ella, se
estara actualizando a ciegas. APT descargar las versiones ms
recientes de cada paquete y las instalar de la manera ms apropiada. Es
muy importante ejecutar siempre <tt>apt-get update</tt> antes de probar
esto. Consulta la seccin <ref id="update">. Observa este ejemplo:

<example>
[root]@[/] # apt-get -u upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back
  cpp gcc lilo
The following packages will be upgraded
  adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
  ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
  libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
  libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
Do you want to continue? [Y/n]
</example>

El proceso es muy fcil. Nota que en las primeras lneas
<tt>apt-get</tt> menciona que algunos paquetes fueron <tt>conservados</tt>.
Esto significa que hay versiones nuevas de estos paquetes ms no fueron
actualizados por alguna razn. Algunas razones pueden ser dependencias
fallidas (el paquete del cual depende no tiene una versin nueva para
actualizar) o nuevas dependencias (el paquete ahora depende de nuevos
paquetes que la versin anterior).
<p>
No hay una solucin clara para el primer caso. Para el segundo, es
suficiente con ejecutar <tt>apt-get install</tt> para el paquete
en cuestin, ya que con esto se descargarn las nuevas
dependencias. Una solucin an mejor es utilizar <tt>dist-upgrade</tt>.
Consulta la seccin <ref id="dist-upgrade">.
</sect>

<sect id="dist-upgrade">Actualizando a una nueva versin
<p>
Esta opcin de APT permite actualizar un sistema debian en un solo paso,
ya sea desde Internet o por CDs (comprado o descargado como una imagen
ISO).
<p>
Tambin es utilizado cuando son realizados cambios entre las relaciones
de los paquetes instalados. Con <tt>apt-get upgrade</tt>, estos paquetes
permaneceran sin modificacin (<tt>conservados</tt>).
<p>
Por ejemplo, supongamos que ests utilizando la revisin 0 de la versin
estable de Debian, y compras el CD con la revisin 3. Puedes utilizar APT
para actualizar el sistema al de el CD. Para lograr esto, utiliza
<prgn>apt-cdrom</prgn> (consulta la seccin <ref id="cdrom">) para
agregar el CD al archivo <tt>/etc/apt/sources.list</tt> y ejecuta
<tt>apt-get dist-upgrade</tt>
<p>
Es muy importante mencionar que APT siempre busca la versin ms
reciente de los paquetes. As pues, si en tu archivo
<tt>/etc/apt/sources.list</tt> se encontrara alguna otra fuente que
tuviera una versin ms reciente que la del CD, APT descargara esta
versin.
<p>
En el ejemplo mostrado en la seccin <ref id="upgrade">, observamos que
algunos paquetes eran <tt>conservados</tt>. Solucionaremos este problema
ahora con el programa <tt>dist-upgrade</tt>:

<example>
[root]@[/] # apt-get -u dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following NEW packages will be installed:
  cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
  libpcre2 logrotate mailx
The following packages have been kept back
  lilo
The following packages will be upgraded
  adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
  indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
  libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
  liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
  procps psmisc
31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
Do you want to continue? [Y/n]
</example>

Observa que los paquetes ahora sern actualizados, y que nuevos paquetes
sern instalados (las nuevas dependencias de los paquetes). Observa
tambin que lilo sigue siendo <tt>conservado</tt>. Probablemente tiene
un problema an ms serio que una dependencia. Esto lo podemos saber si
ejecutamos:

<example>
[root]@[/] # apt-get -u install lilo
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
  logrotate mailx
The following packages will be REMOVED:
  debconf-tiny
The following NEW packages will be installed:
  cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
  logrotate mailx
The following packages will be upgraded
  lilo
1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
Do you want to continue? [Y/n]
</example>

Como se observa arriba, lilo tiene un nuevo conflicto con el paquete
<package>debconf-tiny</package>, lo cual significa que no podr ser
instalado (o actualizado) sin antes eliminar debconf-tiny
</sect>

<sect id="dselect-upgrade">Utilizando APT con dselect
<p>
<prgn>dselect</prgn> es un programa que ayuda a los usuarios en
seleccionar paquetes de Debian para su instalacin. Es considerado como
algo complicado y un poco aburrido, pero con practica podrs utilizar su
interfaz basada en consola-ncurses.
<p>
dselect se caracteriza por ser un programa que sabe como explotar
la capacidad de los paquetes Debian para "recomendar" y "sugerir"
otros paquetes para su instalacin. Para utilizar el programa,
ejecuta <tt>'dselect'</tt> como root. Selecciona 'apt' como el mtodo
de acceso. Esto no es verdaderamente necesario, pero si no ests
utilizando un CD ROM y quieres descargar los paquetes de Internet,
la mejor opcin es utilizar dselect.
<p>
Para entender mejor el uso de dselect, lee la
documentacin que se encuentra en la pgina de Debian <url
id="http://www.debian.org/doc/ddo" name="http://www.debian.org/doc/ddp">
<p>
Despus de seleccionar los paquetes con dselect, utiliza:

<example>
apt-get -u dselect-upgrade
</example>

Como en el siguiente ejemplo:

<example>
[root]@[/] # apt-get -u dselect-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  lbxproxy
The following NEW packages will be installed:
  bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
  gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
  libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
  libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
  util-linux-locales vacation xbill xplanet-images
The following packages will be upgraded
  debian-policy
1 packages upgraded, 30 newly installed, 1 to remove and 0 not upgraded.
Need to get 7140kB of archives. After unpacking 16.3MB will be used.
Do you want to continue? [Y/n]
</example>

Comparalo con lo que pasa al ejecutar apt-get dist-upgrade en el mismo
sistema:

<example>
[root]@[/] # apt-get -u dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following packages will be upgraded
  debian-policy
1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 421kB of archives. After unpacking 25.6kB will be freed.
Do you want to continue? [Y/n]
</example>

Observa que muchos paquetes de arriba estn siendo instalados porque
otros paquetes los sugirieron o recomendaron. Otros estn siendo
instalados o eliminados (en el caso de lbxproxy, por ejemplo) por las
selecciones que realizamos por medio de la lista de dselect. Dselect
puede ser una herramienta poderosa al usarse en conjuncin con APT.
</sect>

<sect id="pin">Como mantener versiones especficas de paquetes
instalados
<p>
Tu puedes modificarle algo a un programa, y no tener tiempo o
no querer portar los cambios hacia una nueva versin del mismo.
O tal vez hayas actualizado tu sistema a la versin 0.3 de
Debian, pero quieres continuar con cierta versin de un programa de
Debian 2.2. Puedes marcar la versin que tienes instalada as sta no
ser actualizada.
<p>
Utilizar este recurso es simple. Solo se necesita editar el archivo
<tt>/etc/apt/preferences</tt>.
<p>
El formato es simple:
<example>
Package: &lt;package&gt;
Pin: &lt;pin definition&gt;
Pin-Priority: &lt;pin's priority&gt;
</example>
<p>
Por ejemplo, para mantener el paquete <package>sylpheed</package> el
cual he modificado para utilizar "reply-to-kist" en la versin 0.4.99,
agrego:
<example>
Package: sylpheed
Pin: version 0.4.99*
</example>
Observa que utilizo un <tt>*</tt> (asterisco). Este es un "comodn";
este especfica que yo quiero que este "pin" sea valido para todas las
versiones que empiecen con 0.4.99. Esto es as porque Debian numera sus
paquetes con una "revisin Debian" y yo no quiero entorpecer la
instalacin de esas revisiones. As pues, las versiones 0.4.99-1 y
0.4.99-10 sern instaladas tan pronto como estn disponibles. Observa
que si modificaste un programa no querrs hacer esto.
<p>
El campo <tt>Pin-Priority</tt> es opcional; si no se especifica algo,
el valor por omisin es 989
<p>
Veamos como trabajan las prioridades de "pin". Una prioridad menor que 0
indica que el paquete jams deber ser instalado. Prioridades de 0 a 100
denotan paquetes que no estn instalados y que no hay versiones
disponibles. Esto no vendr en el proceso de escoger-versin. La
prioridad de 100 es asignada a los paquetes instalados - para la versin
instalada de un paquete que sera reemplazado por una versin diferente,
el reemplazo deber tener una prioridad mayor a 100.
<p>
Prioridades mayores a 100 indican que el paquete debe ser instalado.
Tpicamente, la versin instalada del paquete cambia solo con las
actualizaciones a una versin ms nueva. Cualquier prioridad entre
100 y 1000 (incluyndolos) indica este comportamiento tpico.
Un paquete con tal prioridad no sereemplazara por una versin anterior.
Por lo tanto, si yo tuvierasylpheed 0.5.3 instalado y definiera un pin
en sylpheed 0.4.99 con prioridad 999, el paquete 0.4.99 este <tt>no</tt>
se instalara para satisfacer el pin. Para hacer un programa que pueda
reemplazarse por una versin anterior, necesita poseer una prioridad
mayor a 1000.
<p>
Este concepto de degradacin puede tener aplicaciones poderosas; supn
que has actualizado tu versin <tt>estable</tt> de Debian a la
<tt>testing</tt> pero quisieras deshacer el cambio - tal vez la versin
<tt>testing</tt> no es lo suficientemente estable para ti. Tu puedes
definir un pin por omisin, utilizando un comodn para el nombre del
paquete, para regresar a la versin estable. Por ejemplo:
<example>
Package: *
Pin: release a=stable
Pin-Priority: 1001
</example>
<p>
Despus de eso, <tt>apt-get -u dist-upgrade</tt> regresara el sistema a
la versin estable.
<p>
Un "pin" puede ser especificado en una <tt>versin</tt>, <tt>sub-versin</tt>
o al <tt>origen</tt> de un paquete.
<p>
Estableciendo un "pin" en una <tt>versin</tt>, como hemos visto,
pueden ser especificadas utilizando numeros y comodines,
varias versiones al mismo tiempo.
<!-- what's available?  standard shell globs?  ?*[]   or more? -->
<p>
La opcin <tt>"release"</tt> depende de el archivo "Release" de un
servidor o CD. Esta opcin podra no ser de mucha utilidad si ests
utilizando servidores que no ofrezcan este archivo. Puedes ver los
contenidos de este archivo que tienes en <tt>/var/lib/apt/lists/</tt>.
Los parmetros para un "release" son:
<tt>a</tt> (archive), <tt>c</tt> (components), <tt>v</tt> (version),
<tt>o</tt> (origin) and <tt>l</tt> (label).
<p>
Un ejemplo:
<example>
Package: *
Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
Priority: 1001
</example>
En este ejemplo, escogimos la versin 2.2* de Debian (la cual puede ser
2.2r2, 2.2r3 -- esto es un "point release" que tpicamente incluyen
parches de seguridad y otras actualizaciones importantes), el servidor
<tt>estable</tt>, seccin <tt>principal</tt> etiqueta y origen Debian.
Origen(o=) define quien cre el archivo "Release", la etiqueta (l=)
define el nombre d la distribucin: Debian para Debian como si mismo y
"Progeny" para "Progeny", por ejemplo:
<example>
$ cat
 /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Relea
se
Archive: stable
version: 2.2r3
Component: main
Origin: Debian
Label: Debian
Architecture: i386
</example>
</sect>

</chapt>

<chapt id="search">Obteniendo informacin de los paquetes.
<p>
Existen algunas interfaces para el APT que lo hacen ms fcil de
utilizar.
<p>
Pero nuestro objetivo aqu es aprender a manejar APT puro. As que, cmo
podras saber el nombre de un paquete que quieres instalar?
<p>
Tenemos numerosos recursos para realizar esa tarea. Empezaremos con
<tt>apt-cache</tt>. Este programa es utilizado por APT para mantener su
base de datos. Nosotros solo veremos un poco de sus aplicaciones.

<sect id="cache">Descubriendo nombres de paquetes
<p>
Por ejemplo, supongamos que tu quieres revivir la gloria de la poca
dorada del Atari 2600. Quieres utilizar APT para instalar un emulador de
Atari, y despus bajar algunos juegos, puedes hacer lo siguiente:

<example>
[root]@[/] # apt-cache search atari
atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
circuslinux - The clowns are trying to pop balloons to score points!
madbomber - A Kaboom! clone
tcs - Character set translator.
atari800 - Atari emulator for svgalib/X/curses
stella - Atari 2600 Emulator for X windows
xmess-x - X binaries for Multi-Emulator Super System
</example>

Hemos encontrado muchos paquetes relacionados con lo que estamos
buscando. Para obtener mayor informacin de un paquete especfico,
hacemos lo siguiente:

<example>
[root]@[/] # apt-cache show stella
Package: stella
Priority: extra
Section: non-free/otherosfs
Installed-Size: 830
Maintainer: Tom Lear &lt;tom@trap.mtview.ca.us&gt;
Architecture: i386
version: 1.1-2
Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
Size: 483430
MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
Description: Atari 2600 Emulator for X windows
 Stella is a portable emulator of the old Atari 2600 video-game console
 written in C++. You can play most Atari 2600 games with it. The latest
 news, code and binaries for Stella can be found at:
 http://www4.ncsu.edu/~bwmott/2600
</example>

En este desplegado tienes muchos detalles sobre paquete seleccionado
asi como su descripcion. Si el paquete estuviera instalado y hubiera una
versin ms reciente, veras la informacin de las 2 versiones, por
ejemplo:

<example>
[root]@[/] # apt-cache show lilo
Package: lilo
Priority: important
Section: base
Installed-Size: 271
Maintainer: Russell Coker &lt;russell@coker.com.au&gt;
Architecture: i386
version: 1:21.7-3
Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate
Suggests: lilo-doc
Conflicts: manpages (<<1.29-3)
Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
Size: 143052
MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
Description: LInux LOader - The Classic OS loader can load Linux and others
 This Package contains lilo (the installer) and boot-record-images to
 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
 .
 You can use Lilo to manage your Master Boot Record (with a simple text screen)
 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

Package: lilo
Status: install ok installed
Priority: important
Section: base
Installed-Size: 190
Maintainer: Vincent Renardias &lt;vincent@debian.org&gt;
version: 1:21.4.3-2
Depends: libc6 (>= 2.1.2)
Recommends: mbr
Suggests: lilo-doc
Description: LInux LOader - The Classic OS loader can load Linux and others
 This Package contains lilo (the installer) and boot-record-images to
 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
 .
 You can use Lilo to manage your Master Boot Record (with a simple text screen)
 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
</example>

Observa que el primero en la lista es el paquete disponible y el segundo
es el instalado. Para mayor informacin de sobre un paquete puedes
utilizar:

<example>
[root]@[/] # apt-cache showpkg penguin-command
Package: penguin-command
versions:
1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_b
inary-i386_Packages)(/var/lib/dpkg/status)

Reverse Depends:
Dependencies:
1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0)
 libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3)
Provides:
1.4.5-1 -
Reverse Provides:
</example>

Y solo para saber de que paquetes depende:

<example>
[root]@[/] # apt-cache depends penguin-command
penguin-command
  Depends: libc6
  Depends: libpng2
  Depends: libsdl-mixer1.1
  Depends: libsdl1.1
  Depends: zlib1g
</example>

En resumen, tenemos una gran variedad de armas que podemos utilizar para
averiguar el nombre del paquete que queramos.
</sect>

<sect id="dpkg-search">Utilizando dpkg para conocer los nombres de
paquetes
<p>
Uno de los caminos para concoer el nombre de un paquete es saber el
nombre de un archivo importante que sea contenido por ese
paquete. Por ejemplo, para conocer el paquete que ofrece ciertos
archivos <tt>".h"</tt> puedes ejecutar:

<example>
[root]@[/] # dpkg -S stdio.h
libc6-dev: /usr/include/stdio.h
libc6-dev: /usr/include/bits/stdio.h
perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
</example>

o:

<example>
[root]@[/] # dpkg -S /usr/include/stdio.h
libc6-dev: /usr/include/stdio.h
</example>

Para averiguar los nombres de paquetes instalados en tu sistema, lo cual
es til por ejemplo, si planeas limpiar tu disco duro, ejecuta:

<example>
[root]@[/] # dpkg -l | grep mozilla
ii  mozilla-browse 0.8-0.1        Mozilla Web Browser
</example>

El problema con este comando radica en que puede "truncar" el nombre del
programa. En el ejemplo anterior, el nombre completo del paquete es
<tt>mozilla-browser</tt>. Para arreglar esto, puedes utilizar la
descripcin del paquete, o parte de ella para encontrar el nombre
completo. Como se muestra a continuacin:

<example>
[root]@[/] # apt-cache search "Mozilla Web Browser"
mozilla-browser - Mozilla Web Browser
</example>
</sect>

<sect id="auto-apt">Como instalar programas "en demanda"
<p>
Ests compilando un programa, y de repente, boom!, hay un error porque
necesita cierto archivo <tt>".h"</tt> que no tienes. El programa
<prgn>auto-apt</prgn> puede salvarte de esas situaciones. Te pregunta si
instala ciertos programas que son requeridos, deteniendo los procesos
relevantes y continuando una vez que el paquete es instalado.
<p>
Lo que haces, es bsicamente ejecutar:

<example>
auto-apt run command
</example>

Dnde "command" es el comando que al ser ejecutado, necesita ciertos
archivos, por ejemplo:

<example>
auto-apt run ./configure
</example>

Te preguntar entonces si instalar los paquetes necesarios y llamara
automticamente a apt-get. Si ests en modo grfico, una interfaz grfica
remplazara la interfaz de texto que aparece normalmente.
<p>
Auto-apt mantiene las bases de datos que necesitan estar al da
para lograr que esto funcione. Esto se realiza con los comandos
<tt>auto-apt update</tt>, <tt>auto-apt updatedb</tt> y
<tt>auto-apt update-local</tt>.
</sect>

<sect id="apt-listchanges">Como mantenerse informado de los cambios en
los paquetes.
<p>
Cada paquete instala en su directorio de documentacin
(<tt>/usr/share/doc/packagename</tt>) un archivo llamado
<tt>changelog.Debian.gz</tt> el cual contiene una lista de cambios
realizados al paquete desde la ltima versin. Puedes leer estos
archivos con <tt>zless</tt>, por ejemplo, pero no es muy fcil estar
buscando estos archivos despus de una instalacin de un sistema
completo.
<p>
Existe una forma de automatizar esta tarea por medio de una herramienta
llamada <prgn>apt-listchanges</prgn>. Para iniciar, primero necesitas
instalar el paquete <package>apt-listchanges</package>. Durante la
instalacin del paquete, Debconf lo configurara. Contesta a las
preguntas sobre la configuracin como desees.
<p>
La opcin: "Apt-listchanges deber ser automticamente ejecutada por APT"
esto es muy til porque muestra los cambios que han sido hechos al paquete
que est siendo instalado por apt durante una actualizacin y te deja
analizarlos antes de continuar. La opcin: "Debe apt-listchanges
preguntar por autorizacin despus de mostrar los cambios" es til
porque te pregunta si deseas continuar la instalacin despus de leer
los cambios. Si decides no continuar con la instalacin apt-listchanges
regresara con un error y apt abortara la instalacin.
<p>
Despus que apt-listchanges sea instalado, tan pronto como los paquetes
sean descargados por apt, mostrar las listas de los cambios realizados
a estos paquetes antes de instalarlos.
</sect>
</chapt>

<chapt id="sourcehandling">Trabajando con los paquetes fuente
<sect id="source">Descargando los paquetes fuente
<p>
Es muy comn en el mundo del software libre estudiar el cdigo fuente
o corregir cdigo errneo. Para lograr esto, necesitas descargar el
cdigo fuente del programa. El sistema APT provee de una manera fcil de
obtener cdigo fuente de muchos programas contenidos en la distribucin,
incluyendo todos los archivos necesarios para crear un .deb para el
programa.
<p>
Otro uso comn de las fuentes de Debian es el de adaptar la versin ms
reciente de un programa, de la versin inestable. Compilar un programa
en la versin estable generara .debs con las dependencias ajustadas para
acoplarse a los paquetes en la distribucin.
<p>
Para lograr esto una entrada <tt>deb-src</tt> en el archivo
<tt>/etc/apt/sources.list</tt> debe apuntar hacia "unstable". Esta lnea
debe estar habilitada (sin comentar). Ve a la seccin <ref
id="sources.list">.
<p>
Para descargar un paquete fuente, haz lo siguiente:

<example>
apt-get source packagename
</example>
Esto descargar tres archivos: un <tt>.orig.tar.gz</tt>, un
<tt>.dsc</tt> y un <tt>.diff.gz</tt>. En el caso de paquetes especiales
para Debian, el ltimo de estos archivos no es descargado y el primero
generalmente no tendr el <tt>"orig"</tt> en el nombre.
<p>
El archivo <tt>.dsc</tt> es utilizado por dbpkg-source para descomprimir
el paquete en el directorio <var>packagename-version</var>. Con cada
paquete descargado existe un directorio <tt>debian/</tt> que contiene
los archivos necesarios para crear un paquete .deb.
<p>
Para automticamente compilar el paquete cuando est siendo descargado,
solo agrega <tt>-b</tt> a la lnea de comando as.

<example>
apt-get -b source packagename
</example>

Si decides no crear el archivo .deb mientras descargas el paquete,
puedes crearlo despus ejecutando:

<example>
dpkg-buildpackage -rfakeroot -uc -b
</example>

Desde el directorio creado despus que el paquete fue descargado.
<p>
Hay una diferencia entre el <prgn>apt-get</prgn> <tt>source</tt>
y las otras opciones. La opcin <tt>source</tt> puede ser utilizada por
usuarios normales, sin necesitar de poderes especiales de root. Los
archivos son descargados a un directorio desde el cual el comando
<tt>apt-get source package</tt> es ejecutado.
</sect>

<sect id="build-dep">Paquetes necesarios para la compilacin de un
paquete fuente
<p>
Normalmente, para lograr una compilacin exitosa de un programa fuente,
son necesarios libreras compartidas y ciertos encabezados.
Todos los paquetes .deb tienen un campo en sus archivos de control
llamado "Build-Depends:" el cual indica que paquetes adiconales son
necesarios para que el paquete sea creado de la fuente.

<p>
APT tiene un mtodo sencillo para descargar estos paquetes. Solo ejecuta
<tt>apt-get build-dep package</tt>, donde "package" es el nombre del
paquete que vas a compilar, por ejemplo:

<example>
[root]@[/] # apt-get build-dep gmc
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
  libgpmg1-dev
0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
Need to get 1069kB of archives. After unpacking 3514kB will be used.
Do you want to continue? [Y/n]
</example>

Los paquetes que sern instalados son los paquetes necesarios para que
<package>gmc</package> sea compilado correctamente. Es importante
observar que este comando no busca el paquete fuente del programa a ser
compilado. Necesitars entonces ejecutar <tt>apt-get source</tt> para
obtenerlo.
</sect>
</chapt>

<chapt id="distros">Que distribuciones soportan APT
<p>
Aqu hay una lista de algunas distribuciones que usan APT
<p>
Debian GNU/Linux (<url id="http://www.debian.org" name="http://www.debian.org">)
<p>
Conectiva (<url id="http://www.conectiva.com.br"
 name="http://www.conectiva.com.br">)
<p>
Mandrake (<url id="http://www.mandrake.com" name="http://www.mandrake.com">)
<p>
PLD (<url id="http://www.pld.org.pl" name="http://pld.org.pl">)
<p>
Vine (<url id="http://www.vinelinux.org" name="http://www.vinelinux.org">)
</chapt>


<chapt id="erros">Como lidiar con los errores
<sect id="erros-comuns">Errores comunes
<p>
Los errores siempre existirn, muchos de ellos son provocados por usuarios
que no ponen atencin. Lo siguiente es una lista de algunos de los
errores ms comunes y como corregirlos.
<p>
Si recibes un mensaje que se parece al mostrado a continuacin cuando
tratas de ejecutar <tt>apt-get install package</tt>

<example>
Reading Package Lists... Done
Building Dependency Tree... Done
W: Couldn't stat source package list 'http://people.debian.org unstable/
 Packages'
 (/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat
 (2 No such file or directory)
W: You may want to run apt-get update to correct these missing files
E: Couldn't find package penguineyes
</example>

Olvidaste ejecutar <tt>apt-get update</tt> despus del ltimo cambio al
archivo <tt>/etc/apt/sources.list</tt>
<p>
Si el error se ve como este:

<example>
E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
</example>

Cuando ejecutas <tt>apt-get</tt> con cualquier opcin diferente de
<tt>source</tt> , es porque no tienes permisos de root, esto es, lo
ests ejecutando como usuario normal.

<p>
Hay un error similar al de arriba el cual pasa cuando tu ejecutas dos
copias de <prgn>apt-get</prgn> al mismo tiempo, o aun cuando tratas de
ejecutar <prgn>apt-get</prgn> mientras un proceso <prgn>dpkg</prgn> est
activo. La nica opcin que puede ser utilizada simultneamente es
<tt>source</tt>.
<p>
Si una instalacin se termina abruptamente en la mitad del proceso, y
averiguas que ya no es posible instalar o eliminar el paquete, intenta
con estos dos comandos:

<example>
# apt-get -f install
# dpkg --configure -a
</example>

Despus intentalo nuevamente. Tal vez sea necesario ejecutar el segundo
comando ms de una vez. sta es una leccin importante para aquellos
aventureros que utilizan la versin "unstable".

</sect>

<sect id="help">Dnde puedo encontrar ayuda?
<p>
Si ests lleno de dudas, consulta la extensa documentacin
disponible para el sistema de paquetes de Debian. <tt>--help</tt>,
las pginas de manual (man-pages) que pueden ser una enorme ayuda ,
as como la documentacin incluida en los directorios de <tt>/usr/share/doc</tt>
tal como <tt>/usr/share/doc/apt</tt>.
<p>
Si esta documentacin no quita tus miedos, pregunta en las listas de
correo de Debian. Puedes encontrar ms informacin sobre listas
especficas en el sitio de Debian: <url id="http://www.debian.org"
name="http://www.debian.org">.
<p>
Recuerda que estas listas y recursos solo debern ser utilizados por
usuarios de Debian, usuarios de otros sistemas encontraran un mejor
soporte de las comunidades de sus distribuciones.
</sect>
</chapt>

<chapt id="agradecimientos">Crditos
<p>
Gracias a mis amigos del proyecto Debian-BR, y a Debian mismo, quienes
estn ayudndome constantemente y siempre me dan fuerza para continuar
trabajando para el beneficio de la humanidad, as como el ayudarme en m
meta de salvar al mundo. :)
<p>
Tambin agradezco a la enorme ayuda brindada por CIPSGA a nuestro
proyecto y a todos los proyectos libres que dan nuevas ideas.
<p>

Y un agradecimiento especial a:
<p>
Michael Bramer &lt;grisu@debian.org&gt; - por la sugerencia de incluir
una seccin acerca de mantener versiones especficas.
<p>
Bryan Stillwell &lt;bryan@bokeoa.com&gt; - por los varios parches y
correcciones que me envi
<p>
Pawel Tecza &lt;pawel.tecza@poland.com&gt; - por las varias
correcciones que me mando de la traduccin al polaco
<p>
Pablo Lorenzzoni &lt;spectra@debian.org&gt; - por escribir la seccin
acerca de netselect
<p>
Steve Langasek &lt;vorlon@netexpress.net&gt; - por traducir el manual al
ingles
<p>
Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt; - por contribuir
a la lista de distribuciones que ahora incluyen APT:
Mandrake, PLD y Vine.
<p>
Matt Kraai &lt;kraai@debian.org&gt; - por los varios parches y
correcciones que me envi
</chapt>

<chapt id="novas">Nuevas versiones de este tutorial:
<p>
Este manual fue creado para el proyecto <url
 id="http://debian-br.sourceforge.net"
name="Debian-BR">,con el propsito de ayudar al uso diario de Debian.
<p>
Nuevas versiones de este documento estarn disponibles en la pgina de
proyecto, en:
<url id="http://debian-br.sourceforge.net/documentacao.html"
name="http://debian-br.sourceforge.net/documentacao.html">.
<p>
Comentarios y criticas pueden ser enviadas directamente a mi por email
en:
<email>kov@debian.org</email>.
</chapt>

</book>