<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Configuración</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Guía de Referencia"><link rel="up" href="install-free-software-chapter.html" title="Capítulo 12. Compilando e instalando software libre"><link rel="previous" href="decompression.html" title="Descompresión"><link rel="next" href="install-free-compilation.html" title="Compilación"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Configuración</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="decompression.html">Anterior</a> </td><th width="60%" align="center">Capítulo 12. Compilando e instalando software libre</th><td width="20%" align="right"> <a accesskey="n" href="install-free-compilation.html">Siguiente</a></td></tr></table><hr></div><div class="sect1" lang="es"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-free-config"></a>Configuración</h2></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa64"></a>Por razones puramente técnicas, el hecho de disponer de los fuentes es la posibilidad de <a name="BId-install-free-software-chapter-gt8" href="glossary.html#term-porting"><i class="glossterm">portar</i></a> el software. Un software libre desarrollado para un sistema <span class="application">UNIX</span> se puede usar en todos los sistemas <span class="application">UNIX</span> existentes (sean libres o propietarios), con pocas modificaciones o ninguna. Esto implica una configuración del software justo antes de la compilación.</p><p><a name="BId-install-free-software-chapter-pa65"></a>Existen muchos sistemas de configuración, Usted tiene que usar el que el autor del software quiera (a veces, se necesitan varios) Por lo general, Usted puede:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-install-free-software-chapter-pa66"></a>usar <span class="application">AutoConf</span> (consulte la sección <a href="install-free-config.html#autoconf" title="Autoconf">“Autoconf”</a>) si existe un fichero denominado <tt class="filename">configure</tt> en el directorio padre de la distribución.</p></li><li><p><a name="BId-install-free-software-chapter-pa67"></a>usar <span class="application">imake</span> (consulte la sección <a href="install-free-config.html#imake" title="Imake">“Imake”</a>) si existe un fichero denominado <tt class="filename">Imakefile</tt> en el directorio padre de la distribución.</p></li><li><p><a name="BId-install-free-software-chapter-pa68"></a>ejecutar un <a name="BId-install-free-software-chapter-gt9" href="glossary.html#term-script"><i class="glossterm">script</i></a> del shell, (por ejemplo, <tt class="filename">install.sh</tt>) según lo que diga el fichero <tt class="filename">INSTALL</tt> (o el fichero <tt class="filename">README</tt>)</p></li></ul></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="autoconf"></a>Autoconf</h3></div></div><div></div></div><div class="sect3" lang="es"><div class="titlepage"><div><div><h4 class="title"><a name="id2561319"></a>Principio</h4></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa69"></a><span class="application">AutoConf</span> permite configurar el software correctamente. Crea los ficheros necesarios para la compilación (por ejemplo, el fichero <tt class="filename">Makefile</tt>), y, a veces, cambia los fuentes directamente (como, por ejemplo, al usar un fichero <tt class="filename">config.h.in</tt>)</p><p><a name="BId-install-free-software-chapter-pa70"></a>El principio de <span class="application">AutoConf</span> es simple:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-install-free-software-chapter-pa71"></a>el programador del software sabe qué pruebas son necesarias para configurar su software (ejemplo: “<span class="quote">¿qué versión de esta o aquella <a name="BId-install-free-software-chapter-gt10" href="glossary.html#term-library"><i class="glossterm">biblioteca</i></a> usa</span>”?) Él las escribe, siguiendo una sintaxis precisa, en un fichero denominado <tt class="filename">configure.in</tt>.</p></li><li><p><a name="BId-install-free-software-chapter-pa72"></a>Él ejecuta <span class="application">AutoConf</span>, el cual genera un script de configuración denominado <tt class="filename">configure</tt> a partir del fichero denominado <tt class="filename">configure.in</tt>. Este script efectuará las pruebas necesarias cuando se configure el programa.</p></li><li><p><a name="BId-install-free-software-chapter-pa73"></a>El usuario final ejecuta el script, y <span class="application">AutoConf</span> se encarga de configurar todo lo que es necesario para la compilación.<a class="indexterm" name="BId-install-free-software-chapter-it4"></a></p></li></ul></div></div><div class="sect3" lang="es"><div class="titlepage"><div><div><h4 class="title"><a name="id2561494"></a>Ejemplo</h4></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa74"></a>Un ejemplo del uso de <span class="application">AutoConf</span>:</p><a name="BId-install-free-software-chapter-sc6"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ ./configure loading cache ./config.cache checking for gcc... gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes checking for main in -lX11... yes checking for main in -lXpm... yes checking for main in -lguile... yes checking for main in -lm... yes checking for main in -lncurses... yes checking how to run the C preprocessor... gcc -E checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include checking for ANSI C header files... yes checking for unistd.h... yes checking for working const... yes updating cache ./config.cache creating ./config.status creating lib/Makefile creating src/Makefile creating Makefile</pre></td></tr></table><p><a name="BId-install-free-software-chapter-pa75"></a>Para tener un mayor control de lo que genera <span><b class="command">configure</b></span>, se le pueden pasar algunas opciones por medio de la línea de comandos o variables de entorno. Por ejemplo:</p><a name="BId-install-free-software-chapter-sc7"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ ./configure --with-gcc --prefix=/opt/GNU</pre></td></tr></table><p><a name="BId-install-free-software-chapter-pa76"></a>o (con <span class="application">bash</span>):</p><a name="BId-install-free-software-chapter-sc8"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ export CC=`which gcc` $ export CFLAGS=-O2 $ ./configure --with-gcc</pre></td></tr></table><p><a name="BId-install-free-software-chapter-pa77"></a>o:</p><a name="BId-install-free-software-chapter-sc9"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ CC=gcc CFLAGS=-O2 ./configure</pre></td></tr></table></div><div class="sect3" lang="es"><div class="titlepage"><div><div><h4 class="title"><a name="id2561619"></a>¿Qué pasa si... no funciona?</h4></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa78"></a>Un error típico del script <tt class="filename">configure</tt> es aquel del tipo <tt class="literal">configure: error: Cannot find library guile</tt> (configure: error: no se encuentra la biblioteca <tt class="filename">guile</tt>) (La mayoría de los errores del script <tt class="filename">configure</tt> lucen así).</p><p><a name="BId-install-free-software-chapter-pa79"></a>Esto significa que el script <tt class="filename">configure</tt> no pudo encontrar una biblioteca (<tt class="filename">guile</tt> en nuestro ejemplo). El principio es que el script <tt class="filename">configure</tt> compila un pequeño programa de prueba que usa esta biblioteca. Si la compilación de este programa no tiene éxito, no podrá compilar el software. Entonces ocurre un error.</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-install-free-software-chapter-pa80"></a>Busque la razón del error examinando al final del fichero <tt class="filename">config.log</tt>, que contiene una traza de todos los pasos de configuración. El compilador de lenguaje <tt class="systemitem">C</tt> es suficientemente claro con sus mensajes de error. Eso lo ayudará a resolver el problema.</p></li><li><p><a name="BId-install-free-software-chapter-pa81"></a>Verifique que la biblioteca en cuestión esté instalada correctamente. Si no es así, puede correr <span><b class="command">/sbin/ldconfig</b></span>, borrar el fichero <tt class="filename">config.cache</tt> y volver a ejecutar el script <tt class="filename">configure</tt>. Si todavía sigue con problemas, intente volver a instalar la biblioteca (desde los fuentes o desde un fichero binario) Una forma eficiente de verificar la instalación es buscar el fichero que contiene los símbolos de la biblioteca, que siempre se denomina <tt class="option">lib<nombre>.so</tt>. Por ejemplo, <a name="BId-install-free-software-chapter-sc10"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ find / -name 'libguile*'</pre></td></tr></table><p> o, si no: <a name="BId-install-free-software-chapter-sc11"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ locate libguile</pre></td></tr></table><p> </p></li><li><p><a name="BId-install-free-software-chapter-pa82"></a>Verifique que el compilador puede acceder a la biblioteca. Eso significa que la misma se encuentra en algún directorio entre: <tt class="filename">/usr/lib</tt>, <tt class="filename">/lib</tt>, <tt class="filename">/usr/X11R6/lib</tt> (o entre aquellos especificados por la variable de entorno <tt class="varname">LD_LIBRARY_PATH</tt>, explicada en <a href="install-free-compilation.html#it-does-not-work" title="¿Qué pasa si... no funciona?">“¿Qué pasa si... no funciona?”</a> número <a href="install-free-compilation.html#LD-LIBRARY-PATH">b</a>). Verifique que este fichero es una biblioteca ingresando <span><b class="command">file libguile.so</b></span>.</p></li><li><p><a name="BId-install-free-software-chapter-pa83"></a>Verifique que los ficheros de encabezado correspondientes a la biblioteca se encuentran en el lugar adecuado (generalmente, <tt class="filename">/usr/include</tt> o <tt class="filename">/usr/local/include</tt> o <tt class="filename">/usr/X11R6/include</tt>) Si Usted no sabe cuales son los ficheros de encabezado necesarios, verifique que instaló la versión de desarrollo de la biblioteca en cuestión (por ejemplo, <tt class="filename">libgtk+2.0-devel</tt> en vez de <tt class="filename">libgtk+2.0</tt>) La versión de desarrollo de la biblioteca proporciona los ficheros “<span class="quote">include</span>” (incluir) necesarios para compilar un software usando esta biblioteca.</p></li><li><p><a name="BId-install-free-software-chapter-pa84"></a>Verifique que Usted tiene espacio suficiente en el disco (el script <tt class="filename">configure</tt> necesita de algo de espacio para ficheros temporales). Use el comando <span><b class="command">df -h</b></span> para visualizar las particiones de su sistema, y note las particiones llenas o casi llenas.</p></li></ul></div><p><a name="BId-install-free-software-chapter-pa85"></a>Si Usted no comprende los mensajes de error almacenados en el fichero <tt class="filename">config.log</tt>, no dude en pedir ayuda a la comunidad de software libre (consulte la sección <a href="install-free-support.html#support" title="Soporte técnico">“Soporte técnico”</a>)</p><p><a name="BId-install-free-software-chapter-pa86"></a>Es más, verifique si <tt class="filename">configure</tt> responde 100% de <tt class="literal">No</tt> o si responde <tt class="literal">No</tt> y Usted está seguro que la biblioteca existe (por ejemplo, sería muy extraño que no exista la biblioteca <tt class="filename">curses</tt> en su sistema) Si ese es el caso, ¡probablemente esté mal configurada la variable <tt class="varname">LD_LIBRARY_PATH</tt>!</p></div></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="imake"></a>Imake</h3></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa87"></a><span class="application">imake</span> le permite configurar un software libre creando un fichero <tt class="filename">Makefile</tt> a partir de reglas simples. Estas reglas determinan los ficheros necesarios para compilar el fichero binario, y luego <span class="application">imake</span> genera el fichero <tt class="filename">Imakefile</tt> correspondiente. Estas reglas se especifican en un fichero denominado <tt class="filename">Imakefile</tt>.</p><p><a name="BId-install-free-software-chapter-pa88"></a>Lo que tiene interesante <span class="application">imake</span> es que usa información <i class="glossterm"><a name="BId-install-free-software-chapter-gt11"></a>dependiente del sitio</i> (dependiente de la arquitectura). Esto es muy útil para las aplicaciones que usan <span class="application">X Window System</span>. Pero <span class="application">imake</span> también se usa para muchas otras aplicaciones.</p><p><a name="BId-install-free-software-chapter-pa89"></a>La forma más fácil de usar <span class="application">imake</span>, es entrar en el directorio principal del archivo descomprimido, y luego correr el script <tt class="filename">xmkmf</tt>, que llama al programa <span class="application">imake</span>:</p><a name="BId-install-free-software-chapter-sc12"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ xmkmf -a $ imake -DUseInstalled -I/usr/X11R6/lib/X11/config $ make Makefiles</pre></td></tr></table><p><a name="BId-install-free-software-chapter-pa90"></a>Si el sitio no está instalado correctamente, ¡debe recompilar e instalar <span class="application">X11R6</span>!</p></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="id2562197"></a>Varios scripts del shell</h3></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa91"></a>Para más información lea los ficheros <tt class="filename">INSTALL</tt> o <tt class="filename">README</tt>. Por lo general, Usted tiene que ejecutar un fichero del tipo <tt class="filename">install.sh</tt> o <tt class="filename">configure.sh</tt>. Entonces, o el script de instalación será silencioso (y determinará lo que necesita por sí solo), o le preguntará información sobre su sistema (por ejemplo, las rutas)</p><p><a name="BId-install-free-software-chapter-pa92"></a>Si Usted no llega a determinar el fichero que tiene que ejecutar, puede ingresar <tt class="literal">./</tt> (bajo <span class="application">bash</span>), y luego presionar dos veces la tecla <span><b class="keycap">TAB</b></span> (tecla del tabulador) <span class="application">bash</span> completará automáticamente el nombre de un fichero ejecutable en el directorio corriente (por lo tanto, un posible script de configuración) En caso de que varios ficheros se puedan ejecutar, le dará una lista. Solo debe elegir el fichero correcto.</p><p><a name="BId-install-free-software-chapter-pa93"></a>Un caso particular es la instalación de módulos <span class="application">perl</span> (aunque no solamente de estos) La instalación de tales módulos se hace mediante la ejecución de un script de configuración, el cual se encuentra escrito en <span class="application">perl</span>. Por lo general, el comando a ejecutar es:</p><a name="BId-install-free-software-chapter-sc13"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ perl Makefile.PL</pre></td></tr></table></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="id2562336"></a>Alternativas</h3></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa94"></a>Algunas distribuciones de software libre están mal organizadas, especialmente durante las primeras etapas de desarrollo (¡pero se previene al usuario!) En las mismas se necesita retocar “<span class="quote">a mano</span>” algunos ficheros de configuración. Por lo general, estos ficheros son un fichero <tt class="filename">Makefile</tt> (ver la sección <a href="install-free-compilation.html#make" title="Make">“Make”</a>) y un fichero <tt class="filename">config.h</tt> (este nombre sólo es convencional) Como siempre, ¡lea los ficheros <tt class="filename">README</tt> e <tt class="filename">INSTALL</tt>!</p><p><a name="BId-install-free-software-chapter-pa95"></a>No recomendamos que estas manipulaciones sean hechas por usuarios que no sepan lo que están haciendo. Esto necesita de conocimientos reales y la motivación necesaria para tener éxito. Pero, la práctica lleva a la perfección.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="decompression.html">Anterior</a> </td><td width="20%" align="center"><a accesskey="u" href="install-free-software-chapter.html">Subir</a></td><td width="40%" align="right"> <a accesskey="n" href="install-free-compilation.html">Siguiente</a></td></tr><tr><td width="40%" align="left" valign="top">Descompresión </td><td width="20%" align="center"><a accesskey="h" href="index.html">Inicio</a></td><td width="40%" align="right" valign="top"> Compilación</td></tr></table></div></body></html>