23 sept. 2011

Como crear un metapaquete (metapaquete con archivos de configuración)

Continuando con los artículos de empaquetados, ahora se explicará como agregar archivos de configuración al metapaquete.

La idea es agregar los archivos de configuración de orca que se guardan en .orca en el home de los usuarios. Para ello se va a copiar el directorio .orca con los archivos que contenga el directorio a /etc/skell/ .

Se ejecuta el comando equivs-control:

equivs-control canaima-accesibilidad-escritorio

El archivo va a contener lo siguiente:


Section: misc
Priority: optional
Homepage: http://canaima.softwarelibre.gob.ve
Standards-Version: 3.9.1

Package: canaima-accesibilidad-visual-escritorio
Version: 1:0.1
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@centitel.gob.ve>
Depends: at-spi, brltty, brltty-flite, brltty-speechd, brltty-x11, listen, espeak, festival, festvox-sflpc16k, festvox-palpc16k, gnome-orca, gnome-accessibility-themes, gnome-accessibility, libcolorblind0, gnome-mag, libgail-common, mousetweaks, dots, ${misc:Depends}
Architecture: any
Copyright: copyright
Changelog: changelog
Files: ./conf/.orca/user-settings.py /etc/skell/.orca/user-settings.py
       ./conf/.orca/app-settings/__init__.py /etc/skell/.orca/app-settings/__init__.py
       ./conf/.orca/orca-scripts/__init__.py /etc/skell/.orca/orca-scripts/__init__.py
       ./conf/.orca/user-settings.pyc /etc/skell/.orca/user-settings.pyc
       ./conf/.orca/app-settings/__init__.pyc /etc/skell/.orca/app-settings/__init__.pyc
       ./conf/.orca/orca-scripts/__init__.pyc /etc/skell/.orca/orca-scripts/__init__.pyc
Description: Programas de Accesibilidad para Canaima GNU/Linux
 Este metapaquete provee los programas de accesibilidad y configuraciones para que las personas con discapacidad puedan utilizar canaima GNU/Linux.



Ahora se tiene el párametro Files donde el primer archivo es el origen donde se encuentra el archivo y el segundo es la ruta donde se va a copiar. Cada ruta se separa por la siguiente línea.


El archivo changelog contiene lo siguiente:


canaima-accesibilidad-visual-escritorio (1.0:0.1) unstable; urgency=low


  * First release.

 -- Ernesto Nadir Crespo Avila  <ecrespo@cenditel.gob.ve>  Thu, 22 Sep 2011 22:33:15 -0430



El archivo copyright contiene:


Authors:


    Copyright (C) 2011 Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>


License:


   This package is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; version 2 dated June, 1991.


   This package is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.


   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA


On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'

Ahora sólo queda  ejecutar el comando equivs-build:
equivs-build -f canaima-accesibilidad-visual-escritorio


Al ejecutar ls -l se tiene los archivos creados y el .deb:

total 40
-rw-r--r-- 1 ernesto ernesto 1275 sep 23 08:40 canaima-accesibilidad-visual-escritorio
-rw-r--r-- 1 ernesto ernesto 1824 sep 23 08:41 canaima-accesibilidad-visual-escritorio_0.1_amd64.changes
-rw-r--r-- 1 ernesto ernesto 6836 sep 23 08:41 canaima-accesibilidad-visual-escritorio_0.1_amd64.deb
-rw-r--r-- 1 ernesto ernesto  909 sep 23 08:41 canaima-accesibilidad-visual-escritorio_0.1.dsc
-rw-r--r-- 1 ernesto ernesto 6378 sep 23 08:41 canaima-accesibilidad-visual-escritorio_0.1.tar.gz
-rw-r--r-- 1 ernesto ernesto  184 sep 23 08:41 changelog
drwxr-xr-x 3 ernesto ernesto 4096 sep 23 08:15 conf
-rw-r--r-- 1 ernesto ernesto  896 sep 23 08:41 copyright

