Ubuntu logo

Developer

Fase de preparación

Hay una serie de cosas que necesita hacer para poder empezar a desarrollar para Ubuntu. Este artículo está diseñado para que pueda configurar su equipo de forma que pueda comenzar a trabajar con paquetes y subirlos a Launchpad, la plataforma de hospedaje de Ubuntu. Los temas cubiertos son:

  • Instalar software relacionado con el empaquetado. Incluye:
    • Utilidades de empaquetado específicas de Ubuntu
    • Software de cifrado, para poder verificar que el trabajo se hizo por el usuario indicado
    • Software de cifrado adicional para poder enviar archivos de forma segura
  • Crear y configurar una cuenta en Launchpad
  • Configurar un entorno de desarrollo para ayudarle compilar paquetes localmente, interactuar con otros desarrolladores y proponer sus cambios en Launchpad.

Nota

Se recomienda hacer el trabajo de empaquetado usando la versión actual en desarrollo de Ubuntu. Esto le permitirá probar los cambios en el mismo entorno en el que serán realmente aplicados y usados.

No se preocupe, sin embargo, la página Ubuntu development release wiki page muestra varias formas de usar de forma segura la versión de desarrollo.

Instalar software básico de empaquetado

Existen varias herramientas que le harán su vida de desarrollador de Ubuntu mucho más fácil. Encontrará estas herramientas más adelante en esta misma guía. Para instalar la mayoría de las herramientas necesitará ejecutar esta orden:

$ sudo apt-get install gnupg pbuilder ubuntu-dev-tools bzr-builddeb apt-file

Nota: desde Ubuntu 11.10 «Oneiric Ocelot» (o si tiene activa las actualizaciones no soportadas en una versión actualmente soportada), el siguiente comando instalará las herramientas anteriores y otras que son bastante habituales en el desarrollo de Ubuntu:

$ sudo apt-get install packaging-dev

Esta orden instalará el software siguiente:

  • gnupgGNU Privacy Guard contiene herramientas que necesitará para crear una clave criptográfica con la que firmar los archivos que quiera subir a Launchpad.
  • pbuilder – una herramienta para realizar compilaciones reproducibles de una paquete en un entorno limpio y aislado.
  • ubuntu-dev-tools (y devscripts, una dependencia directa) – una colección de herramientas que hace muchas tareas del empaquetado más sencillas.
  • bzr-builddeb (y bzr, una dependencia) – sistema de control de versiones distribuido con Bazaar, una nueva forma de trabajar con paquetes para Ubuntu que facilitará a muchos desarrolladores colaborar y trabajar sobre el mismo código, haciendo que resulte sencillo combinar el trabajo de los demás.
  • apt-file proporciona una forma sencilla de encontrar el paquete binario que contiene un archivo determinado.

Crear su clave GPG

GPG viene de GNU Privacy Guard (guardian de privacidad de GNU) e implementa el estándar OpenPGP que le permite firmar y cifrar mensajes y archivos. Es útil para varios propósitos. En nuestro caso es importante que pueda firmar archivos con su clave de forma que puedan identificarse como algo en lo que usted ha trabajado. Si sube un paquete fuente a Launchad, solo lo aceptará si puede determinar absolutamente quién lo ha subido.

Para generar una nueva clave GPG, ejecute:

$ gpg --gen-key

GPG primero le preguntará qué tipo de clave desea generar. Elegir el tipo por defecto (RSA y DSA) es correcto. Después le preguntará por el tamaño de la clave. El predeterminado (actualmente 2048) es adecuado, pero 4096 es más seguro. Posteriormente le preguntará si desea que la clave caduque en algún momento. Es seguro decir «0», lo que significa que nunca expirará. Las últimas preguntas serán sobre su nombre y dirección de correo electrónico. Aquí simplemente elija los que quiere usar para el desarrollo de Ubuntu, y puede añadir direcciones de correo electrónico adicionales posteriormente. No es necesario añadir un comentario. Luego tendrá que establecer una frase de paso, elija una segura (una frase de paso es simplemente una contraseña en la que se permite la inclusión de espacios).

