Aprenda Linux, 302 (Entornos mixtos): Configure y compile Samba desde su origen

Ensamblando Samba desde cero

Como la mayoría del software de Linux, Samba es de código abierto, de forma que puede obtener los archivos de código de origen originales usados por sus programadores y después compilar un paquete binario para su propio sistema. Hacer esto le permite ejecutar software más reciente que el que proporcionan sus mantenedores de distribución, ajustar opciones de tiempo de compilación, establecer dispositivos de compilación para un rendimiento óptimo e incluso modificar el código de origen. Aprenda cómo.

Roderick W. Smith, Consultant and author

Roderick Smith author photoRoderick W. Smith es un consultor y autor de más de una docena de libros sobre UNIX y Linux, incluyendo The Definitive Guide to Samba 3, Linux in a Windows World, y Linux Professional Institute Certification Study Guide. También es el autor del software de particionamiento GPT fdisk. Actualmente vive en Woonsocket, Rhode Island.



23-04-2012

Sobre esta serie

Esta serie de artículos le ayuda a aprender las tareas de administración de sistemas Linux. También puede usar el material en estos artículos para prepararse para los exámenes de Linux Professional Institute Certification nivel 3 (LPIC-3).

Vea nuestro roadmap de developerWorks para LPIC-3 para obtener una descripción y un enlace de cada artículo en esta serie. El roadmap está en progreso y refleja los objetivos actuales (noviembre de 2010) para los exámenes de LPIC-3. A medida que cada artículo es completado, es añadido al roadmap.

En este artículo, aprenda sobre estos conceptos:

  • Identificar paquetes importantes de Samba y su contenido.
  • Ubicar e instalar software del que se depende.
  • Describir la estructura del software de Samba.
  • Identificar opciones de compilación importantes de Samba.

Este artículo le ayuda a prepararse para el objetivo 311.1 en el examen de Linux® Professional Institute (LPI) Certification nivel 3 (LPIC-3) LPI-302. Este objetivo tiene un peso de 1.

Requisitos Previos

Este artículo asume que tiene un conocimiento funcional de las funciones de línea de comandos de Linux y al menos un entendimiento general de la estructura del software (código de origen frente al código binario) y los procedimientos de compilación. Para realizar las acciones descritas en este artículo, su computador debe tener una conexión de Internet en funcionamiento y una compiladora C (como GNU Compiler Collection [GCC]).


Obteniendo código de origen de Samba

Sobre el examen optativo LPI-302

Linux Professional Institute Certification (LPIC) es como muchas otras certificaciones en las que se ofrecen distintos niveles, con cada nivel requiriendo más conocimiento y experiencia que el anterior. El examen LPI-302 es un examen de especialidad optativo en el tercer nivel de la jerarquía de LPIC y requiere un nivel avanzado de conocimiento de administración de sistema Linux.

Para obtener su certificación de LPIC nivel 3 (LPIC-3), debe pasar los dos exámenes de primer nivel (101 y 102), los dos exámenes de segundo nivel (201 y 202) y el examen principal de LPIC-3 (301). Después de que haya obtenido este nivel, puede tomar los exámenes de especialidad optativos, tales como LPI-302.

El código de origen de Samba está listo y disponible en el website de Samba (vea Recursos para obtener un enlace). Si está familiarizado con la compilación e instalación de software desde el código de origen, no debe tener problemas con Samba; sin embargo, debido a la naturaleza crítica de Samba de muchas instalaciones, tal vez quiera tomar precauciones extra para asegurarse de que su software es lo que cree que es. Con este fin, los desarrolladores de Samba proporcionan claves de autenticación que puede usar para validar su descarga.

Descargando un tarball de origen

Puede descargar el código de origen de Samba desde la página Web principal de Samba. Un enlace a la versión estable más reciente (3.5.6 al momento de esta publicación) aparece en la página principal. Haga clic para obtener esta versión del software; el tarball aparece siempre que su navegador Web coloca sus descargas. Un enlace de descarga para la siguiente generación de Samba, la versión 4, también aparece en la página principal; sin embargo, la versión 4 de Samba se encuentra en pruebas alfa y ha estado ahí durante años. Úsela sólo si necesita tener sus dispositivos o si desea contribuir con el desarrollo de Samba.

Construya su propio feed

Puede construir un feed personalizado de RSS, Atom o HTML, de forma que sea notificado a medida que añadimos nuevos artículos o actualizamos el contenido. Vaya a developerWorks RSS feeds. Seleccione Linux para la zona y Articles para el tipo, y escriba Linux Professional Institute para las palabras clave. Después, elija su tipo de feed preferido.

