SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

<p><h1>PKGBUILDER</h1></p>

<p>El sistema es muy sencillo. Existe un script principal llamado 'build.sh' al que se le pasan varios parámetros: el script del paquete que queremos compilar y una lista de acciones. Por ejemplo:</p>

<blockquote><code># ./build.sh xap/aterm/aterm-0.4.2.build fetch patch configure</code></blockquote>

<p>Esto hará que se ejecuten las acciones <code>'fetch'</code>, <code>'patch'</code> y <code>'configure'</code> para el script <code>aterm-0.4.2.build</code></p>

<p>Si se omite la acción se ejecutará la acción <code>'auto'</code>.</p>

<p>Existen varias acciones:</p>

<ul>

<li> <code>info</code>: muestra información del paquete.</li>

<li> <code>fetch</code>: descarga los archivos necesarios para la compilación

y creación del paquete.</li>

<li> <code>verify</code>: verifica el checksum de los paquetes descargados.</li>

<li> <code>unpack</code>: descomprime los archivos necesarios.</li>

<li> <code>patch</code>: parchea los archivos necesarios para la compilación.</li>

<li> <code>configure</code>: ejecuta el script configure del paquete.</li>

<li> <code>build</code>: ejecuta make.</li>

<li> <code>install</code>: ejecuta make install.</li>

<li> <code>postinstall</code>: ejecuta todas la acciones necesarias después

de la instalación del paquete.</li>

<li> <code>buildpkg</code>: genera el paquete <code>tgz</code> correspondiente listo para

        su instalación en el sistema. El paquete sólo se generará
        si se ejecuta como superusuario.</li>

<li> <code>installpkg</code>: instala el paquete previamente generado por la

        acción buildpkg. Solo funciona cuando se ejecuta como
        superusuario.</li>

<li> <code>upgradepkg</code>: actualiza el paquete previamente generado. Solo

funciona cuando se ejecuta como superusuario.</li>

<li> <code>cleanup</code>: realiza la limpieza de los archivos utilizados

para la compilación y creación del paquete.</li>

<li> <code>auto</code>: ejecuta automáticamente esta secuencia acciones:

        fetch,
        uncompress,
        patch,
        configure,
        build,
        install,
        postinstall y
        buildpkg</li>

</ul>

<p>Por cada paquete existen un script para cada versión del paquete. En el se configuran las variables necesarias para la compilación y creación del paquete y se implementan una serie de metodos, uno por cada acción. Dentro de cada uno de esos métodos está la implementación de la acción para ese paquete.</p>

<p>Luego en el subdirectorio <code>'files'</code> se incluyen otro tipo de archivos necesarios para la creación del paquete, como parches, scripts, archivos slack-desc, etc...</p>

<p>El script principal, lee estos dos archivos y luego ejecuta el método correspondiente a la acción indicada.</p>

<p>Existe un script en el directorio <code>'scripts'</code> llamado <code>'functions.sh'</code> que incluye toda una serie de funciones útiles para la compilación y creación de paquetes. Estas funciones se pueden utilizar en cada uno de los scripts para cada paquete. Actualmente estas son las funciones actualmente implementadas:</p>

<ul>

<li> <code>version</code>: imprime por pantalla la versión.</li>

<li> <code>fetch</code>: descarga el archivo indicado en el parámetro $1

utilizando 'wget'.</li>

<li> <code>gzip_map</code>: comprime todas las páginas de manual del directorio

que se pasa en como parámetro.</li>

<li> <code>strip_all</code>: realiza la función strip en todos los archivos

binarios desde el directorio que se le pasa como parámetro.</li> </ul>

<p>Poco a poco esto va evolucionando. Ahora mismo estoy implementando la gestión de dependencias entre paquetes y también la gestión de la variable USE de forma a similar a como existe en Gentoo. Evidentemente todo esta aún en una fase muy, pero que muy preliminar.</p>

<p>Cualquiera que se acerque un poco al codigo fuente verá que no soy precisamente un gurú de la programación en bash, pero siempre que lo he necesitado me he hecho mis propios scripts, no demasiados ortodoxos pero sí efectivos. Si notais que hay algo que se puede hacer mejor o eliminar cosas innecesarias, hacedmelo saber.</p>

<p>&lt;tomby (AT) mail.berlios.de&gt;</p>


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.