Ahora GPG creará la clave, lo que le puede llevar un tiempo; necesita algunos bytes aleatorios, así que si le da al sistema algún trabajado para hacer, mejor. Mueva el cursor, escriba algunos párrafos de texto aleatorio o cargue alguna página web.

Una vez hecho esto, recibirá un mensaje similar a:

pub   4096R/43CDE61D 2010-12-06
      Key fingerprint = 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D
uid                  Daniel Holbach <dh@mailempfang.de>
sub   4096R/51FBE68C 2010-12-06

En este caso 43CDE61D es el ID de clave.

Después necesitará cargar la parte pública de su clave a un servidor de claves, de forma que el resto del mundo pueda identificar los mensajes y archivos como suyos. Para hacerlo, escriba:

$ gpg --send-keys --keyserver keyserver.ubuntu.com <KEY ID>

This will send your key to the Ubuntu keyserver, but a network of keyservers will automatically sync the key between themselves. Once this syncing is complete, your signed public key will be ready to verify your contributions around the world.

Crear su clave SSH

SSH viene de Secure Shell (intérprete de órdenes seguro) y es un protocolo que le permite intercambiar datos de una forma segura en una red. Es habitual usar SSH para acceder a un intérprete de órdenes en otro equipo y usarlo para transferir archivos de forma segura. Para nuestros propósitos, usaremos SSH básicamente para subir paquetes fuentes a Launchpad.

Para generar una clave SSH, escriba:

$ ssh-keygen -t rsa

El nombre de archivo por defecto normalmente tiene sentido, así que puede dejarlo tal cual. Por motivos de seguridad, se recomienda encarecidamente que use una frase de paso.

Configurar pbuilder

pbuilder le permite compilar paquetes localmente en su equipo. Sirve para un par de propósitos:

  • La compilación se hará en un entorno mínimo y limpio. Esto le ayuda a asegurarse de que sus compilaciones se completan de una forma reproducible, pero sin modificar su sistema local.
  • No es necesario instalar todas las dependencias de compilación necesarias de forma local.
  • Puede configurar varias instancias para distintas versiones de Ubuntu y Debian.

Configurar pbuilder es muy fácil, ejecute:

$ pbuilder-dist <release> create

donde <versión> es, por ejemplo, natty, maverick, lucid o, en el caso de Debian, quizá sid. Le llevará un rato ya que descargará todos los paquetes necesarios para una «instalación mínima». Sin embargo, estos paquetes serán cacheados.

Preparar una configuración para trabajar con Launchpad

Con una configuración local básica establecida, el siguiente paso será configurar el sistema para trabajar con Launchpad. Esta sección se centrará en los siguientes temas:

  • Qué es Launchpad y la creación de una cuenta de Launchpad
  • Subir claves GPG y SSH a Launchpad
  • Configurar Bazaar para trabajar con Launchpad
  • Configurar Bash para trabajar con Bazaar

Acerca de Launchpad

Launchpad es la pieza central de la infraestructura usada en Ubuntu. No sólo almacena todos sus paquetes y código, sino también cosas tales como traducciones, informes de errores e información sobre la gente que trabaja en Ubuntu y su pertenencia a equipos. También usará Launchpad para publicar sus propuestas de solución y hacer que otros desarrolladores de Ubuntu las revisen y esponsoricen.

Necesitará registrarse en Launchpad y proporcionar una cantidad mínima de información. Esto le permitirá descargar y subir código, enviar informes de error y más cosas.

Además de hospedar a Ubuntu, Launchpad puede hospedar a cualquier otro proyecto de software libre. Para más información véase la Launchpad Help wiki.

Obtener una cuenta de Launchpad

Si no tiene todavía una cuenta de Launchpad, puede fácilmente create one. Si tiene una cuenta de Launchpad pero no puede recordar su identificador de Launchpad, puede encontrarlo visitando https://launchpad.net/~ y mirando en la parte que sigue al símbolo ~ en la URL.

El proceso de registro de Launchpad le pedirá que elija un nombre de usuario. Se recomienda que use su nombre real de forma que los colegas desarrolladores de Ubuntu lleguen a conocerle mejor.

