Archivo

Archivo para la categoría ‘Debian’

Kernel bug unmounting disks

Martes, 20 de septiembre de 2011 Sin comentarios

Actualización 20/11/2011

He estado varios días observando un extraño suceso en mis equipos, los cuales tienen la última versión estable de Debian instalada (Squeeze). Al conectar un disco duro externo con partición NTFS este se monta automáticamente de forma correcta y puedo trabajar con él perfectamente. El problema viene a la hora de desconectarlo. Estando en el escritorio, si pulso con el botón derecho sobre la unidad y selecciono la opción “Expulsar unidad de forma segura” el equipo se bloquea completamente sin responder a los eventos de teclado o ratón. Leer más…

GD Star Rating
loading...
Share
Categories: Debian, Hardware Tags: , , , ,

Python: /bin/sh: Syntax error: Bad fd number

Martes, 22 de junio de 2010 3 comentarios

Editado/Edited: 25/06/10

Estoy probando unos scripts en Python que me han pasado (y que han sido desarrollados sobre Debian) y he tenido problemas a la hora de ejecutarlos. Cuando intentaba ejecutar estos scripts en mi ordenador me lanzaban el siguiente mensaje de error, entre otros:

/bin/sh: Syntax error: Bad fd number

El problema se encuentra en las llamadas que se hacen en el script a os.system() para ejecutar algunos comandos de consola. Como ya he dicho, los scripts han sido desarrollados sobre una plataforma Debian, pero en mi distribución Ubuntu no han funcionado. Esto se debe a que en ubuntu por defecto los comandos se ejecutan por sh y no por bash.

La solución que he visto ya propuesta en varios sitios es eliminar el comando sh de su sitio y hacer un enlace simbólico desde el comando bash a sh. Es una forma un poco bestia de hacerlo … pero no he visto ninguna otra solución. Si alguien conoce una forma más elegante de hacer esto que lo comente por favor.

sudo mv /bin/sh /bin/sh.bak
sudo ln -s /bin/bash /bin/sh

Visto aquí.

Otra solución mejor

En vez de tener que hacer este enlace simbólico mediante el módulo subprocess podemos especificar que terminar queremos usar mediante la opción executable. A continuación os dejo un método que me he creado para hacer llamadas a programas por la terminal usando /bin/bash en vez de la terminal por defecto (/bin/sh en ubuntu)

def run_shell_program (cmd):
  try:
    retcode = subprocess.call(cmd, shell=True, executable="/bin/bash")
    if retcode != 0:
      print >> sys.stderr, "Error executing command: %s" % cmd,\
      "(return code: %s)" % retcode
  except OSError, e:
    print >>sys.stderr, "Execution failed: %s" % cmd, e

See this page.

A better solution

Instead of making the symbolic link explained in the above post we can use the subprocess module in python in order to specify the shell executable we want to use. The next method written in python is used to run shell command using /bin/bash instead of the default shell command (/bin/sh in Ubuntu)

def run_shell_program (cmd):
  try:
    retcode = subprocess.call(cmd, shell=True, executable="/bin/bash")
    if retcode != 0:
      print >> sys.stderr, "Error executing command: %s" % cmd,\
      "(return code: %s)" % retcode
  except OSError, e:
    print >>sys.stderr, "Execution failed: %s" % cmd, e
GD Star Rating
loading...
Share

Instalar Matlab r2008b en Debian

Sábado, 17 de abril de 2010 Sin comentarios

Ya he hablado en un par de ocasiones (aquí y aquí) de Octave, una alternativa libre muy válida a Matlab, pero que aún no es compatible 100% con el segundo. He estado validando piezas de código Matlab con Octave hasta hace poco sin problemas, pero recientemente me he visto en la obligación de instalar Matlab porque Octave no me estaba retornando los resultados esperados en algunos experimentos. En esta entrada explico el proceso de instalación de Matlab en Debian Lenny, ya que hay algunas peculiaridades que hay que solventar para instalar el programa.

Leer más…

GD Star Rating
loading...
Share

Error 18 en Grub: Selected cylinder exceeds …

Viernes, 2 de abril de 2010 1 comentario

Recientemente he vuelto a usar Debian y en esta ocasión me he encontrado con un pequeño incidente provocado por nuestro querido gestor de arranque del sistema GRUB. La situación es la siguiente. Al intentar arrancar Windows 7, grub me lanzaba el siguiente error: Leer más…

GD Star Rating
loading...
Share

Tip GNU/Linux: Cambiar permisos solo a archivos

Miércoles, 22 de julio de 2009 3 comentarios

terminal-icon

Un tip rápido. Si queréis cambiar rescursivamente los permisos de todos los archivos dentro de un directorio sin que se cambien también los permisos de los directorios subyacentes, podéis utilizar el siguiente comando:

find . -type f -print0 | xargs -0 chmod -x

Voy a explicarlo un poco. find nos permite encontrar archivos en base a las opciones que le pasemos. El punto indica que vamos a realizar la búsqueda sobre el directorio actual, con -type f le indicamos que solo queremos buscar ficheros de tipo “archivo”, para saltarnos los directorios. Y con -print0 hacemos que muestre por la salida estándar todas las coincidencias. Después utilizamos una pipeline para hacer con xargs que la salida del comando find sea tomada por el comando chmod. Como podéis apreciar estoy quitando el permiso de ejecución a todos los archivos dentro de una carpeta. Esto es muy útil cuando copias archivos de un pen drive a tu disco duro.

GD Star Rating
loading...
Share