Instalando Pidgin en Debian Etch
Actualización 15 de Julio, 2007: Actualicé el texto con instrucciones sobre cómo realizar el procedimiento desde dentro de una jailroot con chroot. Cualquier duda o inconveniente, ¡no duden en dejar un comentario!
Actualización 12 de Diciembre, 2007: Acabo de enterarme que en Backports.org existe un paquete de Pidgin. !Felicitaciones al equipo de Backports por incluirlo!. Para más información visitar Backports.org.
English readers: Now there’s an non-official-sort-of-official Pidgin Debian Backport at Backports.org! Check it out at PDO.
Debido a problemas legales con AOL, Pidgin es el nuevo nombre de Gaim. Y yo quería usarlo en mi nuevo y brillante Debian Etch, pero el comando:
$ apt-get -t testing install pidgin
Solo trae problemas. Siendo así, me decidí a compilar mi propio backport del Pidgin y generar un hermoso paquete .deb para poder instalarlo y usarlo. Pero no siempre es tan fácil o evidente como a uno le gustaría, así que paso a contarles cómo hacer.
La idea es muy simple: hay que bajar los paquetes fuentes de Pidgin desde los repositorios testing de Debian, instalar las dependencias de compilación, compilar, generar los .deb y por último instalar los paquetes generados.
Les recomiendo que, si quieren compilar el backport del pidgin, lo hagan en un entorno jailroot. De esta forma si instalan algo que no deberian instalar, o borran algo que no deberian borrar, el daño va a ser mínimo (tiempo perdido) y no van a tener que preocuparse por tener que reinstalar todo. Para esto, hace falta el paquete debootstrap:
$ apt-get -t stable install debootstrap
Luego, como root, crear un directorio donde instalar la jailroot:
# su
password:
$ cd /var
$ mkdir jailroots
$ chmod 700 jailroots
$ cd jailroots
$ mkdir jail1
$ debootstrap –arch i386 etch jail1 file:///media/cdrom
El comando debootstrap crea dentro del directorio jail1 una instalación minima de un sistema Debian. En este caso, un Etch. Cuando digo minimo quiero decir que solamente se instalan los paquetes absolutamente esenciales. Ni siquiera se instala un Kernel. Con el parámetro “–arch” estoy indicando la aquitectura a usar (i386 en mi caso). Si están usando alguna otra, cámbienla apropiadamente (amd64, por ejemplo?).
También hace falta indicar desde donde instalar los paquetes básicos. En mi caso lo estoy haciendo desde el CDROM de instalación de Debian Etch. Les recomiendo tener siempre uno a mano.
Habiendo creado la jailroot con debootstrap, usando chroot se puede trabajar ahi dentro sin problemas:
$ chroot /var/jailroots/jail1 /bin/su -
Eso les inicia sesión en la jailroot con el usuario root. Para salir, usan Cotrol-D o el clásico exit. Por último, van a tener que crear un nuevo usuario dentro de la jailroot:
$ chroot /var/jailroots/jail1 /bin/su -
$ adduser builder
pasword: …
Y para logearse dentro de la jail con el nuevo usuario, hay que hacer desde fuera de la jail:
chroot /var/jailroots/jail1 /bin/su - builder
Donde builder es el nombre del usuario que crearon.
Dado que la estructura que debootstrap les crea es muy reducida, capaz tengan que instalar muchos paquetes que ya tenian instalados en su sistema real. Siempre es bueno tener a mano un par de ventanas abiertas con p.d.o abierto :)
En adelante, se asume que todas las instrucciones se ejecutan dentro de la jailroot creada.
Antes de empezar hay que tener configurados los repositorios stable, testing y unstable dentro del archivo /etc/apt/sources.list. El mío lo tengo así:
deb http://mirrors.kernel.org/debian stable main contrib non-free
deb-src http://mirrors.kernel.org/debian stable main contrib non-freedeb http://mirrors.kernel.org/debian testing main contrib non-free
deb-src http://mirrors.kernel.org/debian testing main contrib non-freedeb http://mirrors.kernel.org/debian unstable main contrib non-free
deb-src http://mirrors.kernel.org/debian unstable main contrib non-free
Si tienen a mano un DVD con Debian Etch, pueden indicarlo agregando:
deb file:///media/cdrom stable main contrib
Si están desde dentro de la jail no van a poder montar la lectora ya que /dev está vacío. Tienen que montarlo desde afuera de la jail.
También hace falta indicarle al apt-get que ignore los repositorios testing y unstable a menos que se lo digamos explícitamente porque, si no lo hacemos, vamos a tener un pequeño gran problema en el proximo upgrade ya que va a intentar actualizar los paquetes hacia la rama unstable, y eso es solo para aquellos valientes e intrépidos hackers de Debian. En el archivo /etc/apt/apt.conf tengo lo siguiente:
APT
{
Cache-Limit “41943040″;
Default-Release “stable”;
};
La primer opción le indica el tamaño de cache a usar. El valor por defecto no alcanza ya que el apt-get necesita guardar información de tres repositorios: stable, testing y unstable. La segunda opción le indica que, por defecto, todas las operaciones que hagamos son sobre los repositorios de la rama stable. De esta forma vamos a poder conservar nuestro Etch en buen estado sin generar conflictos. Luego, actualizamos la información de los paquetes de los repositorios con el siguiente comando:
# apt-get update
El siguiente paso es crear un directorio temporal dentro de nuestro home, y allí descargarnos los paquetes fuente de Pidgin. En mi caso hice:
$ cd ~
$ mkdir pidgin-tmp
$ cd pidgin-tmp/
$ apt-get -t testing source pidgin
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias… Hecho
Necesito descargar 10,9MB de archivos fuente.
Des:1 http://mirrors.kernel.org testing/main pidgin 2.0.1-1 (dsc) [1234B]
Des:2 http://mirrors.kernel.org testing/main pidgin 2.0.1-1 (tar) [10,8MB]
Des:3 http://mirrors.kernel.org testing/main pidgin 2.0.1-1 (diff) [37,4kB]
Descargados 10,9MB en 3m28s (52,2kB/s)
dpkg-source: extracting pidgin in pidgin-2.0.1
dpkg-source: unpacking pidgin_2.0.1.orig.tar.gz
dpkg-source: applying ./pidgin_2.0.1-1.diff.gz
La opción source del comando apt-get indica que queremos descargar en el directorio actual los fuentes de ese paquete (casi) listos para compilar, y la opcion -t testing le indica cuál rama del repositorio usar. Hay que tener mucho cuidado cuando se usa este argumento ya que tener un sistema con paquetes de ramas mezcladas ¡es para problemas!
El mayor problema son los conflictos de dependencias que pueden aparecer, ya que algunos paquetes de testing/unstable no están totalmente probados con el apt-get y puede darse el caso que instalando un paquete se nos borre otro más importante (¡por ejemplo el init o el kernel mismo!). En nuestro caso no va a ser así y todo lo que instalemos va a ser de la rama stable o “Etch”.
Paso siguiente, hay que instalar las dependencias de compilación del paquete para poder compilarlo apropiadamente. El comando:
$ apt-get -t testing build-dep pidgin
… ¡no lo ejecuten nunca! (never, ever execute that single command). Hay que instalar las dependencias manualmente ya que de otra forma, tendremos un sistema con paquetes de varias ramas. Por suerte lo más complicado es copiar y pegar los nombres de los paquetes, ya que por lo general son más de los que uno acostubra usar. Ejecutando el comando:
$ apt-cache showsrc pidgin | grep Build-Depends:
Obtendremos una larga lista de los nombres de los paquetes que necesitaremos instalar antes de poder compilar Pidgin. Junto a cada paquete y entre paréntesis aparece la versión mínima necesaria para poder compilarlo. En nuestro caso ignoraremos completamente la versión ya que Todo Debería Funcionar Sin Problemas ®, y procederemos a instalar los paquetes.
Al día de la fecha (18 Jun, 2007) el comando para instalarlos es:
$ apt-get -t stable install cdbs debhelper libgtk2.0-dev libxss-dev libmeanwhile-dev libgadu-dev libnss3-dev tcl8.4-dev tk8.4-dev libgstreamer0.10-dev libgtkspell-dev libltdl3-dev libperl-dev libstartup-notification0-dev libzephyr-dev libxml2-dev libebook1.2-dev libedata-book1.2-dev libcamel1.2-dev libdbus-glib-1-dev dbus python libavahi-compat-howl-dev libxml-parser-perl libncursesw5-dev libsasl2-dev doxygen
Como pueden ver, todos los paquetes que instalaremos son de la rama stable. Solo para estar seguros, instalaremos los siguientes paquetes adicionales:
$ apt-get -t stable install autotools-dev debhelper devscripts dh-make build-essential fakeroot debian-keyring
Los cuales son paquetes clásicos para compilar y generar otros paquetes.
Si por alguna de esas casualidades de la vida algun paquete que necesitan instalar no se encuentra dentro de stable, van a tener que (recursivamente) realizar todo este mismo procedimiento pero, primero, para ese otro paquete. Como siempre, se aconseja primero leer toda esta guía y luego de entender (mas o menos) qué hace, realizarla.
Ahora si, ¡llegó el momento de compilar! Dentro del directorio pidgin-tmp del $HOME deberíamos tener uno llamado pidgin-2.0.1 o similar, en donde estarán los fuentes del programa. Lo único que deberemos hacer es ejecutar el siguiente comando siendo un usuario normal (no root):
$ cd pidgin-2.0.1
$ fakeroot debian/rules binary
… y esperar. Luego de unos minutos terminará de compilar, y en el directorio padre tendremos cuatro archivos .deb:
$ cd …
$ ls *deb
pidgin_2.0.1-1_i386.deb
pidgin-dbg_2.0.1-1_i386.deb
pidgin-data_2.0.1-1_all.deb
pidgin-dev_2.0.1-1_all.deb
El paquete -dbg se usa para instalar los símbolos de depuración para el gdb, y el paquete -dev para poder compilar librerías adicionales para usar en el programa. Por último, como root (¡ahora si, egocéntricos administradores viciosos del root!) y fuera de la jail, instalaremos el pidgin-2.0.1 de la siguiente forma:
# dpkg -i pidgin-data_2.0.1-1_all.deb pidgin_2.0.1-1_i386.deb
Y para desinstalar Pidgin hacemos:
# dpkg -r pidgin

