Category Archives: Cómo

Repositorio GIT con deploy automático

GIT Logo
Bueno, volvamos a lo técnico en el blog.
En ciertas ocasiones es conveniente mantener los archivos generados en una carpeta diferente a la de nuestro repositorio GIT, el caso más común para este patrón es dentro de un servidor web donde www-data es propietario de la carpeta mientras que en el repositorio GIT los permisos son aplicados para un grupo o usuarios diferentes.

Sitioweb: /var/www/sitioweb
Repositorio: /opt/repositorios/sitioweb.git

Servidor

Comenzamos creando el repositorio tipo bare para que contenga sólo el árbol de actualizaciones y no cree un subdirectorio .git, después haremos ciertos ajustes para poder realizar actualizaciones sin tener que hacer merge hacia el canal principal.

mkdir -p /var/www/sitioweb
mkdir -p /opt/repositorios/sitioweb.git
cd !$
git init --bare
git config core.worktree /var/www/sitioweb/.
git config core.bare false
git config receive.denycurrentbranch ignore

Ahora añadiremos una instrucción al script post-receive

Archivo: hooks/post-receive
#!/bin/sh
git checkout -f

Obviamente tenemos que darle permisos de ejecución

chmod +x hooks/post-receive

Local

En el equipo local sólo es necesario añadir el repositorio recién creado como destino y podemos añadir los archivos inmediatamente

git remote add webserv ssh://usuario@servidor/opt/repositorios/sitioweb.git
git push webserv master

Listo

Cómo: Gnome Shell Extensions en Debian


Mi escritorio

Lamentablemente no he tenido el tiempo suficiente para hablar de Gnome Shell como quisiera o debería, lo adopté desde los primeros días en que se encontraba en experimental y tanto mi laptop del trabajo como la personal corren este entorno de escritorio sin ningún problema.

Así que me aproximaré solamente por aquellas partes que considere un tanto relevantes.

Continue reading

Distorsión en audio mp3 con flash

Hace un mes aproximadamente noté una distorsión terrible al ejecutar archivos mp3 con un cliente flash en la web, obviamente que lo asocié con el plugin para el navegador y probé forzando una versión anterior a la inestable, como no funcionó probé con las librerías de audio e incluso con pulse mismo. Lamentablemente no había podido encontrar el origen del problema hasta que hace unos días volví a buscar en Google harto de no poder sintonizar Grooveshark al estar compilando en Gentoo >.<

El problema se encuentra en una actualización de glibc, o libc6 en Debian, y sólo para 64 bits, que se origina en un cambio en la implementación de memcpy y que expone un bug en el plugin entregado por Adobe. La solución vino de las manos del mismo Torvalds y consiste en crear una librería que devuelva el funcionamiento original de memcpy.

Continue reading

Cómo: Remover paquetes huérfanos (sin usar) en Debian y derivados

Debido al árbol de dependencias de paquetes es muy común encontrar que al desinstalar un paquete sigamos manteniendo sus librerías ocupando espacio en nuestra instalación.

Una forma muy simple de deshacernos de ellos es mediante deborphan:
aptitude install deborphan

Ahora podemos listar dichos paquetes mediante el comando deborphan, una vez que estemos seguros de que no se quiere sobrepasar procedemos a removerlos:
aptitude purge $(deborphan)

Cómo: Recuperar la contraseña de root en una Xen Vm

Creaste una máquina virtual en Xen y no recuerdas qué tontería le pusiste a la contraseña de root?

  • Destruye la máquina virtual

    xm destroy mi-xen-vm
  • Monta la partición del guest

    mkdir -p /mnt/xen-media 

    mount /dev/VolGroup0/mi-xen-vm-disk /mnt/xen-media

  • Cambia la raíz para la ejecución de los comandos
    chroot /mnt/xen-media
  • Actualiza la contraseña
    passwd root
    exit
  • Desmonta
    umount /mnt/xen-media
  • Inicializa la máquina virtual nuevamente
    xm create mi-xen-vm.cfg

