TextMate: environment.plist en Leopard

7
Mayo
2008

He perdido 1 hora y pico de mi vida con este problema. Espero que alguién llegue hasta aquí antes de perder tanto tiempo.

En Mac OS X las variables de entorno de un proceso se heredan del proceso padre (como en todos los Unix), pero a diferencia de Linux (o similares), las aplicaciones que se ejecutan desde el interfaz gráfico no son iniciadas por un shell, sino por el WindowsServer, por lo que las variables de entorno no se leen del archivo .bash_profile (o el archivo correspodiente), sino de un archivo XML que está en ~/.MacOSX/environment.plist.

El problema es que en Leopard, al parecer, este comportamiento no se mantiene si las aplicaciones se lanzan desde Spotllight (desconozco si sucedia también en Tiger, ya que casi no utilizaba el Spotlight para lanzar aplicaciones), aunque sigue funcionando si se lanzan desde el Finder. Lo extraño es que en el arbol de procesos del Monitor de Actividad aparecen bajo el mismo padre (un proceso launchd hijo del proceso launchd inicial).

En TextMate, para más inri, solo se carga el .bash_profile (o similar), para comandos mandatos sin she-bang (el #! al principio de un script para indicarle al shell el interprete a utilizar), por lo que la mayoría de comandos mandatos (que utilizan interpretes como Ruby o como Python) no obtienen el PATH que uno tiene configurado en su .bash_profile. Para ello en su manual recomiendan modificar el PATH en el archivo environment.plist, cosa que en Leopard (al menos), iniciando el TextMate con Spotlight, no sirve para nada.

Una solución es iniciar TextMate desde el Finder o desde el Dock, o, mucho más sencillo y a prueba de olvidos (creo), definir una variable de entorno PATH en las Preferencias de TextMate (en menú TextMate → Preferences… → Advanced → Shell Variables). Curiosamente esta solución no está mencionada en las páginas de ayuda de TextMate, aunque desconozco que efectos provocará en los comandos mandatos sin she-bang que carguen el .bash_profile.


2 comentarios a “TextMate: environment.plist en Leopard”

  1. Gravatar deigote dice:

    ¿Comando? ¿Qué es eso de comando? (gracias por el enlace a la rae2, por cierto ^_^)

  2. Gravatar Daniel dice:

    ¿He puesto “comandos”? Uppps. (La razón es, sin pretender ser una excusa, que en el menú de TextMate aparecen “Commands”, y que si no lleva un “… line” detrás, mi cerebro no traduce aún a “mandatos” u “ordenes”). Gracias por la correción.

Deja un comentario

Puedes enterarte de las respuestas a tus comentarios de esta entrada mediante myComments.

XHTML: Puedes utilizar las siguientes etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tu servidor sin límites: 20GB de espacio, 1TB de transferencia, 1 dominio gratuito. Por 1.5€ al mes utilizando el código "RUIDOBLANCO" en DreamHost. Más información.