Cerca del enlace principal d descarga, encontrará un enlace a las notas de release de la versión actual y otro enlace a la firma, la cual usa para verificar la integridad del software. Si necesita verificar la integridad del software, debe descargar el archivo de firma. (Tal vez necesite hacer clic con el botón derecho en el enlace para hacer esto.) Este archivo es llamado samba-version.tar.asc, donde version es el número de versión de Samba.

Las opciones adicionales de descarga aparecen en la página de descargas de Samba. Esta página incluye enlaces a un archivo de versiones anteriores de Samba; instrucciones para descargar el software mediante Git, Control Version System y otras herramientas; enlaces a herramientas relacionadas tales como gestores de interfaz gráfica de usuario y paquetes de Server Message Block (SMB)/Common Internet File System (CIFS) para otras plataformas; etc. Un enlace particularmente importante es hacia la clave de GnuPG (GPG) para el paquete de Samba. Debe descargar este archivo (samba-pubkey.asc) si pretende verificar la autenticidad del paquete de Samba, como se describe a continuación.

Verificando la autenticidad del software

Es posible descomprimir, compilar, instalar y usar Samba sin verificar la autenticidad del software. Sin embargo, debido a la importancia crítica del servidor, ejecutar el conjunto de comandos requeridos para verificar la autenticidad es generalmente una buena idea. Para hacerlo, realice las siguientes etapas:

  1. Asegúrese de que ha descargado los archivos samba-version.tar.asc y samba-pubkey.asc.
  2. Escriba gunzip samba-version.tar.gz para descomprimir (pero no para descomprimir en tar) el archivo de paquete.
  3. Si no lo ha hecho ya, escriba gpg --import samba-pubkey.asc para importar la clave pública de Samba en su anillo de claves de GPG.
  4. Escriba gpg --verify samba-version.tar.asc para verificar la clave. El programa debe responder con un mensaje similar a:

    gpg: Signature made Thu 07 Oct 2010 02:23:24 PM EDT using DSA key ID 6568B7EA
    gpg: Good signature from "Samba Distribution Verification Key 
    <samba-bugs@samba.org\>"

Es probable que la salida continúe con un mensaje que indique que la clave no está certificada con una firma confiable. Este mensaje resalta una limitación del procedimiento de verificación recién descrito: si el website principal de Samba estuviera en peligro, el atacante podría sustituir el paquete de Samba y ambas claves con versiones falsas, lo que podría engañarlo para aceptar las claves falsas. Puede protegerse a usted mismo hasta cierto punto al usar la opción --keyserver wwwkeys.pgp.net para gpg en la etapa 4. Esta opción causa que gpg recupere una clave de wwwkeys.gpg.net como parte del proceso de verificación. Alguien distribuyendo un paquete falso de Samba entonces necesitaría comprometer este servidor de claves además del servidor de Samba.

Desempaquetando el tarball

Asumiendo que su paquete ha pasado su etapa de verificación (o si no desea molestarse con esa etapa), puede desempaquetar su tarball de código de origen. Hágalo en su directorio de inicio o en un directorio tal como /usr/src/, que tiene por objeto alojar código de origen para software instalado localmente. Si desempaqueta el código de origen en /usr/src/, tal vez tenga que adquirir privilegios de raíz para hacerlo o cambiar los permisos en /usr/src/ para habilitar un usuario ordinario para que escriba en ese directorio.

Como sea que lo haga, cámbiese a la base del directorio en el cual desea descomprimir el tar del código de origen. Después, escriba el siguiente comando:

$ tar xvf ~/samba-version.tar

Este comando asume que ya ha descomprimido el tarball y que está ubicado en la base de su directorio de inicio. Si el tarball sigue comprimido, puede descomprimirlo primero o añadir z a los comandos tar y cambiar el nombre del archivo, como en:

$ tar xvzf ~/samba-version.tar.gz

Si el archivo reside en un lugar distinto a la base de su directorio de inicio, ajuste la ruta apropiadamente. Por supuesto, también debe cambiar el nombre del archivo para reflejar la versión que está usando.

Este comando produce una lista de archivos a medida que están siendo descomprimidos. Si ve mensajes de error, tal vez no tenga permiso para escribir en su directorio actual, o tal vez se haya quedado sin espacio disponible en disco. Una vez que la tarea se finalice con éxito, encontrará que un nuevo subdirectorio, samba-version, ahora existe. Este es su árbol de código de origen de Samba.


Compilando Samba

Con el código de origen ahora disponible, puede comenzar el proceso de compilación. Sin embargo, antes de que inicie verifique que tiene el software requerido previamente en su sistema. Después debe configurar el software antes de realizar la compilación real. Tal vez también se encuentre con problemas que tenga que resolver.

