Archive for June, 2007

Nota mental:

Wednesday, June 27th, 2007
Nunca uses PL/Java

“Las universidades privadas son nada más que enseñaderos”

Monday, June 25th, 2007
-Aparte de ser mi amigo, él está pensando en que los cargos más altos de la política deben ser llevados adelante por gente que no provenga ni de la política profesional ni de abogacía, sino que tenga una formación científica. Un científico tiene un pensamiento crítico y es capaz de admitir errores y de ver que las cosas deben ser explicadas. Por ejemplo, no creo que el crecimiento económico produzca un derrame que solucione los problemas de la sociedad.

Cuando busqué enseñaderos en La Nación, aparecieron estos dos textos:

Frase célebre del día

Saturday, June 23rd, 2007
siempre que alguien que te diga “eh si es un bug re boludo y no tenes q conocer todo el código” sali corriendo y tirate por la ventana. –piluex

Estoy desesperado

Thursday, June 21st, 2007

¡Hola!

¿Encontraste algún tutorial de Linux muy copado pero uno de los comandos no te funciona?

¿Estás desesperado por sentirte como un simio en el mundo de GNU/Linux?

¿Necesitás encontrar al instante información sin ninguna clase de burocracia?

¿Necesitás algun paquete en especial pero no sabés cual de todos instalar?

¡No desesperes!

¿Estás usando Ubuntu? Entrá aca:

http://packages.ubuntu.com/

¿Estás usando Debian? Entrá aca:

http://packages.debian.org/

Allí encontrarás un buscador de todos los paquetes de Ubuntu o Debian, respectivamente.

Web. Rápido. Intuitivo. Simple.

MySQL vs. PostgreSQL

Tuesday, June 19th, 2007

postgresql-vs-mysql

Instalando Pidgin en Debian Etch

Monday, June 18th, 2007

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-free

deb http://mirrors.kernel.org/debian testing main contrib non-free
deb-src http://mirrors.kernel.org/debian testing main contrib non-free

deb 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

pidgin-corrector

Instalación completa

Sunday, June 17th, 2007

¡Hola! Hace un par de horas terminé de instalar Debian “Etch” GNU/Linux. Resulta que lo tenía en otro disco dentro de una partición de 11 GB, y siempre había poco espacio libre. Ahora tengo un disco mas grande :)

Experiencia de la instalación:

Reinicié, apreté enter en el momento que el disco de instalación arrancó, y aprete algunas teclas más para elegir idioma, teclado y cual de mis 3 placas de red usar. Lo único realmente loco que hice durante la instalación fué configurar a mano las particiones porque las quería de una forma muy particular (100MB para /boot, 4GB para swap y 50GB para el resto). Por último me fui a mirar dos películas.

Me llamó mucho la atención que, a diferencia de las versiones anteriores de Debian, no hubo que reiniciar para terminar de instalar.

Después de reiniciar arrancó directamente el gdm a 1600×1200 24bits (alabado sea el SyncMaster 997MB) listo para usar, y me propuse a instalar KDE con el synaptic. Buscar: kde, doble click, aplicar, listo.

Con respecto a los drivers de vídeo: otra cosa bastante “loca” (ohhh, viejas épocas de Slackware…). Luego de instalar los drivers non-free de nVidia tuve que configurar el X.Org para que me use los nuevos drivers (como root):

# apt-get install nvidia-kernel-2.6-k7 nvidia-glx-dev nvidia-settings mesa-utils
# dpkg-reconfigure xserver-xorg
# grep -q ^nvidia /etc/modules || echo nvidia >> /etc/modules
# modprobe nvidia
# invoke-rc.d gdm restart

Las instrucciones las saqué del wiki de Debian y en mi caso en el último comando usé kdm en vez de gdm porque lo elegí como manager por defecto. Ni siquiera hubo que reiniciar para poder tener 100% aceleración 3D (ni mucho menos compilar nada):

alejo@Atucha64:~$ glxinfo | grep rendering
direct rendering: Yes
alejo@Atucha64:~$ glxgears -printfps
36845 frames in 5.0 seconds = 7368.958 FPS
36240 frames in 5.0 seconds = 7247.989 FPS
36223 frames in 5.0 seconds = 7244.494 FPS
36878 frames in 5.0 seconds = 7375.490 FPS

glxgears

Capaz sea engorroso hacer todo eso, pero solo hay que hacerlo una vez y luego dejar al apt-get que se encargue de las actualizaciones.

Con respecto al sonido salió funcionando automáticamente sin tener que tocar nada. ¡No tuve que bajarme los drivers de la página de nForce! Lo primero que hice fue ponerme a escuchar una radio por internet.

Operating System: Reconfiguration

Saturday, June 16th, 2007

instalar-debian

win2003update

Problemas de matemática

Saturday, June 16th, 2007

la-equis

¿Qué es esto?

Thursday, June 14th, 2007

classd