Al ejecutar dpkg -c del archivo .deb se tiene lo que se va a instalar con el metapaquete:

dpkg -c canaima-accesibilidad-visual-escritorio_0.1_amd64.deb
drwxr-xr-x root/root         0 2011-09-23 08:41 ./
drwxr-xr-x root/root         0 2011-09-23 08:41 ./usr/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./usr/share/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./usr/share/doc/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./usr/share/doc/canaima-accesibilidad-visual-escritorio/
-rw-r--r-- root/root      1044 2011-09-23 08:41 ./usr/share/doc/canaima-accesibilidad-visual-escritorio/README.Debian
-rw-r--r-- root/root       171 2011-09-23 08:41 ./usr/share/doc/canaima-accesibilidad-visual-escritorio/changelog.gz
-rw-r--r-- root/root       896 2011-09-23 08:41 ./usr/share/doc/canaima-accesibilidad-visual-escritorio/copyright
drwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/.orca/
drwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/.orca/app-settings/
-rwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/.orca/app-settings/__init__.py
-rw-r--r-- root/root       111 2011-09-23 08:41 ./etc/skell/.orca/app-settings/__init__.pyc
-rw-r--r-- root/root      7291 2011-09-23 08:41 ./etc/skell/.orca/user-settings.py
-rw-r--r-- root/root      6193 2011-09-23 08:41 ./etc/skell/.orca/user-settings.pyc
drwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/.orca/orca-scripts/
-rwxr-xr-x root/root         0 2011-09-23 08:41 ./etc/skell/.orca/orca-scripts/__init__.py
-rw-r--r-- root/root       111 2011-09-23 08:41 ./etc/skell/.orca/orca-scripts/__init__.pyc


Se nota que se crea el directorio .orca dentro de /etc/skell.

Se ejcuta lintian para verificar que el metapaquete no tenga errores o alertas:
lintian -i canaima-accesibilidad-visual-escritorio_0.1.dsc

22 sept. 2011

Corrigiendo los reportes generados por lintian de un metapaquete

Este artículo explicará como corregir los mensajes generados por lintian, estos mensajes son debido a que el programa empaquetado o metapaquete no cumple con el policy de Debian y para subir dicho programa es necesario que esté sin errores ni warning.

El archivo que se va a verificar es el .dsc del metapaquete creado al empaquetar canaima-caribay-radio.

Al ejecutar lintian con el archivo dsc devuelve el siguiente mensaje:

lintian -i canaima-caribay-radio_1.0.dsc 



W: canaima-caribay-radio source: debhelper-but-no-misc-depends canaima-caribay-radio
N: 
N:    The source package uses debhelper, but it does not include
N:    ${misc:Depends} in the given binary package's debian/control entry. Any
N:    debhelper command may add dependencies to ${misc:Depends} that are
N:    required for the work that it does, so recommended best practice is to
N:    always add ${misc:Depends} to the dependencies of each binary package if
N:    debhelper is in use.
N:    
N:    Refer to the debhelper(7) manual page for details.
N:    
N:    Severity: normal, Certainty: possible
N: 
W: canaima-caribay-radio source: package-uses-deprecated-debhelper-compat-version 4
N: 
N:    The debhelper compatibility version used by this package is marked as
N:    deprecated by the debhelper developer. You should really consider using
N:    a newer compatibility version.
N:    
N:    The compatibility version can be set in (preferred) debian/compat or by
N:    setting and exporting DH_COMPAT in debian/rules. If it is not set in
N:    either place, debhelper defaults to the deprecated compatibility version
N:    1.
N:    
N:    Refer to the debhelper(7) manual page for details.
N:    
N:    Severity: normal, Certainty: certain
N: 
W: canaima-caribay-radio source: binary-arch-rules-but-pkg-is-arch-indep
N: 
N:    It looks like you try to run code in the binary-arch target of
N:    debian/rules, even though your package is architecture- independent.
N:    
N:    Severity: normal, Certainty: certain
N: 

