/usr/share/doc/ubuntu-packaging-guide-html-es/packaging-new-software.html is in ubuntu-packaging-guide-html-es 0.3.8.
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 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>6. Empaquetando nuevo software — Ubuntu Packaging Guide</title>
<link rel="shortcut icon" href="./_static/images/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="./_static/reset.css" type="text/css" />
<link rel="stylesheet" href="./_static/960.css" type="text/css" />
<link rel="stylesheet" href="./_static/base.css" type="text/css" />
<link rel="stylesheet" href="./_static/home.css" type="text/css" />
<link rel="stylesheet" href="./_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="./_static/guide.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.3.8',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="./_static/jquery.js"></script>
<script type="text/javascript" src="./_static/underscore.js"></script>
<script type="text/javascript" src="./_static/doctools.js"></script>
<script type="text/javascript" src="./_static/translations.js"></script>
<script type="text/javascript" src="./_static/main.js"></script>
<link rel="top" title="Ubuntu Packaging Guide" href="./index.html" />
<link rel="next" title="7. Actualizaciones de seguridad y de versiones estables" href="security-and-stable-release-updates.html" />
<link rel="prev" title="5. Tutorial: corregir un error en Ubuntu" href="fixing-a-bug-example.html" />
</head>
<body class="home">
<a name="top"></a>
<div class="header-navigation">
<div>
<nav role="navigation">
<ul>
<li class="page_item current_page_item"><a title="Contenidos" href="index.html">Contenidos</a>
<li>
<form id="form-search" method="get" action="search.html">
<fieldset>
<input id="input-search" type="text" name="q" value="Search" />
</fieldset>
</form>
</li>
</ul>
</nav>
<a class="logo-ubuntu" href="http://packaging.ubuntu.com/">
<img src="./_static/images/logo-ubuntu.png" width="119" height="27" alt="Ubuntu logo" />
</a>
<a href="http://packaging.ubuntu.com/"><h2>Packaging Guide</h2></a>
</div>
</div>
<div class="header-content">
<div class="clearfix">
<div class="header-navigation-secondary">
<div>
<nav role="navigation">
<ul class="clearfix">
<li class="page_item"><a style="margin-right: 10px"
href="security-and-stable-release-updates.html" title="7. Actualizaciones de seguridad y de versiones estables"
accesskey="N">siguiente</a></li>
<li class="page_item"><a
href="fixing-a-bug-example.html" title="5. Tutorial: corregir un error en Ubuntu"
accesskey="P">anterior</a></li>
<li class="page_item"><a class="sub-nav-item" href="index.html">Ubuntu Packaging Guide »</a></li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="content" class="body container_12">
<div class="grid_12">
<!--<section id="main-section">-->
<div class="grid_9 alpha">
<div class="section" id="packaging-new-software">
<h1>6. Empaquetando nuevo software<a class="headerlink" href="#packaging-new-software" title="Enlazar permanentemente con este título">¶</a></h1>
<p>A pesar de que hay miles de paquetes en el repositorio de Ubuntu, todavía hay muchos que nadie ha conseguido. Si hay una nueva y excitante porción de software que siente que necesita una exposición más amplia, quizá quiera intentar crear un paquete para Ubuntu o un <a class="reference external" href="https://help.launchpad.net/Packaging/PPA">PPA</a>. Esta guía le acompañará a través de los pasos del empaquetado de nuevo software.</p>
<p>Probablemente quiera leer el artículo <a class="reference internal" href="getting-set-up.html"><span class="doc">Getting Set Up</span></a> antes para preparar su entorno de desarrollo.</p>
<div class="section" id="checking-the-program">
<h2>6.1. Comprobar el programa<a class="headerlink" href="#checking-the-program" title="Enlazar permanentemente con este título">¶</a></h2>
<p>La primera fase del empaquetado es obtener el archivo tar liberado aguas arriba (llamamos a los autores de las aplicación aguas arriba, «upstream») y comprobar que compila y se ejecuta.</p>
<p>Esta guía le llevará a través del empaquetado de una aplicación sencilla llamada GNU Hello, la cual ha sido publicada en <a class="reference external" href="http://www.gnu.org/software/hello/">GNU.org</a>.</p>
<p>Si no tiene las herramientas de compilación asegúrese de obtenerlas antes. Si tampoco tiene instaladas todas las dependencias necesarias, instálelas igualmente.</p>
<p>Instalar herramientas de compilación:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ sudo apt-get install build-essential
</pre></div>
</div>
<p>Descargar el paquete «main»:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ wget -O hello-2.7.tar.gz "http://ftp.gnu.org/gnu/hello/hello-2.7.tar.gz"
</pre></div>
</div>
<p>Descomprimir el paquete «main»:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ tar xf hello-2.7.tar.gz
$ cd hello-2.7
</pre></div>
</div>
<p>Esta aplicación usa el sistema de compilación autoconf, así que debemos ejecutar «./configure» para preparar la compilación.</p>
<p>Esto comprobará las dependencias de compilación necesarias. Como <code class="docutils literal"><span class="pre">hello</span></code> es un ejemplo sencillo, <code class="docutils literal"><span class="pre">build-essential</span></code> debería proporcionar todo lo que necesitamos. Para programas más complejos, la orden fallará si no tiene las bibliotecas y archivos de desarrollo necesarios. Instale los paquetes necesarios y repita hasta que la orden se ejecute correctamente.:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ ./configure
</pre></div>
</div>
<p>Ahora puede compilar el fuente:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ make
</pre></div>
</div>
<p>Si la compilación finaliza con éxito puede instalar y ejecutar el programa:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ sudo make install
$ hello
</pre></div>
</div>
</div>
<div class="section" id="starting-a-package">
<h2>6.2. Iniciar un paquete<a class="headerlink" href="#starting-a-package" title="Enlazar permanentemente con este título">¶</a></h2>
<p><code class="docutils literal"><span class="pre">bzr-builddeb</span></code> incluye un complemento para crear nuevos paquetes a partir de una plantilla. El complemento es un envoltorio alrededor de la orden <code class="docutils literal"><span class="pre">dh_make</span></code>. Ya debería tenerlos instalados si instaló <code class="docutils literal"><span class="pre">packaging-dev</span></code>. Ejecute la orden indicando el nombre del paquete, número de versión y la ruta al archivo tar de aguas arriba:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ sudo apt-get install dh-make bzr-builddeb
$ cd ..
$ bzr dh-make hello 2.7 hello-2.7.tar.gz
</pre></div>
</div>
<p>Cuando pregunte por el tipo de paquete escriba <code class="docutils literal"><span class="pre">s</span></code> para binario simple. Esto importará el código en u n rama y añadirá el directorio de empaquetado <code class="docutils literal"><span class="pre">debian/</span></code>. Eche un vistazo al contenido. La mayoría de los archivos que añade son sólo necesarios para paquetes especialistas (como los módulos de Emacs) así que puede comenzar por eliminar los archivos de ejemplo opcionales:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ cd hello/debian
$ rm *ex *EX
</pre></div>
</div>
<p>Ahora debería personalizar cada uno de los archivos.</p>
<p>In <code class="docutils literal"><span class="pre">debian/changelog</span></code> change the
version number to an Ubuntu version: <code class="docutils literal"><span class="pre">2.7-0ubuntu1</span></code> (upstream version 2.7,
Debian version 0, Ubuntu version 1). Also change <code class="docutils literal"><span class="pre">unstable</span></code> to the current
development Ubuntu release such as <code class="docutils literal"><span class="pre">trusty</span></code>.</p>
<p>Mucho del trabajo de compilación de paquetes se hace mediante una serie de scripts llamados <code class="docutils literal"><span class="pre">debhelper</span></code>. El comportamiento exacto de <code class="docutils literal"><span class="pre">debhelper</span></code> cambia con las nuevas versiones mayores y el archivo de compatibilidad instruye a <code class="docutils literal"><span class="pre">debhelper</span></code> sobre la versión como la que debe comportarse. Generalmente querrá establecerla a la versión más reciente, que es la <code class="docutils literal"><span class="pre">9</span></code>.</p>
<p><code class="docutils literal"><span class="pre">control</span></code> contiene todos los metadatos del paquete. El primer párrafo describe el paquete fuente. El segundo y siguientes describen los paquetes binarios a construir. Necesitaremos añadir los paquetes necesarios para compilar la aplicación a <code class="docutils literal"><span class="pre">Build-Depends:</span></code>. Para <code class="docutils literal"><span class="pre">hello</span></code>, asegúrese de que incluye al menos:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">Build</span><span class="o">-</span><span class="n">Depends</span><span class="p">:</span> <span class="n">debhelper</span> <span class="p">(</span><span class="o">>=</span> <span class="mi">9</span><span class="p">)</span>
</pre></div>
</div>
<p>También necesitará rellenar la descripción del programa en el campo <code class="docutils literal"><span class="pre">Description:</span></code>.</p>
<p>Debe rellenar <code class="docutils literal"><span class="pre">copyright</span></code> para que siga la licencia de los fuentes aguas arriba. Según el archivo hello/COPYING es GNU GPL 3 o superior.</p>
<p><code class="docutils literal"><span class="pre">docs</span></code> contiene cualquier archivo de documentación de aguas arriba que piense que debería ser incluido en el paquete final.</p>
<p><code class="docutils literal"><span class="pre">README.source</span></code> y <code class="docutils literal"><span class="pre">README.Debian</span></code> solo son necesarios si su paquete tiene características no estándar. No las tiene, así que se pueden borrar.</p>
<p><code class="docutils literal"><span class="pre">source/format</span></code> se puede dejar como está. Describe el formato de la versión del paquete fuente y debería ser <code class="docutils literal"><span class="pre">3.0</span> <span class="pre">(quilt)</span></code>.</p>
<p><code class="docutils literal"><span class="pre">rules</span></code> es el archivo más complejo. Es un Makefile que compila el código y lo convierte en un paquete binario. Afortunadamente la mayor parte del trabajo hoy en día se realiza automáticamente por <code class="docutils literal"><span class="pre">debhelper</span> <span class="pre">7</span></code> así que el objetivo Makefile <code class="docutils literal"><span class="pre">%</span></code> universal simplemente ejecuta el script <code class="docutils literal"><span class="pre">dh</span></code> que a su vez ejecutará todo lo que haga falta.</p>
<p>Todos estos archivos se explican con más detalle en el artículo <a class="reference internal" href="debian-dir-overview.html"><span class="doc">resumen del directorio debian</span></a>.</p>
<p>Finalmente confirme el código en su rama de empaquetado:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ bzr add debian/source/format
$ bzr commit -m "Initial commit of Debian packaging."
</pre></div>
</div>
</div>
<div class="section" id="building-the-package">
<h2>6.3. Construir el paquete<a class="headerlink" href="#building-the-package" title="Enlazar permanentemente con este título">¶</a></h2>
<p>Ahora necesitamos comprobar que el empaquetado compila con éxito el paquete y genera el paquete binario .deb:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ bzr builddeb -- -us -uc
$ cd ../../
</pre></div>
</div>
<p><code class="docutils literal"><span class="pre">bzr</span> <span class="pre">builddeb</span></code> es una orden para compilar el paquete en su ubicación actual. Los parámetros <code class="docutils literal"><span class="pre">-us</span> <span class="pre">-uc</span></code> le indicarán que no es necesario firmar con GPG el paquete. El resultado se dejará en <code class="docutils literal"><span class="pre">..</span></code>.</p>
<p>Puede ver el contenido del paquete con:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ lesspipe hello_2.7-0ubuntu1_amd64.deb
</pre></div>
</div>
<p>Install the package and check it works (later you will be able to uninstall it
using <code class="docutils literal"><span class="pre">sudo</span> <span class="pre">apt-get</span> <span class="pre">remove</span> <span class="pre">hello</span></code> if you want):</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ sudo dpkg --install hello_2.7-0ubuntu1_amd64.deb
</pre></div>
</div>
<p>You can also install all packages at once using:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ sudo debi
</pre></div>
</div>
</div>
<div class="section" id="next-steps">
<h2>6.4. Siguientes pasos<a class="headerlink" href="#next-steps" title="Enlazar permanentemente con este título">¶</a></h2>
<p>Even if it builds the .deb binary package, your packaging may have
bugs. Many errors can be automatically detected by our tool
<code class="docutils literal"><span class="pre">lintian</span></code> which can be run on the source .dsc metadata file, .deb
binary packages or .changes file:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ lintian hello_2.7-0ubuntu1.dsc
$ lintian hello_2.7-0ubuntu1_amd64.deb
</pre></div>
</div>
<p>To see verbose description of the problems use <code class="docutils literal"><span class="pre">--info</span></code> lintian flag
or <code class="docutils literal"><span class="pre">lintian-info</span></code> command.</p>
<p>Results of Ubuntu archive checks can be found online on
<a class="reference external" href="http://lintian.ubuntuwire.org">http://lintian.ubuntuwire.org</a>.</p>
<p>For Python packages, there is also a <code class="docutils literal"><span class="pre">lintian4python</span></code> tool that provides
some additional lintian checks.</p>
<p>Después de realizar una corrección al empaquetado puede reconstruirlo usando la opción <code class="docutils literal"><span class="pre">-nc</span></code> («no clean», sin limpiar) para no tener que compilarlo desde el principio:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ bzr builddeb -- -nc -us -uc
</pre></div>
</div>
<p>Después de comprobar que el paquete se compila en local debería asegurarse de que lo hace también en un sistema limpio usando <code class="docutils literal"><span class="pre">pbuilder</span></code>. Puesto que se va a subir en breve a un PPA (archivo de paquetes personal), esta proceso de subida deberá ser <em>firmado</em> para permitir a Launchpad que verifique que la carga proviene de usted (puede saber que la carga se firmará porque no se pasan los marcadores <code class="docutils literal"><span class="pre">-us</span></code> y <code class="docutils literal"><span class="pre">-uc</span></code> a <code class="docutils literal"><span class="pre">bzr</span> <span class="pre">builddeb</span></code> como se hizo antes). Para firmar su trabajo necesita haber configurado GPG. Si no ha configurado todavía <code class="docutils literal"><span class="pre">pbuilder-dist</span></code> o GPG todavía, <a class="reference internal" href="getting-set-up.html"><span class="doc">do so now</span></a>:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ bzr builddeb -S
$ cd ../build-area
$ pbuilder-dist trusty build hello_2.7-0ubuntu1.dsc
</pre></div>
</div>
<p>Cuando esté satisfecho con su paquete deseará que otros lo revisen. Puede subirlo la rama a Launchpad para su revisión:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ bzr push lp:~<lp-username>/+junk/hello-package
</pre></div>
</div>
<p>Al subirlo a un PPA se asegurará de que compila y le proporcionará una manera fácil de probar los paquetes binarios para usted y para otros. Necesitará configurar un PPA en Launchpad y luego cargarlo con <code class="docutils literal"><span class="pre">dput</span></code>:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span>$ dput ppa:<lp-username>/<ppa-name> hello_2.7-0ubuntu1.changes
</pre></div>
</div>
<p>Véase <a class="reference internal" href="udd-uploading.html"><span class="doc">subir</span></a> para más información.</p>
<p>You can ask for reviews in <code class="docutils literal"><span class="pre">#ubuntu-motu</span></code> IRC channel, or on the
<a class="reference external" href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-motu">MOTU mailing list</a>. There might also be a more specific
team you could ask such as the GNU team for more specific questions.</p>
</div>
<div class="section" id="submitting-for-inclusion">
<h2>6.5. Enviar para su inclusión<a class="headerlink" href="#submitting-for-inclusion" title="Enlazar permanentemente con este título">¶</a></h2>
<p>Existe varios caminos por los que un paquete puede entrar en Ubuntu. En la mayoría de los casos, ir antes por Debian puede ser la mejor alternativa. De esta forma se asegura de que su paquete llegará al mayor número de usuarios, ya que también estará disponible no solo para Debian y Ubuntu, sino para todos sus derivados también. Estos son algunos enlaces útiles para enviar nuevos paquetes a Debian:</p>
<blockquote>
<div><ul class="simple">
<li><a class="reference external" href="https://wiki.debian.org/DebianMentorsFaq">Debian Mentors FAQ</a> - debian-mentors is for the mentoring of new and
prospective Debian Developers. It is where you can find a sponsor
to upload your package to the archive.</li>
<li><a class="reference external" href="http://www.debian.org/devel/wnpp/">Work-Needing and Prospective Packages</a> - Information on how to file
“Intent to Package” and “Request for Package” bugs as well as list
of open ITPs and RFPs.</li>
<li><a class="reference external" href="http://www.debian.org/doc/manuals/developers-reference/pkgs.html#newpackage">Debian Developer’s Reference, 5.1. New packages</a> - The entire
document is invaluable for both Ubuntu and Debian packagers. This
section documents processes for submitting new packages.</li>
</ul>
</div></blockquote>
<p>In some cases, it might make sense to go directly into Ubuntu first. For
instance, Debian might be in a freeze making it unlikely that your
package will make it into Ubuntu in time for the next release. This
process is documented on the <a class="reference external" href="https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages">“New Packages”</a> section of the Ubuntu wiki.</p>
</div>
<div class="section" id="screenshots">
<h2>6.6. Screenshots<a class="headerlink" href="#screenshots" title="Enlazar permanentemente con este título">¶</a></h2>
<p>Una vez que se ha cargado el paquete a Debian, se recomienda añadir capturas de pantalla para que el usuario pueda ver el aspecto del programa. Estas imágenes pueden cargarse en <a class="reference external" href="http://screenshots.debian.net/upload">http://screenshots.debian.net/upload</a> .</p>
</div>
</div>
<div class="divide"></div>
</div>
<div id="sidebar" class="grid_3 omega">
<div class="container-tweet">
<h3>Tabla de Contenidos</h3>
<div class="toc">
<ul>
<li><a class="reference internal" href="#">6. Empaquetando nuevo software</a><ul>
<li><a class="reference internal" href="#checking-the-program">6.1. Comprobar el programa</a></li>
<li><a class="reference internal" href="#starting-a-package">6.2. Iniciar un paquete</a></li>
<li><a class="reference internal" href="#building-the-package">6.3. Construir el paquete</a></li>
<li><a class="reference internal" href="#next-steps">6.4. Siguientes pasos</a></li>
<li><a class="reference internal" href="#submitting-for-inclusion">6.5. Enviar para su inclusión</a></li>
<li><a class="reference internal" href="#screenshots">6.6. Screenshots</a></li>
</ul>
</li>
</ul>
</div>
<div class="browse-guide">
<h3>Browse The Guide:</h3>
<ul>
<li class="prev">
<a href="fixing-a-bug-example.html"
title="Tema anterior: 5. Tutorial: corregir un error en Ubuntu">Go Previous</a>
</li>
<li class="center">
<a title="Back to Index" href="index.html">Index Guide</a>
</li>
<li class="next">
<a href="security-and-stable-release-updates.html"
title="Próximo tema: 7. Actualizaciones de seguridad y de versiones estables">Go Next</a>
</li>
</ul>
<span>Esta página:</span> <a href="./_sources/packaging-new-software.txt"
rel="nofollow">Mostrar el código</a>
</div>
</div>
<div id="back_top"><a href="#top">Back to Top</a></div>
</div>
<!--</section>-->
</div>
</div>
<div class="shadow"></div>
<footer>
<div>
Version: 0.3.8.
<a href="https://bugs.launchpad.net/ubuntu-packaging-guide">Report bugs</a> or
<a href="https://code.launchpad.net/~ubuntu-packaging-guide-team/ubuntu-packaging-guide/trunk">grab the source code</a> from Launchpad.
Creado con <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.4.
<br />
© Copyright 2010-2016, Ubuntu Developers, Creative Commons Attribution-ShareAlike 3.0.
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">
Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">
<img alt="Creative Commons License" style="border-width:0"
src="./_static/images/cc-by-sa.png" /></a>
<br />
<a href="http://people.ubuntu.com/~mitya57/ubuntu-packaging-guide-readme.html#translating">Help translate</a> or
<a href="./_static/translators.html">view the list of translators</a>.
</div>
</footer>
</body>
</html>
|