Cuando registre una nueva cuenta, Launchpad le enviará un correo con un enlace que deberá abrir en su navegador para verificar su dirección de correo electrónico. Si no lo recibe, compruebe su carpeta de correo no deseado (spam).

The new account help page en Launchpad contiene más información sobre el proceso y parámetros adicionales que puede cambiar.

Subir su clave GPG a Launchpad

Para buscar su huella de GPG, ejecute:

$ gpg --fingerprint <email@address.com>

y le mostrará algo como:

pub   4096R/43CDE61D 2010-12-06
      Key fingerprint = 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D
uid                  Daniel Holbach <dh@mailempfang.de>
sub   4096R/51FBE68C 2010-12-06

Diríjase a https://launchpad.net/~/+editpgpkeys y copie la huella de la clave («Key fingerprint») en la casilla de texto. En el caso anterior sería 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D. Ahora pulse en «Import Key» (importar clave).

Launchpad usará la huella para comprobar su clave en el servidor de claves de Ubuntu. Si tiene éxito, le enviará un correo electrónico cifrado, pidiéndole que confirme la clave importada. Compruebe su cuenta de correo electrónico y lea el mensaje que le ha enviado Launchpad. Si su cliente de correo electrónico soporta el cifrado de OpenPGP, le pedirá la contraseña que eligió para la clave cuando la generó GPG. Escriba la contraseña, y luego pulse en el enlace que confirma que esa clave es suya.

Launchpad cifra el mensaje de correo usando su clave pública, para asegurar que la clave es suya. Si utiliza Thunderbird, el cliente de correo electrónico predeterminado en Ubuntu, puede instalar el complemento Enigmail para descifrar el mensaje fácilmente. Si su software de correo electrónico no es compatible con el cifrado OpenPGP, copie el contenido del mensaje cifrado, escriba gpg en su terminal, y pegue el contenido del mensaje en la ventana de la terminal.

De vuelta a la web de Launchpad, use el botón «Confirm» (confirmar) y Launchpad completará la importación de su clave OpenPGP.

Encuentre más información en https://help.launchpad.net/YourAccount/ImportingYourPGPKey

Subir su clave SSH a Launchpad

Abra https://launchpad.net/~/+editsshkeys en su navegador web y abra también ~/.ssh/id_rsa.pub en un editor de textos. Esta es la parte pública de su clave SSH, así que es seguro compartirla en Launchpad. Copie el contenido del archivo y péguelo en la casilla de texto de la página web que dice «Add an SSH key» (añadir una clave SSH). Ahora pulse «Import Public Key» (importar clave pública).

Para más información sobre este proceso, visite la página creating an SSH keypair en Launchpad.

Configurar Bazaar

Bazaar es la herramienta que se usa para almacenar cambios en el código de una manera lógica, para intercambiar los cambios propuestos y para combinarlos, incluso si el desarrollo se realiza de forma concurrente. Se usa para el nuevo método de desarrollo distribuido de Ubuntu para trabajar con paquetes de Ubuntu.

Para decirle a Bazaar quién es usted, simplemente ejecute:

$ bzr whoami "Bob Dobbs <subgenius@example.com>"
$ bzr launchpad-login subgenius

whoami le dirá a Bazaar qué nombre y dirección de correo electrónico debería usar para enviarle mensajes. Con launchpad-login establece su ID de Launchpad. De esta forma el código que publique en Launchpad se asociará a usted.

Nota: si no puede recordar el ID, visite https://launchpad.net/~ y mire a dónde le redirecciona. La parte tras el símbolo «~» en la URL es su ID de Launchpad.

Configurar el intérprete de órdenes

De forma similar a Bazaar, las herramientas de empaquetado de Debian/Ubuntu necesitan conocerle. Simplemente abra su ~/.bashrc en un editor de textos y añada lo siguiente al final del mismo:

export DEBFULLNAME="Bob Dobbs"
export DEBEMAIL="subgenius@example.com"

Ahora guarde el archivo y reinicie su terminal o ejecute:

$ source ~/.bashrc

(si no usa el intérprete de órdenes por defecto, que es bash, edite el archivo de configuración de dicho intérprete como corresponda).