El primer warning es que hace falta agregar ${misc:Depends] en las dependencias.  Adicionalmente se tiene que cambiar el parámetro Standards-Version a la versión 3.9.1.

Section: misc
Priority: optional
Homepage: http://canaima.softwarelibre.gob.ve
Standards-Version: 3.9.1

Package: canaima-caribay-radio
Version: 1.0
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Depends: ${misc:Depends},jackd2, libjack-jackd2-0, libjack-jackd2-dev, pulseaudio-module-jack, qjackctl, libjack-jackd2-0, libjack-jackd2-dev, vorbis-tools, libvorbis-dev, libogg-dev, libmad0-dev, libsamplerate0-dev, libflac-dev, libsndfile1-dev, libavcodec-dev, libavformat-dev, libspeex-dev, python-gtk2-dev, python-mutagen, libdbus-1-dev, ffmpeg, libshout3-dev, libtwolame-dev, twolame, idjc, audacity, audacity-data, audacity-dbg, icecast2, easytag
Architecture: all
Copyright: copyright
Changelog: changelog 
Description: Metapaquete para la instalacion de radio streaming
 Metapaquete para la instalacion de radio streaming con icecast2 e idjc.


El segundo warning menciona que el archivo debian/compat tiene dentro el número 4 y es necesario que se actualice a la versión de debhelper que se está usando para empaquetar, en este caso debe cambiar a 8. Esto se tiene que cambiar en la plantilla de equivs.

vim /usr/share/equivs/template/debian/compat 
Cambiar 4 por 8.

El siguiente warning menciona un problema en la definición de la arquitectura, que es necesario quitar binary-arch y nuestro paquete es independiente de la plataforma. Esto se resuelve modificando canaima-caribay-radio cambian el parámetro Architecture: all por any.

Luego de realizar esos cambios se vuelve a crear el metapaquete y  a ejecutar lintian:

 lintian -i canaima-caribay-radio_1.0.dsc 

W: canaima-caribay-radio source: dh-clean-k-is-deprecated
N: 
N:    This package calls dh_clean -k in its debian/rules file and declares a
N:    debhelper compatibility version of at least 7.
N:    
N:    debhelper 7 deprecated dh_clean -k in favour of dh_prep.
N:    
N:    Refer to the dh_clean(1) manual page for details.
N:    
N:    Severity: normal, Certainty: certain
N: 
W: canaima-caribay-radio source: package-lacks-versioned-build-depends-on-debhelper 8
N: 
N:    The package either doesn't declare a versioned build dependency on
N:    debhelper or does not declare a versioned build dependency on a new
N:    enough version of debhelper to satisfy the declared compatibility level.
N:    
N:    Recommended practice is to always declare an explicit versioned
N:    dependency on debhelper equal to or greater than the compatibility level
N:    used by the package, even if the versioned dependency isn't strictly
N:    necessary. Having a versioned dependency also helps with backports to
N:    older releases and correct builds on partially updated systems.
N:    
N:    Refer to the debhelper(7) manual page for details.
N:    
N:    Severity: minor, Certainty: certain
N: 


Luego de cambiar el archivo compat y la versión del standards-version aparece un warning sobre el comando dh_clean -k que se tiene que sustituir por dh_prep en el archivo debian/rules de la plantilla:

vim /usr/share/equivs/template/debian/rules

install: build
        dh_testdir
        dh_testroot
        dh_prep

El otro warning menciona que debhelper tiene un número de versión viejo. Para cambiarlo se busca el archivo control.in en las plantillas y se modifica la dep

vim /usr/share/equivs/template/debian/control.in

Se modifica la siguiente línea:

Build-Depends: debhelper (>= 8)

Se vuelve a empaquetar y a ejecutar lintian:
lintian -i canaima-caribay-radio_1.0.dsc

Listo, no más mensajes de error o warnings.