July 15th, 2007 at 11:16
Acabo de actualizarlo, indicando como hacer todo esto desde dentro de una jailroot.
¡No se inhiban y déjen algún comentario!
August 6th, 2007 at 15:45
[...] el Blog de Alejo se explica una manera, algo complicada para mi gusto, de instalar Pidgin en Etch. La complicación [...]
August 27th, 2007 at 15:49
Pude hacerlo haciendo paso a paso lo que dices en el post. Gracias!! :)
August 27th, 2007 at 21:25
¡Me alegra saberlo! El texto tuvo tantos fixes y parches y vueltas y un monton de cosas que hay que hacer antes de poder compilar, que ya estaba dudando de la exactitud del texto.
¿Tuviste algun problema o algo que no esta totalmente acertado?
Saludos!!
September 28th, 2007 at 13:26
Yo probé con http://ubuntupolux.blogspot.com/2007/05/compilar-pidgin-200beta7-en-feisty-704.html en un Ubuntu Feisty para AMD64 y funcionó. Lo único que utilicé los fuentes de la version 2.2.0 pero lo demás lo seguí. Es posible que tengan que reiniciar sesión una vez que termina el make install porque al menos a mi no me apareció en el menú de Internet del GNOME hasta que hice eso.
Sé que esta entrada es para Debian pero como Ubuntu es basado en Debian tal vez sirva :P
April 19th, 2008 at 11:24
Una pregunta, Instale el pidgin desde los backports (apt-get -t etch-backports install pidgin) y se instalo todo correctamente pero el corrector ortografico no funciona :(
April 19th, 2008 at 11:26
De hecho, ahora que me doy cuenta, no funciona el corrector ortográfico de mi debian :( …. Gracias de antemano por cualquier respuesta que me des