Gritos evitados 😉

Fuente

Cómo: KDE SC 4.6 en Debian

KDE SC 4.6

Sufres de versionitis y eres usuario de KDE? Para tu fortuna ayer fue subida la nueva versión 4.6 SC para la rama inestable de la distribución a los repositorios extraoficiales KDE-QT.

Para poder instalarlo sólo es necesario agregar los repositorios correspondientes a /etc/apt/sources.list

deb http://qt-kde.debian.net/debian experimental-snapshots main

deb-src http://qt-kde.debian.net/debian experimental-snapshots main
Y además, como se mencionó, tener activados los repositorios para la rama inestable
Atención: Esto no es un backport, así que si quieres instalarlo en stable estás completamente solo.

También es necesario instalar la firma de comprobación de paquetes para este repositorio

aptitude update
aptitude install pkg-kde-archive-keyring

Ahora, si ya tienes instalado KDE 4.4 (versión actual de los repositorios oficiales de Debian) sólo tienes que actualizar los paquetes proporcionados por KDE-QT

apt-get -t experimental-snapshots dist-upgrade

Si aún no tienes KDE puedes hacerlo con el metapaquete correspondiente

apt-get -t experimental-snapshots install kde-standard

Para esta versión se debe usar plasma-widget-networkmanagement en lugar de network-manager-kde debido a la incompatibilidad de versiones, así que procedemos a instalarlo

aptitude install plasma-widget-networkmanagement

Con eso tenemos el nuevo KDE, que por cierto me ha dejado un buen sabor de boca.

Emacs Snapshot en Debian

Logo de Emacs

Para aquellos a los que Emacs se les está convirtiendo en su Sistema Operativo y GNU/Linux en su administrador de dispositivos, como su servilleta, les recomiendo instalar la versión directamente compilada del CVS mantenida por Julien Danjou para obtener todas las características más recientes sin tener que esperar a que los repositorios de Debian proporcionen dichas actualizaciones, especialmente por el hecho de que acabamos de salir del congelamiento y ciertas cosas podrán tomar bastante tiempo en aparecer en los repositorios unstable.

Esto tampoco significa que la versión snapshot esté llena de bugs, EMACS tiene a su favor ser uno de los editores más antiguos que aún se encuentra en desarrollo, yo he estado corriendo snapshot por una semana y funciona excelente.

  1. Añadan los repositorios en su sources.list
    deb http://emacs.naquadah.org/ unstable/
    deb-src http://emacs.naquadah.org/ unstable/
  2. Importen la llave GPG para el repositorio
    wget -q -O - http://emacs.naquadah.org/key.gpg | sudo apt-key add -
  3. Listo para instalar, ejecutamos
    # aptitude update && aptitude install emacs-snapshot emacs-snapshot-nox

    Donde emacs-snapshot-nox es la versión que se ejecuta sin servidor X, y que por lo tanto depende de ustedes instalarlo o no.

  4. Ahora para que al ejecutar emacs estemos realmente corriendo la versión snapshot, actualizaremos el proveedor del paquete
    #update-alternatives --config emacs

    Dependiendo de los paquetes instalados más o menos verán lo siguiente:

    Existen 2 opcioens para la alternativa emacs (que provee /usr/bin/emacs).
    
      Selección   Ruta                     Prioridad  Estado
    ------------------------------------------------------------
    * 0            /usr/bin/emacs23-x        26        modo automático
      1            /usr/bin/emacs-snapshot   23        modo manual
      2            /usr/bin/emacs23-x        26        modo manual
    
    Pulse  para mantener el valor por omisión [*] o pulse un número de selección: 1
    update-alternatives: utilizando /usr/bin/emacs-snapshot para proveer /usr/bin/emacs (emacs) en modo manual.

(Yo también vi ese bug)