21 sept. 2011

Como crear un metapaquete (versión 2)


Este artículo es una actualización del artículo sobre como crear un metapaquete que lo pueden leer acá.

En este artículo se agregará el archivo changelog y copyright para el metapaquete canaima-caribay-radio.

Se crea un directorio de trabajo:
mkdir canaima-caribay-radio

Ahora se crea el archivo control con el comando equivs-control:

equivs-control canaima-caribay-radio

Ahora se modificará el archivo para que tenga las dependencias para jackd2, icecast2, audacity, easytag e idjc. Se agrega el mantenedor del paquete, el homepage del mismo y una descripción corta y larga del metapquete.

El archivo modificado:

Section: misc
Priority: optional
Homepage: http://canaima.softwarelibre.gob.ve
Standards-Version: 3.6.2


Package: canaima-caribay-radio
Version: 1.0
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Depends: jackd2, libjack-jackd2-0, libjack-jackd2-dev, pulseaudio-module-jack, qjackctl, libjack-jackd2-0, libjack-jackd2-dev, vorbis-tools, libvorbis-dev, libogg-dev, libmad0-dev, libsamplerate0-dev, libflac-dev, libsndfile1-dev, libavcodec-dev, libavformat-dev, libspeex-dev, python-gtk2-dev, python-mutagen, libdbus-1-dev, ffmpeg, libshout3-dev, libtwolame-dev, twolame, idjc, audacity, audacity-data, audacity-dbg, icecast2, easytag
Architecture: all
Copyright: copyright
Changelog: changelog 
Description: Metapaquete para la instalacion de radio streaming
 Metapaquete para la instalacion de radio streaming con icecast2 e idjc.

Del artículo anterior se agrego el campo Copyright y Changelog.

Estos archivos contienen lo siguiente:

Copyright:

Authors:


    Copyright (C) 2011 Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
    Copyright (C) 2011 David Hernández <david.vzla@gmail.com>


License:


   This package is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; version 2 dated June, 1991.


   This package is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.


   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA


On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.

Changelog:

canaima-caribay-radio (1:1.0) unstable; urgency=low


  * First release.


 -- Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>  Tue, 20 Sep 2011 16:12:45 -0430

Ahora para crear y firmar el metapaquete se usa el comando equivs-build con la opción -f que permite ejecutar debuild completo y firmar el metapaquete.

Es importante notar que en la llave gpg debe estar el nombre del mantenedor que aparece en el control y changelog para poder firmar el metapaquete.

A continuación se muestra la llave gpg:
gpg --list-keys | less



--------------------------------
pub   1024D/C97E7015 2005-08-15
uid                  Ernesto Nadir Crespo Avila (seraph1) <ecrespo@debian.org.ve>
uid                  Ernesto Nadir Crespo Avila (seraph1) <ecrespo@debianvenezuela.org>
uid                  Ernesto Nadir Crespo Avila (seraph1) <ecrespo@uc.edu.ve>
uid                  Ernesto Nadir Crespo Avila (seraph1) <ecrespo@cantv.net>
uid                  Ernesto Nadir Crespo Avila (seraph1) <ecrespo@gmail.com>
uid                  Ernesto Crespo (seraph1) <ecrespoa@yahoo.es>
uid                  Ernesto Nadir Crespo Avila (seraph) <ernesto@crespo.info.ve>
uid                  [jpeg image of size 11184]
uid                  Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
uid                  Ernesto Nadir Crespo Avila <ernesto@crespo.org.ve>


Ahora se  creará el metapaquete: El procedimiento pedirá 2 veces escribirla frase de la llave gpg.

equivs-build -f canaima-caribay-radio

