/usr/share/doc/maint-guide-es/html/start.es.html is in maint-guide-es 1.2.39.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Capítulo 1. Empezando «de la forma correcta».</title>
<link rel="stylesheet" type="text/css" href="debian.css"/>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="home" href="index.es.html" title="Guía del nuevo desarrollador de Debian"/>
<link rel="up" href="index.es.html" title="Guía del nuevo desarrollador de Debian"/>
<link rel="prev" href="index.es.html" title="Guía del nuevo desarrollador de Debian"/>
<link rel="next" href="first.es.html" title="Capítulo 2. Primeros pasos"/>
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Capítulo 1. Empezando «de la forma correcta».</th>
</tr>
<tr>
<td align="left"><a accesskey="p" href="index.es.html"><img src="images/prev.png" alt="Anterior"/></a> </td>
<th width="60%" align="center"> </th>
<td align="right"> <a accesskey="n" href="first.es.html"><img src="images/next.png" alt="Siguiente"/></a></td>
</tr>
</table>
<hr/>
</div>
<div class="chapter">
<div class="titlepage">
<div>
<div>
<h1 class="title"><a id="start"/>Capítulo 1. Empezando «de la forma correcta».</h1>
</div>
</div>
</div>
<div class="toc">
<p>
<strong>Tabla de contenidos</strong>
</p>
<dl class="toc">
<dt>
<span class="section">
<a href="start.es.html#socialdynamics">1.1. Dinamismo social en Debian</a>
</span>
</dt>
<dt>
<span class="section">
<a href="start.es.html#needprogs">1.2. Programas necesarios para el desarrollo</a>
</span>
</dt>
<dt>
<span class="section">
<a href="start.es.html#needdocs">1.3. Documentos necesarios para el desarrollo</a>
</span>
</dt>
<dt>
<span class="section">
<a href="start.es.html#helpme">1.4. Dónde pedir ayuda</a>
</span>
</dt>
</dl>
</div>
<p>
Este documento tratará de describir cómo se construye un paquete Debian
GNU/Linux para el usuario común de Debian y para futuros desarrolladores en
un lenguaje informal, y con multitud de ejemplos. Hay un antiguo dicho
romano que dice, «<span class="emphasis"><em>Longum iter est per preaecepta, breve et efficax
per exempla!</em></span>» (¡Es un largo camino con las reglas, pero corto y
eficiente con ejemplos!).
</p>
<p>
Este documento está actualizado a la versión
<code class="literal">jessie</code> de Debian <a href="#ftn.idm75" class="footnote" id="idm75"><sup class="footnote">[1]</sup></a>.
</p>
<p>
Una de las cosas que hace a Debian una de las distribuciones más importantes
del mercado es su sistema de paquetes. Aunque hay una gran cantidad de
programas disponibles en forma de paquetes de Debian, algunas veces
necesitarás instalar programas que no están disponible en este formato.
Puede que te preguntes cómo hacer tus propios paquetes y que pienses que
quizás ésta es una tarea demasiado difícil. Bueno, si eres un principiante
en GNU/Linux, sí es duro, pero si eres un novato, no deberías estar leyendo
esto ahora mismo. :-) Necesitas saber algo sobre programación en Unix,
pero, desde luego, no tienes que ser un maestro <a href="#ftn.idm81" class="footnote" id="idm81"><sup class="footnote">[2]</sup></a>.
</p>
<p>
Sin embargo, hay una cosa que es verdad: para construir y mantener paquetes
Debian adecuadamente, necesitarás muchas horas. Para que nuestro sistema
trabaje sin errores, nuestros desarrolladores necesitan ser técnicamente
competentes y concienzudos.
</p>
<p>
Si quieres información complementaria sobre cómo construir paquetes lee
<a class="xref" href="start.es.html#helpme" title="1.4. Dónde pedir ayuda">Sección 1.4, “Dónde pedir ayuda”</a>.
</p>
<p>
Las nuevas versiones de este documento están en <a class="ulink" href="http://www.debian.org/doc/maint-guide/">http://www.debian.org/doc/maint-guide/</a>
y en el paquete <code class="systemitem">maint-guide</code>. Las
traducciones pueden obtenerse en paquetes como <code class="systemitem">maint-guide-es</code>. Debe tenerse presente que las
traducciones pueden estar desactualizadas.
</p>
<p>
Como se trata de un tutorial, he optado por explicar cada paso
detalladamente en algunos temas importantes. Algunas explicaciones pueden
parecerte irrelevantes. Te ruego que seas paciente. También he omitido
intencionalmente algunos casos extremos y algunos aspectos sólo se mencionan
con la intención de que el documento sea sencillo.
</p>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="socialdynamics"/>1.1. Dinamismo social en Debian</h2>
</div>
</div>
</div>
<p>
Aquí explico mis observaciones sobre la dinámica social en Debian. Espero
que esto te preparará para la interacción con Debian:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>Todos somos voluntarios.</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>No puedes imponer a los demás lo que debe hacerse.</p>
</li>
<li class="listitem">
<p>Debes estar motivado para hacer las cosas por ti mismo.</p>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>La cooperación amistosa es la fuerza motriz.</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>Tu contribución no debe estresar a los demás.</p>
</li>
<li class="listitem">
<p>Tu contribución es valiosa sólo cuando los demás te lo agradecen..</p>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>Debian no es la escuela donde recibir atención automática de los profesores.</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>Debes ser capaz de aprender muchas cosas por ti mismo.</p>
</li>
<li class="listitem">
<p>La atención por parte de otros voluntarios es un recurso muy escaso.</p>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>Debian está mejorando constantemente.</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>Se espera que generes paquetes de alta calidad.</p>
</li>
<li class="listitem">
<p>Debes adaptarte al cambio.</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<p>
Se utilizan distintos nombres para referirse a los roles dentro de Debian:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<span class="strong"><strong>autor original</strong></span> («upstream author»): para
referirse a la persona que ha escrito el código original del programa (o la
documentación original en el caso de paquetes de documentación).
</p>
</li>
<li class="listitem">
<p>
<span class="strong"><strong>desarrollador original</strong></span> («upstream
maintainer»): la persona que se encarga de mantener el programa (el código
fuente) en la actualidad.
</p>
</li>
<li class="listitem">
<p>
<span class="strong"><strong>empaquetador (desarrollador)</strong></span>
(«maintainer»): la persona que se encarga de construir y mantener
actualizados paquetes para Debian (N. del t.: hay una cierta ambigüedad en
la traducción de «maintainer» por desarrollador puesto que se puede
confundir con la traducción de «Debian Developer», desarrollador que
pertenece al proyecto, y de «upstream maintainer», desarrollador del
programa original).
</p>
</li>
<li class="listitem">
<p>
<span class="strong"><strong>patrocinador</strong></span> («sponsor»): la persona (que
debe ser un DD o DM, véase más adelante) que transfiere los paquetes
elaborados por el desarrollador al archivo de paquetes de Debian (al
repositorio de Debian) después de comprobar que el paquete cumple los
requisitos exigidos.
</p>
</li>
<li class="listitem">
<p>
<span class="strong"><strong>mentor</strong></span>: la persona que ayuda a los
desarrolladores principiantes a iniciarse en la construcción y mantenimiento
de paquetes.
</p>
</li>
<li class="listitem">
<p>
<span class="strong"><strong>desarrollador de Debian (DD)</strong></span> («Debian
Developer»): la persona que es miembro de Debian. Tiene permiso total para
transferir paquetes al repositorio oficial de Debian.
</p>
</li>
<li class="listitem">
<p>
<span class="strong"><strong>empaquetador de Debian (DM)</strong></span> («Debian
Maintainer»): la persona que tiene permiso limitado para transferir paquetes
al repositorio oficial de Debian.
</p>
</li>
</ul>
</div>
<p>
No puedes convertirte en <span class="strong"><strong>desarrollador oficial de
Debian</strong></span> (DD) de la noche a la mañana porque hace falta algo más
que habilidades técnicas. No te sientas desilusionado por esto. Aún puedes
subir tu paquete, si es útil a otras personas, como <span class="strong"><strong>empaquetador</strong></span> a través de un <span class="strong"><strong>patrocinador</strong></span> o un <span class="strong"><strong>empaquetador de Debian</strong></span>.
</p>
<p>
Ten en cuenta que no es necesario construir un paquete nuevo para poder
convertirte en desarrollador oficial de Debian. Una opción para ser
desarrollador oficial es contribuir al mantenimiento de los paquetes ya
existentes en la distribución. Hay muchos paquetes esperando un buen
responsable (véase <a class="xref" href="first.es.html#choose" title="2.2. Elige el programa">Sección 2.2, “Elige el programa”</a> ).
</p>
<p>
Dado que nos concentramos sólo en los aspectos técnicos del mantenimiento de
paquetes en este documento, consulta las siguientes referencias para
aprender cómo funciona Debian y cómo puedes participar:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p><a class="ulink" href="http://upsilon.cc/~zack/talks/2011/20110321-taipei.pdf">Debian: 17 años de software libre,
"meritocracia" y democracia</a> (diapositivas de introducción en inglés) </p>
</li>
<li class="listitem">
<p><a class="ulink" href="http://www.debian.org/intro/help">¿Cómo puedo ayudar a Debian?</a>
(documentación oficial) </p>
</li>
<li class="listitem">
<p><a class="ulink" href="http://www.debian.org/doc/FAQ/ch-contributing">Las Preguntas Frecuentes de Debian GNU/Linux
FAQ, capítulo 13 - 'Contribuir al proyecto Debian' </a> (documentación
semi-oficial) </p>
</li>
<li class="listitem">
<p><a class="ulink" href="http://wiki.debian.org/HelpDebian">Debian Wiki, HelpDebian</a> (documentación
complementaria) </p>
</li>
<li class="listitem">
<p><a class="ulink" href="https://nm.debian.org/">Sitio web de nuevos miembros de Debian</a>
(documentación oficial) </p>
</li>
<li class="listitem">
<p><a class="ulink" href="http://wiki.debian.org/DebianMentorsFaq">PUF de mentores en Debian</a>
(documentación complementaria) </p>
</li>
</ul>
</div>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="needprogs"/>1.2. Programas necesarios para el desarrollo</h2>
</div>
</div>
</div>
<p>
Antes de empezar, debes asegurarte que tienes instalados algunos paquetes
adicionales necesarios para el desarrollo. Observa que la lista no contiene
paquetes marcados como <code class="literal">esencial</code> o
<code class="literal">requerido</code> - al dar por supuesto que ya los tienes
instalados.
</p>
<p>
Los siguientes paquetes vienen en una instalación estándar de Debian, así
que probablemente ya los tengas (junto con los paquetes de los que
dependen). Aún así, deberías comprobarlo ejecutando <code class="literal">aptitude show
<em class="replaceable"><code>nombre_del_paquete</code></em></code> o con <code class="literal">dpkg
-s <em class="replaceable"><code>nombre_del_paquete</code></em></code>.
</p>
<p>
El paquete imprescindible para el desarrollo es <code class="systemitem">build-essential</code>. Al instalarlo,
<span class="emphasis"><em>también se instalaran otros paquetes</em></span> requeridos,
consiguiendo una instalación básica para la construcción de paquetes.
</p>
<p>
Para la construcción de algunos paquetes esto seria suficiente, pero hay
otros paquetes que, no siendo esenciales en general para la construcción de
nuevos paquetes, puede ser útil tener instalados o, incluso, necesarios para
el paquete que estás construyendo:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<code class="systemitem">autoconf</code>, <code class="systemitem">automake</code> y <code class="systemitem">autotools-dev</code> - muchos programas nuevos usan
ficheros de configuración y ficheros <code class="filename">Makefile</code> que se
procesan con la ayuda de programas como éstos (véase <code class="literal">info
autoconf</code>, <code class="literal">info automake</code>). El paquete
<code class="systemitem">autotools-dev</code> permite mantener
versiones actualizadas de los archivos autoconf y automake y tiene
documentación para usar eficientemente ese tipo de archivos.
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">dh-make</code> y <code class="systemitem">debhelper</code> - <code class="systemitem">dh-make</code> es necesario para construir el esqueleto
de nuestro paquete ejemplo, y se usarán algunas de las herramientas de
<code class="systemitem">debhelper</code> para construir los
paquetes. Aunque no son imprescindibles para la construcción de paquetes se
recomiendan <span class="emphasis"><em>encarecidamente</em></span> para nuevos
desarrolladores. Hacen el proceso mucho más fácil al principio, y más fácil
de controlar en el futuro (véase <span class="citerefentry"><span class="refentrytitle">dh_make</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">debhelper</span>(1)</span>) <a href="#ftn.idm211" class="footnote" id="idm211"><sup class="footnote">[3]</sup></a>.
</p>
<p>
The new <code class="systemitem">debmake</code> may be used as the
alternative to the standard <code class="systemitem">dh-make</code>. It does more and comes with HTML
documentation with extensive packaging examples in <code class="systemitem">debmake-doc</code>.
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">devscripts</code> - este paquete contiene
algunos guiones útiles para los desarrolladores, pero no son necesarios para
construir paquetes. Vale la pena mirar los paquetes recomendados y
sugeridos por este paquete (véase <code class="filename">/usr/share/doc/devscripts/README.gz</code>).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">fakeroot</code> - esta utilidad te permite
emular al usuario administrador («root»), lo cual es necesario para ciertas
partes del proceso de construcción (véase <span class="citerefentry"><span class="refentrytitle">fakeroot</span>(1)</span>).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">file</code> - este útil programa puede
determinar de qué tipo es un fichero (véase <span class="citerefentry"><span class="refentrytitle">file</span>(1)</span>).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">gfortran</code> - el compilador GNU de
Fortran 95, necesario si el programa está escrito en Fortran (véase
<span class="citerefentry"><span class="refentrytitle">gfortran</span>(1)</span>).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">git</code> - este paquete instala el
popular sistema de control de versiones, diseñado para hacer el seguimiento
de proyectos grandes con eficacia y rapidez; se utiliza para proyectos de
código libre importantes como es el caso del núcleo («kernel») de Linux
(véase <span class="citerefentry"><span class="refentrytitle">git</span>(1)</span> y git Manual
(<code class="filename">/usr/share/doc/git-doc/index.html</code>)).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">gnupg</code> - herramienta que te permite
<span class="emphasis"><em>firmar</em></span> digitalmente los paquetes. Esto es
especialmente importante si quieres distribuir tu paquete a otras personas,
y ciertamente, tendrás que hacerlo cuando tu trabajo vaya a incluirse en la
distribución de Debian (véase <span class="citerefentry"><span class="refentrytitle">gpg</span>(1)</span>).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">gpc</code> - el compilador GNU de Pascal,
necesario si el programa está escrito en Pascal. Merece la pena mencionar
aquí <code class="systemitem">fp-compiler</code>, un compilador
libre de Pascal, que también es bueno en esta tarea (véase <span class="citerefentry"><span class="refentrytitle">gpc</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">ppc386</span>(1)</span>).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">lintian</code> - este es el programa que
comprueba los paquetes de Debian, puede indicarte muchos de los errores
comunes después de construir un paquete, y explica los errores encontrados
(véase <span class="citerefentry"><span class="refentrytitle">lintian</span>(1)</span> y <a class="ulink" href="https://lintian.debian.org/manual/index.html">Manual
de usuario de Lintian</a>)
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">patch</code> - esta utilidad es muy
práctica para modificar el original de un archivo a partir de un archivo de
diferencias (elaborado por el programa <span class="command"><strong>diff</strong></span>) produciendo
un archivo parcheado (véase <span class="citerefentry"><span class="refentrytitle">patch</span>(1)</span>).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">patchutils</code> - este paquete contiene
programas para trabajar con los «parches» como <span class="command"><strong>lsdiff</strong></span>,
<span class="command"><strong>interdiff</strong></span> y <span class="command"><strong>filterdiff</strong></span>.
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">pbuilder</code> - este paquete contiene
programas para generar y mantener entornos <span class="command"><strong>chroot</strong></span>. Al
construir paquetes Debian en estos entornos <span class="command"><strong>chroot</strong></span> se
verifica que las dependencias son las adecuadas y se evitan fallos al
construir desde el código fuente (FTBFS de «Fails To Build From Source»).
Véase <span class="citerefentry"><span class="refentrytitle">pbuilder</span>(8)</span> y <span class="citerefentry"><span class="refentrytitle">pdebuild</span>(1)</span>.
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">perl</code> - Perl es uno de los lenguajes
interpretados para hacer guiones (o «scripts») más usados en los sistemas
Un*x de hoy en día, comúnmente se refiere a él como la «navaja suiza de
Unix» (véase <span class="citerefentry"><span class="refentrytitle">perl</span>(1)</span>).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">python</code> - Python es otro de los
lenguajes interpretados para hacer guiones (o «scripts») en Debian debido a
la combinación de su poder y sintaxis clara (véase <span class="citerefentry"><span class="refentrytitle">python</span>(1)</span>).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">quilt</code> - este paquete ayuda a aplicar
modificaciones («parches») y hacer el seguimiento de los cambios
realizados. Aplica las modificaciones ordenadamente en pila, y es posible
aplicar, deshacer y actualizar las modificaciones fácilmente recorriendo la
pila (véase <span class="citerefentry"><span class="refentrytitle">quilt</span>(1)</span> y
<code class="filename">/usr/share/doc/quilt/quilt.pdf.gz</code>.)
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">xutils-dev</code> - algunos programas,
normalmente aquellos hechos para X11, también usan programas para generar
<code class="filename">Makefile</code> ejecutando un conjunto de funciones de macro
(véase <span class="citerefentry"><span class="refentrytitle">imake</span>(1)</span>, <span class="citerefentry"><span class="refentrytitle">xmkmf</span>(1)</span>).
</p>
</li>
</ul>
</div>
<p>
Las breves descripciones dadas anteriormente sólo sirven para introducirte a
lo que hace cada paquete. Antes de continuar, por favor, lee la
documentación de cada programa, al menos para su uso normal. Puede
parecerte algo duro ahora, pero más adelante estarás
<span class="emphasis"><em>muy</em></span> contento de haberla leído.
</p>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="needdocs"/>1.3. Documentos necesarios para el desarrollo</h2>
</div>
</div>
</div>
<p>
Por último, la documentación que se indica a continuación es de
<span class="emphasis"><em>gran importancia</em></span> y debería leerse junto con este
documento:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<code class="systemitem">debian-policy</code> - el <a class="ulink" href="http://www.debian.org/doc/devel-manuals#policy">manual de normas de Debian</a> incluye la
descripción de la estructura y contenidos del archivo, ciertas notas sobre
el diseño del sistema operativo, el <a class="ulink" href="http://www.debian.org/doc/packaging-manuals/fhs/fhs-2.3.html">Filesystem Hierarchy
Standard</a> («FHS», que explica dónde deberían estar cada fichero y
directorio), y, lo más importante para ti, describe los requisitos que debe
satisfacer cada paquete para ser incluido en la distribución (véase la
copias locales en <code class="filename">/usr/share/doc/debian-policy/policy.pdf.gz</code> y
<code class="filename">/usr/share/doc/debian-policy/fhs/fhs-2.3.pdf.gz</code>).
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">developers-reference</code> - la <a class="ulink" href="http://www.debian.org/doc/devel-manuals#devref">referencia del desarrollador de Debian</a>
para todos los temas no específicamente relacionados con los detalles
técnicos de cómo empaquetar, tales como la estructura del archivo (o
repositorio de Debian), cómo renombrar, abandonar, adoptar paquetes, cómo
hacer NMU («Non-Maintainer Uploads», o envíos por personas distintas del
desarrollador), como gestionar los errores que los usuarios envían, buenas
prácticas de empaquetado, cómo y cuando enviar los paquetes, etc. (véase la
copia local en <code class="filename">/usr/share/doc/developers-reference/developers-reference.pdf</code>).
</p>
</li>
</ul>
</div>
<p>
Por último, la documentación que se indica a continuación es de
<span class="emphasis"><em>gran importancia</em></span> y debería leerse junto con este
documento:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<a class="ulink" href="http://www.lrde.epita.fr/~adl/autotools.html">Tutorial de «Autotools»</a> contiene
un tutorial muy bueno sobre <a class="ulink" href="http://es.wikipedia.org/wiki/Autotools">el sistema de
compilación GNU conocido como «GNU Autotools»</a> cuyos componentes más
importantes son «Autoconf», «Automake», «Libtool», y «gettext»
</p>
</li>
<li class="listitem">
<p>
<code class="systemitem">gnu-standards</code> - este paquete
contiene dos documentos del proyecto GNU: <a class="ulink" href="http://www.gnu.org/prep/standards/html_node/index.html">«GNU
Coding Standards»</a>, y <a class="ulink" href="http://www.gnu.org/prep/maintain/html_node/index.html">«Information for
Maintainers of GNU Software»</a>. Aunque no se exige su cumplimiento en
Debian, son útiles como orientación y sentido común (véase las copias
locales en <code class="filename">/usr/share/doc/gnu-standards/standards.pdf.gz</code> y
<code class="filename">/usr/share/doc/gnu-standards/maintain.pdf.gz</code>).
</p>
</li>
</ul>
</div>
<p>
Si este documento contradice en algún aspecto a los documentos mencionados
anteriormente, prevalecen estos últimos. Por favor, envía un informe de
error del paquete <code class="systemitem">maint-guide</code>
utilizando la orden <span class="command"><strong>reportbug</strong></span>.
</p>
<p>
El siguiente documento es un tutorial alternativo que puedes leer a la vez
que el presente documento.
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<a class="ulink" href="http://www.debian.org/doc/packaging-manuals/packaging-tutorial/packaging-tutorial">Debian Packaging Tutorial</a>
</p>
</li>
</ul>
</div>
</div>
<div class="section">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="helpme"/>1.4. Dónde pedir ayuda</h2>
</div>
</div>
</div>
<p>
Antes de decidirte a plantear alguna cuestión en algún lugar público, lee la
documentación:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
archivos en
<code class="filename">/usr/share/doc/<em class="replaceable"><code>package</code></em></code> para
cada uno de los paquetes
</p>
</li>
<li class="listitem">
<p>
contenidos de <code class="literal"><span class="command"><strong>man</strong></span>
<em class="replaceable"><code>command</code></em></code> para todos los comandos
pertinentes
</p>
</li>
<li class="listitem">
<p>
contenidos de <code class="literal"><span class="command"><strong>info</strong></span>
<em class="replaceable"><code>command</code></em></code> para todos los comandos
pertinentes
</p>
</li>
<li class="listitem">
<p>
contenidos de <a class="ulink" href="http://lists.debian.org/debian-mentors/">debian-mentors@lists.debian.org archivo de la
lista de correo</a>
</p>
</li>
<li class="listitem">
<p>
contenidos de <a class="ulink" href="http://lists.debian.org/debian-devel/">debian-devel@lists.debian.org
mailing list archive</a>
</p>
</li>
</ul>
</div>
<p>
Considera el uso eficaz de los motores de búsqueda en la web incluyendo
<code class="literal">site:lists.debian.org</code> en la cadena de búsqueda, para
limitar el dominio.
</p>
<p>
Construir un paquete pequeño es una buena forma de aprender los detalles del
mantenimiento de paquetes. Inspeccionar paquetes bien mantenidos es la mejor
forma de aprender cómo otros mantienen paquetes.
</p>
<p>
Si todavía tienes preguntas acerca de la construcción de paquetes a las que
no puedes encontrar respuesta en la documentación disponible y los recursos
web, puedes formularlas interactivamente:
</p>
<div class="itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>
<a class="ulink" href="http://lists.debian.org/debian-mentors/">debian-mentors@lists.debian.org mailing
list</a>. (Esta lista de correo es para los principiantes.)
</p>
</li>
<li class="listitem">
<p>
<a class="ulink" href="http://lists.debian.org/debian-devel/">debian-devel@lists.debian.org mailing
list</a>. (Esta lista de correo es para expertos.)
</p>
</li>
<li class="listitem">
<p>
<a class="ulink" href="http://www.debian.org/support#irc">IRC</a> tal como
<code class="literal">#debian-mentors</code>.
</p>
</li>
<li class="listitem">
<p>
Los equipos se centran en un conjunto específico de paquetes.(La lista
completa está en <a class="ulink" href="https://wiki.debian.org/Teams">https://wiki.debian.org/Teams</a>)
</p>
</li>
<li class="listitem">
<p>
Listas de correo en un idioma concreto como
debian-devel-{french,italian,portuguese,spanish}@lists.debian.org o bien
debian-devel@debian.or.jp. (La lista completa está disponible en <a class="ulink" href="https://lists.debian.org/devel.html">https://lists.debian.org/devel.html</a> and <a class="ulink" href="https://lists.debian.org/users.html">https://lists.debian.org/users.html</a>)
</p>
</li>
</ul>
</div>
<p>
Los desarrolladores de Debian con más experiencia te ayudaran con gusto, si
haces las preguntas después realizar el esfuerzo requerido.
</p>
<p>
Cuando recibas un aviso de fallo (sí, avisos de fallos, ¡de verdad!) sabrás
que es el momento de indagar en el <a class="ulink" href="http://www.debian.org/Bugs/">Sistema de seguimiento
de fallos de Debian</a> y leer su documentación para poder tratar los
informes de forma eficiente. Te recomiendo la lectura de la Referencia del
Desarrollador, en particular el capítulo de «<a class="ulink" href="http://www.debian.org/doc/manuals/developers-reference/pkgs.html#bug-handling">Referencia del desarrollador sección 5.8 -
Manejo de fallos</a>» («Handling Bugs»).
</p>
<p>
Aunque todo funcione bien, es el momento de cruzar los dedos. ¿Por qué? Por
que en sólo unas horas (o días) usuarios de todo el mundo empezarán a usar
tu paquete, y si cometiste algún error crítico centenares de usuarios
furiosos de Debian te bombardearán con correos... sólo bromeaba :-)
</p>
<p>
Relájate y prepárate para recibir informes de fallos, porque hay mucho más
trabajo que realizar antes de que tu paquete cumpla las Normas de Debian
(una vez más lee la <span class="emphasis"><em>documentación real</em></span> para más
detalles). ¡Buena suerte!
</p>
</div>
<div class="footnotes">
<br/>
<hr/>
<div id="ftn.idm75" class="footnote">
<p><a href="#idm75" class="para"><sup class="para">[1] </sup></a> El documento asume que estás utilizando la versión
<code class="literal">jessie</code>. Si quieres utilizar este documento con
una versión anterior (incluidas versiones anteriores de Ubuntu u otras)
debes instalar (como mínimo) la versión «backport» de los paquetes
<code class="systemitem">dpkg</code> y <code class="systemitem">debhelper</code>.
</p>
</div>
<div id="ftn.idm81" class="footnote">
<p><a href="#idm81" class="para"><sup class="para">[2] </sup></a>
Puedes aprender las operaciones básicas del sistema Debian en <a class="ulink" href="http://www.debian.org/doc/manuals/debian-reference/">Debian Reference</a>. Ese documento también trata algunos
aspectos sobre programación en UNIX.
</p>
</div>
<div id="ftn.idm211" class="footnote">
<p><a href="#idm211" class="para"><sup class="para">[3] </sup></a> Hay varios paquetes similares pero más específicos como <code class="systemitem">dh-make-perl</code>, <code class="systemitem">dh-make-php</code>, etc. </p>
</div>
</div>
</div>
<div class="navfooter">
<hr/>
<table width="100%" summary="Navigation footer">
<tr>
<td align="left"><a accesskey="p" href="index.es.html"><img src="images/prev.png" alt="Anterior"/></a> </td>
<td align="center"> </td>
<td align="right"> <a accesskey="n" href="first.es.html"><img src="images/next.png" alt="Siguiente"/></a></td>
</tr>
<tr>
<td align="left" valign="top">Guía del nuevo desarrollador de Debian </td>
<td align="center">
<a accesskey="h" href="index.es.html">
<img src="images/home.png" alt="Inicio"/>
</a>
</td>
<td align="right" valign="top"> Capítulo 2. Primeros pasos</td>
</tr>
</table>
</div>
</body>
</html>
|