Cambia el tamaño de la terminal con un script en Python

Hace un rato publicamos un pequeño tutorial para cambiar el tamaño de la ventana de la terminal de Gnome. Pues debido a que siempre ando probando distintas distribuciones en una partición de 8 Gb especialmente para eso, y también a que soy demasiado flojo, decidí hacer un pequeño script en Python para evitarme estar editando el archivo con cada instalación:


#!/usr/bin/env python
#Copyleft Raymundo Vásquez Ruiz
import re, fileinput

def change_settings(col, lin):
	line_pattern = ':co#(d*):it#(d*):li#(d*).*'
	try:
		for line in fileinput.FileInput("/usr/share/vte/termcap/xterm", inplace=1):
			match = re.search(line_pattern,line)
			if match:
				match_groups = match.groups()
				if len(match_groups) == 3:
					columns = match_groups[0]
					it = match_groups[1]
					lines = match_groups[2]
					line = line.replace(line, "t:co#%s:it#%s:li#%s:\n" % (col, it, lin))
			print line,
	except OSError, e:
		if e.errno == 13 :
			print "You dont have permission to do this!"
		else:
			print e.message

if __name__ == "__main__":
	from optparse import OptionParser
	parser = OptionParser()
	parser.add_option("-c", dest="columns", default=80)
	parser.add_option("-l", dest="lines", default=24)
	(options, args) = parser.parse_args()
	change_settings(options.columns, options.lines)

Copien el archivo y asignen un nombre, el que deseen, sólo asegúrense de que tiene la extensión .py.

Una vez guardado procedemos a ejecutarlo de la siguiente manera:

sudo python termset.py -c 130 -l 80

Donde
termset.py debe ser sustituído por el nombre que le asignaron.

-c indica el número de columnas.

-l indica el número de líneas

Agradecería las sugerencias, aún no me las sé todas en Python =)

CÓMO: WI-FI al Celular en modem Thomson de TELMEX

Ayer me topé con un problema algo particular,  al querer conectarme a internet vía wi-fi desde mi celular a un modem de telmex me lanzaba un error al tratar de accesar a internet , “sin respuesta de Gateway”. La asociación al punto de acceso la realizaba correctamente, pero al solicitar una página es que obtenía dicho error. El modem en cuestión es un Thomson ST585, es de los que traen configurado al usuario administrador y sin pass.

Después de preguntarle al señor de las oo’s dí con estos pasos que solucionaron el problema:

1.- Por medio del servicio telnet nos conectamos a la dirección 192.168.1.254.  > telnet 192.168.1.254  [Enter]

2.- Nos solicitará un usuario, este es Administrator.  > usuario:Administrator[Enter]

3.- Nos solicita un password, en este caso el modem no trae pass. >password: [Enter]

4.- Después aparecerá  el logo del modem en ASCII.

5.-  Una vez que nos aparezca el prompt del administrador :

_{Administrator}=>

debemos ingresar los  siguientes comandos:

_{Administrator}=> wireless qos config mode=disabled [ENTER]

_{Administrator}=> saveall [ENTER]

6.- Ya con esto no deberíamos tener problemas al navegar desde nuestro celular vía wi-fi

[Fuente: http://www.mobilecloseup.com/foro/showthread.php?s=6bb1704bcc792de92d716e82c219ad1e&t=287997&page=2 ]

Monitor dual en mi Debian =D

Dual monitor

Ahora sí ya puedo twittear y postear

Por un rato estuve pensando en comprar un monitor de 21″ para extender un poco la funcionalidad de mi equipo, afortunadamente me regalaron uno de 17″ que funciona a todas luces con lo que requiero.

He de decir que la configuración no es tan fácil de lograr y hay que recurrir a programas externos, siendo que uno como usuario preferiría que el menú Configuración de Pantallas de gnome se encargara de todo. Pero bueno, el truco es simple.

Continue reading