dpkg-buildpackage: exportar «CFLAGS» de dpkg-buildflags (origen: «vendor»): «-g -O2»
dpkg-buildpackage: exportar «CPPFLAGS» de dpkg-buildflags (origen: «vendor»): «»
dpkg-buildpackage: exportar «CXXFLAGS» de dpkg-buildflags (origen: «vendor»): «-g -O2»
dpkg-buildpackage: exportar «FFLAGS» de dpkg-buildflags (origen: «vendor»): «-g -O2»
dpkg-buildpackage: exportar «LDFLAGS» de dpkg-buildflags (origen: «vendor»): «»
dpkg-buildpackage: paquete fuente canaima-caribay-radio
dpkg-buildpackage: versión de las fuentes 1:1.0
dpkg-buildpackage: fuentes modificadas por Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
dpkg-buildpackage: arquitectura del sistema amd64
 dpkg-source --before-build equivs.nAXaSZ
 fakeroot debian/rules clean
dh_testdir
dh_testroot
dh_clean
dh_clean: Compatibility levels before 5 are deprecated.
 dpkg-source -b equivs.nAXaSZ
dpkg-source: aviso: no se ha definido un formato de fuentes en «debian/source/format», consulte dpkg-source(1)
dpkg-source: información: usando el formato de fuente «1.0»
dpkg-source: aviso: el directorio de fuentes «equivs.nAXaSZ» no es <paquete-fuente>-<versión-desarrollador-original> «canaima-caribay-radio-1.0»
dpkg-source: información: construyendo canaima-caribay-radio en canaima-caribay-radio_1.0.tar.gz
dpkg-source: información: construyendo canaima-caribay-radio en canaima-caribay-radio_1.0.dsc
 debian/rules build
make: No se hace nada para `build'.
 fakeroot debian/rules binary
dh_testdir
dh_testroot
dh_clean -k
dh_clean: dh_clean -k is deprecated; use dh_prep instead
dh_clean: Compatibility levels before 5 are deprecated.
dh_testdir
dh_testroot
dh_install
dh_install: Compatibility levels before 5 are deprecated.
dh_installdocs
dh_installdocs: Compatibility levels before 5 are deprecated.
dh_installchangelogs
dh_installchangelogs: Compatibility levels before 5 are deprecated.
dh_compress
dh_compress: Compatibility levels before 5 are deprecated.
dh_fixperms
dh_fixperms: Compatibility levels before 5 are deprecated.
dh_installdeb
dh_installdeb: Compatibility levels before 5 are deprecated.
dh_gencontrol
dh_gencontrol: Compatibility levels before 5 are deprecated.
dh_md5sums
dh_md5sums: Compatibility levels before 5 are deprecated.
dh_builddeb
dh_builddeb: Compatibility levels before 5 are deprecated.
dpkg-deb: construyendo el paquete `canaima-caribay-radio' en `../canaima-caribay-radio_1.0_all.deb'.
 signfile canaima-caribay-radio_1.0.dsc

Necesita una frase contraseña para desbloquear la clave secreta
del usuario: "Ernesto Nadir Crespo Avila (seraph1) <ecrespo@debian.org.ve>"
clave DSA de 1024 bits, ID C97E7015, creada el 2005-08-15

                              
 dpkg-genchanges  >../canaima-caribay-radio_1.0_amd64.changes
dpkg-genchanges: incluyendo el código fuente completo en la subida
 signfile canaima-caribay-radio_1.0_amd64.changes

Necesita una frase contraseña para desbloquear la clave secreta
del usuario: "Ernesto Nadir Crespo Avila (seraph1) <ecrespo@debian.org.ve>"
clave DSA de 1024 bits, ID C97E7015, creada el 2005-08-15

                              
 dpkg-source --after-build equivs.nAXaSZ
dpkg-buildpackage: subida completa; paquete nativo de Debian (se incluye la fuente completa)

The package has been created.
Attention, the package has been created in the current directory,
not in ".." as indicated by the message above!


Ahora se ejecuta un ls -l y se tiene lo siguiente:

