Ubuntu logo

Packaging Guide

2. 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.

Don’t want to install the latest Ubuntu development version of Ubuntu? Spin up an LXD container.

2.1. Instalar software básico de empaquetado

There are a number of tools that will make your life as an Ubuntu developer much easier. You will encounter these tools later in this guide. To install most of the tools you will need run this command:

$ sudo apt install gnupg pbuilder ubuntu-dev-tools apt-file

Esta orden instalará el software siguiente:

  • gnupgGNU Privacy Guard contains tools you will need to create a cryptographic key with which you will sign files you want to upload to 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.

  • apt-file proporciona una forma sencilla de encontrar el paquete binario que contiene un archivo determinado.

2.1.1. Crear su clave GPG

GPG stands for GNU Privacy Guard and it implements the OpenPGP standard which allows you to sign and encrypt messages and files. This is useful for a number of purposes. In our case it is important that you can sign files with your key so they can be identified as something that you worked on. If you upload a source package to Launchpad, it will only accept the package if it can absolutely determine who uploaded the package.

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>

Esto mandará su clave al servidor de claves de Ubuntu, pero una red de servidores de claves la sincronizarán automáticamente entre ellos. Una vez que se complete esta sincronización, su clave pública firmada estará lista para verificar sus contribuciones por todo el mundo.

2.1.2. 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.

2.1.3. 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

where <release> is for example xenial, zesty, artful or in the case of Debian maybe sid or buster. This will take a while as it will download all the necessary packages for a “minimal installation”. These will be cached though.

2.2. 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

  • Configure your shell to recognize you (for putting your name in changelogs)

2.2.1. 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.

2.2.2. Obtener una cuenta de Launchpad

If you don’t already have a Launchpad account, you can easily create one. If you have a Launchpad account but cannot remember your Launchpad id, you can find this out by going to https://launchpad.net/~ and looking for the part after the ~ in the 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 on Launchpad has more information about the process and additional settings you can change.

2.2.3. Subir su clave GPG a Launchpad

First, you will need to get your fingerprint and key ID.

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

Then run this command to submit your key to Ubuntu keyserver:

$ gpg --keyserver keyserver.ubuntu.com --send-keys 43CDE61D

where 43CDE61D should be replaced by your key ID (which is in the first line of output of the previous command). Now you can import your key to Launchpad.

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 encrypts the email, using your public key, so that it can be sure that the key is yours. If you are using Thunderbird, the default Ubuntu email client, you can install the Enigmail plugin to easily decrypt the message. If your email software does not support OpenPGP encryption, copy the encrypted email’s contents, type gpg in your terminal, then paste the email contents into your terminal window.

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

2.2.4. 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).

For more information on this process, visit the creating an SSH keypair page on Launchpad.

2.2.5. Configurar el intérprete de órdenes

The Debian/Ubuntu packaging tools need to learn about you as well in order to properly credit you in the changelog. Simply open your ~/.bashrc in a text editor and add something like this to the bottom of it:

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).