Instalando el software requerido previamente

Para compilar Samba, un número de otros paquetes de software debe estar disponible, el más notable de los cuales es GCC. GCC es un conjunto de compiladores para el lenguaje C , en el cual está escrito la mayoría de Samba. En la mayoría de las distribuciones de Linux, puede instalar GCC desde un paquete llamado, previsiblemente, gcc. Otra herramienta crítica de desarrollo es make, la cual llama a gcc y otras herramientas de desarrollo en un patrón determinado por los desarrolladores de Samba.

El código de Samba depende de muchos otros paquetes de software de bibliotecas—que proporcionan funciones de soporte para el uso de otros programas. Es posible que estas bibliotecas ya estén instaladas en su computadora, pero para compilar un programa, necesita los archivos de cabecera de las bibliotecas, que frecuentemente están instalados en paquetes separados con nombres que terminan en -dev o -devel. Como mínimo, use las herramientas de empaquetado de su distribución para asegurarse de que las bibliotecas de desarrollo libc o libc6 estén instaladas. Algunas bibliotecas podrían o no ser requeridas con base en sus opciones de configuración. Si falta una biblioteca, el script configure—o posiblemente el proceso de compilación mismo—producirán un mensaje de error, así que debe poder realizar el seguimiento de la biblioteca relevante.

Muchas distribuciones facilitan la instalación de una selección básica de herramientas de desarrollo y bibliotecas en una sola operación. En Ubuntu, por ejemplo, puede instalar el paquete build-essential . Las distribuciones como Fedora le permiten instalar grandes grupos de paquetes cuando instala el sistema operativo, así que si usted sabe que estará usando una computadora para desarrollo de software cuando instale el sistema operativo, puede seleccionar el grupo de paquetes relevante en ese momento. Si no puede encontrar dicha opción para su sistema operativo, tendrá que salir del paso instalando paquetes poco a poco.

Configurando Samba

Para configurar Samba, primero cambie el subdirectorio source3 en el directorio principal de código de origen de Samba. Este directorio contiene el código de origen para el paquete principal de Samba.

Nota: Otros subdirectorios fuera del directorio principal de código de origen de Samba contienen el código de origen para programas auxiliares, programas de soporte, documentación, etc. Por ejemplo, el subdirectorio del cliente contiene archivos relacionados con la capacidad de Linux para montar intercambios de SMB/CIFS como un cliente; el subdirectorio swat contiene el código de origen para Samba Web Administration Tool (SWAT). Construir el paquete principal de Samba también compila algunos de estos programas, pero tal vez necesite compilar otros manualmente. Compilar el cuerpo principal de Samba, en el subdirectorio source3, compila los programas de servidor smbd y nmbd críticos junto con las bibliotecas de soporte y muchas herramientas relacionadas.

El script configure maneja el proceso de configuración. En el caso más simple, puede escribir ./configure para configurar Samba usando sus opciones predeterminadas. Sin embargo, existen algunos parámetros disponibles para ajustar las opciones de tiempo de compilación de Samba. Escriba ./configure --help para ver una lista de estas opciones. (Si está trabajando desde una consola que no tenga desplazamiento, tal vez quiera redirigir la salida hacia un archivo, de forma que examinarlo detenidamente mediante less o leerlo en un editor de texto.)

También puede establecer diversas variables de entorno, que también están detalladas en la salida ./configure --help . En su mayoría, los valores predeterminados funcionan bien; sin embargo, si sabe suficiente sobre los sistemas relevantes, puede ajustar las opciones para que se adapten a sus necesidades. Por ejemplo, tal vez establezca la variable de entorno CFLAGS para ajustar sus distintivos del compilador C . Si no entiende una variable de entorno, es mejor dejarla en paz.

Una vez que haya examinado detenidamente las opciones y las variables de entorno, puede configurar su compilación de Samba:

$ CFLAGS="-O3" ./configure --without-ldap

Este ejemplo le dice al script que use el distintivo de compilador -O3 de GCC y que compile a Samba sin soporte para Lightweight Directory Access Protocol. Por supuesto, puede cambiar u omitir estas opciones para su propia instalación.

Compilando el software

Realmente compilar el software requiere muy poco esfuerzo de su parte. Simplemente escriba:

$ make

El resultado es una serie de líneas describiendo lo que la utilidad make está haciendo, tal como lo siguiente:

Compiling lib/netapi/joindomain.c
Compiling lib/netapi/serverinfo.c
Compiling lib/netapi/getdc.c