ernesto@zeath:~/canaima/canaima-caribay-radio$ ls -l
total 28
-rw-r--r-- 1 ernesto ernesto  849 sep 20 17:03 canaima-caribay-radio
-rw-r--r-- 1 ernesto ernesto 2528 sep 21 08:48 canaima-caribay-radio_1.0_all.deb
-rw-r--r-- 1 ernesto ernesto 1583 sep 21 08:49 canaima-caribay-radio_1.0_amd64.changes
-rw-r--r-- 1 ernesto ernesto  819 sep 21 08:49 canaima-caribay-radio_1.0.dsc
-rw-r--r-- 1 ernesto ernesto 2170 sep 21 08:48 canaima-caribay-radio_1.0.tar.gz
-rw-r--r-- 1 ernesto ernesto  164 sep 20 17:03 changelog
-rw-r--r-- 1 ernesto ernesto  957 sep 20 17:03 copyright

El archivo canaima-caribay-radio_1.0_amd64.changes  contiene lo siguiente:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Tue, 20 Sep 2011 16:12:45 -0430
Source: canaima-caribay-radio
Binary: canaima-caribay-radio
Architecture: source all
Version: 1:1.0
Distribution: unstable
Urgency: low
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Changed-By: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Description: 
 canaima-caribay-radio - Metapaquete para la instalacion de radio streaming
Changes: 
 canaima-caribay-radio (1:1.0) unstable; urgency=low
 .
   * First release.
Checksums-Sha1: 
 2234f6f5d8808e0ae425eb3164632b01bc94251a 819 canaima-caribay-radio_1.0.dsc
 8851015c0174d5126127328776e35174e361cc21 2170 canaima-caribay-radio_1.0.tar.gz
 104312d9eb56eb623ad1f901a2801e096f4021be 2528 canaima-caribay-radio_1.0_all.deb
Checksums-Sha256: 
 3be03f102f6ef9dab2525ac384a265e9761ca2f5f4fb7d48fdbd0b38fee4e22f 819 canaima-caribay-radio_1.0.dsc
 75cb5c5b95d14d995776a035925c2cfe5ee77873d091ef9e238b000fb4b1375b 2170 canaima-caribay-radio_1.0.tar.gz
 74540c21659c774a12d5162886f59b974b155c47d5471fac40ff7fece11cd282 2528 canaima-caribay-radio_1.0_all.deb
Files: 
 3f563e110433652011cf0d32fe96a0f6 819 misc optional canaima-caribay-radio_1.0.dsc
 e53b6a60fd0961a6b161a61b5a107e77 2170 misc optional canaima-caribay-radio_1.0.tar.gz
 4ac58a93d2e4160f378093909d687967 2528 misc optional canaima-caribay-radio_1.0_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAk555EYACgkQh+iQYcl+cBW/kQCeOZzpeHCAYomqczO7kkR6+nvT
fWIAniK+uWLpndvqEJmz2IUA7JNe8Nng
=qVVe
-----END PGP SIGNATURE-----


El archivo canaima-caribay-radio_1.0.dsc contiene lo siguiente:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.0
Source: canaima-caribay-radio
Binary: canaima-caribay-radio
Architecture: all
Version: 1:1.0
Maintainer: Ernesto Nadir Crespo Avila <ecrespo@cenditel.gob.ve>
Homepage: http://canaima.softwarelibre.gob.ve
Standards-Version: 3.6.2
Build-Depends: debhelper (>= 4)
Checksums-Sha1: 
 8851015c0174d5126127328776e35174e361cc21 2170 canaima-caribay-radio_1.0.tar.gz
Checksums-Sha256: 
 75cb5c5b95d14d995776a035925c2cfe5ee77873d091ef9e238b000fb4b1375b 2170 canaima-caribay-radio_1.0.tar.gz
Files: 
 e53b6a60fd0961a6b161a61b5a107e77 2170 canaima-caribay-radio_1.0.tar.gz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAk555EIACgkQh+iQYcl+cBVLqgCdGA+DXaVjyDrcGNfxcITL9sCP
