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 © 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: <package>
Pin: <pin definition>
Pin-Priority: <pin's priority>
</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 <tom@trap.mtview.ca.us>
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 <russell@coker.com.au>
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 <vincent@debian.org>
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 <grisu@debian.org> - por la sugerencia de incluir
una seccin acerca de mantener versiones especficas.
<p>
Bryan Stillwell <bryan@bokeoa.com> - por los varios parches y
correcciones que me envi
<p>
Pawel Tecza <pawel.tecza@poland.com> - por las varias
correcciones que me mando de la traduccin al polaco
<p>
Pablo Lorenzzoni <spectra@debian.org> - por escribir la seccin
acerca de netselect
<p>
Steve Langasek <vorlon@netexpress.net> - por traducir el manual al
ingles
<p>
Arnaldo Carvalho de Melo <acme@conectiva.com.br> - por contribuir
a la lista de distribuciones que ahora incluyen APT:
Mandrake, PLD y Vine.
<p>
Matt Kraai <kraai@debian.org> - 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>
|