Archivo

Archivo para la categoría ‘Ubuntu’

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

Martes, 22 de junio de 2010 piponazo 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/Bookmark

Redimensión de ventanas lenta con driver propietario de ATI

Viernes, 4 de junio de 2010 piponazo 1 comentario

Desde que me hice con mi última tarjeta gráfica ATI RADERON HD 5770 he sufrido problemas de rendimiento en diferentes distribuciones GNU/Linux a la hora de habilitar los efectos de escritorio (Compiz). En su día me estuve informando de cual era el problema que había, ya que con mi anterior tarjeta Nvidia de menores características iba todo super fluido. Si no recuerdo mal todo se debe a un problema que hay en el código del servidor gráfico X. Para que una parte del código sea compatible con las tarjetas gráficas Intel se tuvo que habilitar una característica que hizo que el redimensionamiento de ventanas con las tarjetas ATI fuese más lento. Siento no dar más detalles acerca de este hecho en concreto, pero no tengo tiempo y solo quería comentar la solución que he encontrado para solventar el problema en Ubuntu 10.04. La solución es bien sencilla, basta con agregar el repositorio que encontraréis en esta dirección, actualizar los repositorios mediante aptitude o apt-get y cuando actualicéis el sistema y reiniciéis el equipo todo debería funcionar sobre ruedas :D.

Since I bought mi last graphic card ATI RADEON HD5770 I’ve suffered performance problems in different GNU/Linux distros after enabling the desktop effects (Compiz). In its day I was searching information about the problem because of with my previous Nvidia graphics card all run like a charm. If I remember correctly this problem is caused by a problem in the X graphic server code. In order to make one part of the code compatible with Intel graphic cards one feature was enabled and this fact made slower the performance in ATI graphic cards. I’m sorry for not giving more details about this particular fact, but I have no time and I only want to tell you the solution found to solve the problem in Ubuntu 4.10. The solution is very easy, you only have to add the repository you can found in this page, update the repositories with aptitute or apt-get and upgrade the system. When you reboot the system all will run smoothly :D.

GD Star Rating
loading...
  • Share/Bookmark

Octave: Instalando paquetes

Viernes, 19 de febrero de 2010 piponazo 4 comentarios

Octave esun lenguaje de alto nivel principalmente orientado a computación numérica. Junto a Scilab, plantan cara a la conocida suite Matlab, pero eso si de forma gratuita. No obstante Octave es parte del proyecto GNU y por lo tanto con licencia GPL, algo a lo que Scilab no se acoge y por lo tanto me he decantado por empezar a usar el primero. He de decir que es compatible con la mayoría de la funcionalidad que existe en Matlab, pudiendo trabajar con los mismos ficheros de funciones que desarrollan investigadores de todo el mundo y con los mismos ficheros de datos que Matlab almacena.

Leer más…

GD Star Rating
loading...
  • Share/Bookmark

Instalación de google gears en Ubuntu Karmic 64 bits

Sábado, 21 de noviembre de 2009 piponazo Sin comentarios

googlegears-logo

Vaya! Estos días Google está en boca de todos. En mi caso solo quería hablar de como instalar Google gears en Ubuntu 9.10 de 64 bits, ya que es tan fácil como teclear esto por consola:

sudo aptitude install gears

O hacer click en este enlace. Sin embargo, gears parece que no funciona aún en chromium que es el navegador que últimamente vengo utilizando más a menudo. Por lo que he leído en varias webs parece ser que los desarrolladores de chrome no quieren perder el tiempo en adaptar gears a chromium ya que las funcionalidades que ofrece gears las permiten implementar en el propio navegador a medida que pase el tiempo. Por lo que de momento me tendré que conformas con usar firefox cuando requiera utilizar alguna de las bondades de Gears, como el modo de trabajo offline de Google Docs.

GD Star Rating
loading...
  • Share/Bookmark

Gvim: `static_gravity_supported’ failed

Sábado, 7 de noviembre de 2009 piponazo 2 comentarios

vim-editor_logo

ayyyyy …. Ubuntito Ubuntito donde vas tu tan rebonito ? xD. Parece que con las prisas por sacar sus prefijadas versiones semestrales los desarrolladores de Ubuntu se dejan algunas cosas sin pulir del todo. En la entrada anterior os comentaba el problema que tuve con los dispositivos firewire, y ahora os daré solución o otro “problemilla” que hay en la versión 9.10 de Ubuntu con mi querido editor de textos gvim.

El problema en cuestión es que cada vez que abría el editor desde consola me aparecían varios mensajes como el siguiente:

** (gvim:22969): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed

Para solucionar este problema tan solo tenemos que añadir el siguiente repositorio. Podemos hacerlo fácilmente con el nuevo sistema que incorpora la nueva versión de ubuntu:

 

sudo add-apt-repository ppa:jk-ozlabs/vim
sudo aptitude update && sudo aptitude safe-upgrade

En dicho repositorio se encuentra una versión de gvim parcheada para solventar este problema, por lo que actualizando el sistema de paquetes nos olvidaremos de estos molestos mensajes.

Fuentes:

GD Star Rating
loading...
  • Share/Bookmark