oY0An1hC/e7UIQiiTZ4DQUysYHs8sTS9
=6NcI
-----END PGP SIGNATURE-----

20 sept. 2011

Crear llave ssh para la autenticación en Github, gitorius y bitbucket.

Este artículo explicará como crear una llave pública RSA para usarla en los sitios github, gitorius y bitbucket y así poder subir código con git y mercurial a dichos repositorios.

Lo primero que se tiene que hacer es generar la llave ssh. El comando para hacerlo es ssh-keygen:

ssh-keygen -t rsa -C "ecrespo@cenditel.gob.ve"



Generating public/private rsa key pair.
Enter file in which to save the key (/home/ernesto/.ssh/id_rsa):  <Ruta donde se va a guardar la llave RSA>
Enter passphrase (empty for no passphrase): <colocar la frase a usar con la llave>
Enter same passphrase again:  <colocar la frase a usar con la llave>
Your identification has been saved in /home/ernesto/.ssh/id_rsa.
Your public key has been saved in /home/ernesto/.ssh/id_rsa.pub.
The key fingerprint is:
f2:09:cf:fe:53:1d:d3:d9:25:96:c9:11:68:5e:3e:bc ecrespo@cenditel.gob.ve
The key's randomart image is:
+--[ RSA 2048]----+
|             .o. |
|            o..+ |
|        o  o +* .|
|         C  ..+o+|
|        S +   o+o|
|         .   .Do |
|          . o .  |
|           +     |
|            .    |
+-----------------+



Agregar la llave a github:

En github seleccione Account settings, luego seleccione ssh public keys y luego Add another public key.

Despliegue el contenido del archivo  id_rsa.pub:
cat less id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPW48GvjuwVMHdlU6kRqniKDNwDrz12YPL1Sdi9AEn4uuRxs34+NH3UfarjweKFXMqkFRZaR9woV21GxvfF+eRnAfCWFI0Unzpxh1LaaLaDcBfNZx1PwkaR6zmaNKjwhAS2N4K3Rd+gCtPl57CoFQPNY7ZsZSJcn0iTn1jtQi3I3JpeQDTq0yf1nsjJFTSC/n23TROj2mvaHVsUB86ezAsiaJXJd8aZWJsyAEdBxn6dAxxxAtGRzQCq8oNqhWhqmbzf6C3zKARwCbbdo7UBM/StTkb3aYnBbTLhHGnY8vm5n/aP7/1GZNqTbWxfmH5hm/2mDfT8hPK2eCCklGsnF+qlxpPu7 ecrespo@cenditel.gob.ve

La siguiente imagen muestra la información desplegada en github:


Validar la comunicación con github.
Para validar la comunicación con la llave pública se ejecuta lo siguiente:
ssh -T git@github.com

Aparecerá la siguiente información:
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
Hi ecrespo! You've successfully authenticated, but GitHub does not provide shell access.


Configurar la información del usuario y correo en git:
git config --global user.name "Ernesto Crespo"

git config --global user.email "ecrespo@cenditel.gob.ve"

Configurar el token github.

Seleccione Account settings, luego Account Admin. Ahí aparecerá lo que se muestra en la siguiente figura:
Agregar al usuario github y el token:
git config --global github.user ecrespo
git config --global github.token cf0fe21f4ff7fb51b686bb712347043e

Ya se tiene github configurado con la llave RSA del equipo asociado al correo.


Para el caso de gitorius se selecciona el dashboard, luego se le da clip a  Manage SSH keys:


Le dan clip a Add ssh keys:

Agregar la llave en bitbucket.
Le dan clip al Account al ingresar a su cuenta en bitbucket.org: 
Se va al campo de ssh keys y se agrega la llave como lo muestra la figura:

En el siguiente artículo se explicará como usar los comandos para clonar, hacer commit  y actualizar los controles de versiones distribuidos de github, gitorius y bitbucket.