Con un poco de suerte, este proceso continuará hasta que el software esté compilado, lo que probablemente requerirá varios minutos, aunque el tiempo exacto varía dependiendo de la velocidad de su computadora. Si su computadora tiene más de un procesador o un procesador multi-core, tal vez quiera usar la opción -j para make para que ejecute múltiples trabajos simultáneamente, acelerando así el proceso. Por ejemplo, puede escribir make -j 4 para que make compile hasta cuatro archivos de código de origen simultáneamente. Una vez que el software se ha compilado, puede usar el destino install para que make lo instale:

# make install

Aunque puede realizar las acciones anteriores como un usuario ordinario (asumiendo que tiene acceso de Escritura para el árbol del directorio de código de origen como ese usuario), usar make install requiere que tenga privilegios de raíz, ya que este comando copia los archivos binarios y de documentación de Samba en directorios de sistema en la computadora (normalmente /usr/local/, a menos que cambie la ubicación mediante las opciones del script configure ).

Solucionando problemas

Desafortunadamente, la configuración y la compilación a veces fallan. La causa más común de tales problemas es una biblioteca faltante. Si la etapa de configuración falla, probablemente verá un mensaje cerca del final de la salida que especifique lo que está faltando—por ejemplo, el mensaje puede indicar que no puede encontrar las bibliotecas Pluggable Authentication Module. Debe entonces utilizar las herramientas de gestión de paquete de su sistema, tales como Synaptic o Yumex, para buscar e instalar el software relevante. Recuerde que tal vez necesite instalar las bibliotecas de desarrollo por separado del paquete de bibliotecas principal.

Puede manejar errores en la fase de make en una forma similar; sin embargo, estos errores frecuentemente generan cantidades enormes de mensajes de error. Ignore los últimos errores en la lista; desplácese hacia arriba hasta que encuentre el primer mensaje de error. Frecuentemente, un error lleva a otro, lo que lleva a otro, y así sucesivamente. Corregir el primer error rompe esta cadena y frecuentemente permite que el software se compile correctamente.

Corregir errores de make puede requerir más interpretar que corregir errores de configure , ya que los errores de make probablemente hagan referencia a archivos faltantes o incluso a sintaxis inadecuada dentro de un archivo. Si un archivo faltante es el culpable, su nombre puede servir como una pista; intente buscar en los paquetes de su distribución el nombre del archivo menos cualquier extensión que tenga; hacer esto, puede llevarlo a una biblioteca de desarrollo faltante que configure no marcó con un distintivo. Si esto falla, intente una búsqueda Web del nombre del archivo; esto probablemente lo lleve al nombre de la biblioteca que necesita instalar. Si el error se relaciona a sintaxis incorrecta, el problema es más serio. Tal vez pueda inhabilitar un dispositivo con una opción de script configure relevante; sin embargo, tal vez necesitará actualizar (o reducir la versión) su compilador C o la versión de Samba que está intentando compilar. Si está tratando con una versión de prerelease del software, tal vez se haya encontrado con un error que necesitará parchar usted mismo. Este tipo de trabajo está más allá del ámbito de este artículo, así que tal vez necesite buscar ayuda de desarrolladores de Samba o de un programador experto.


Avanzando

El objetivo LPIC-3 311.2—y el siguiente artículo en esta serie—describe cómo instalar Samba desde su origen y desde paquetes binarios. Esta tarea necesariamente incluye el lanzamiento de programas del servidor de Samba, smbd y nmbd. (Los servidores adicionales manejan tareas auxiliares, tales como una SWAT para configuración basada en Web.)

Recursos

Aprender

Obtener los productos y tecnologías

  • El website de Samba tiene descargas de Samba e información.
  • Hay opciones de descarga adicionales de Samba en la página de descargas de Samba en el website de Samba.
  • El website de GCC proporciona información sobre y descargas de GNU Compiler Collection y las herramientas y bibliotecas relacionadas.
  • La página Web de GNU make proporciona información sobre y descargas de la utilidad de GNU make .
  • Evalúe productos de IBM de la forma que mejor se ajuste a usted: Descargue una prueba de producto, ensaye un producto en línea, use un producto en un entorno en nube, o pase algunas horas en el SOA Sandbox aprendiendo a implementar la Arquitectura Orientada a Servicios con eficiencia.

Comentar

  • Participe en la Comunidad My developerWorks. Conéctese con otros usuarios developerWorks mientras explora los blogs, foros, grupos y wikis dirigidos a desarrolladores.

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Linux
ArticleID=810014
ArticleTitle=Aprenda Linux, 302 (Entornos mixtos): Configure y compile Samba desde su origen
publish-date=04232012