Variables de entorno en Windows


Si eres programador y sobre todo fanático de las herramientas que se instalan y ya funcionan, te habrá pasado alguna vez que sin razón alguna, uno de esos programas deja de funcionar como debe, sin que haya ocurrido problema alguno. Muy probablemente, lo que ha pasado es que se hayan malogrado tus variables de entorno, en especial la variable PATH.

Desde tiempos de DOS, las variables de entorno fueron un tema crítico. Configurar adecuadamente tu autoexec.bat y tu config.sys era básico para todo usuario que empezaba a usar mouse o que tenia la suerte de tener módulos de memoria adicional, querias crear discos virtuales o simplemente querias jugar Accolade o Digger en colores en tu super modern monitor CGA.

Para la gran mayoria de usuarios finales, estos conceptos simplemente son innecesarios porque la evolución de Windows es manejar todo en la parte gráfica y de preferencia en forma automática. Para los programadores la cosa es diferente porque simplemente no todo lo que usamos es visual.

Para tener en cuenta:

  • Las variables de entorno no tienen un máximo de longitud por si mismas, pero si todo el bloque de entorno. Además, ya que no hay ni un autoexec.bat (windows antiguo) o init_profile (Linux) tienes que ir a esta pantalla para organizar tus variables de entorno

environment

  • En este artículo se explica de forma práctica como es eso del límite en las variables de entorno, pero lo más importante es que nos dice que ya que si estamos usando esa pantallita que graba todo en el registro, hay un límite de longitud de 2048 caracteres. ¿Podría ser mas largo? si, teóricamente podríamos llegar hasta 32000 caracteres pero por usar el registro y la pantalla esa, no hay mas.
  • Las variables de entorno pueden llenarse y nadie te va a avisar. Por lo general los nuevos valores se agregan al final, pero he visto que algunos programas agregan valores al inicio. Consecuencia: rutas borradas de la variable
  • PATH es una variable de entorno muy importante, incluso programas “visuales” la siguen usando. Ademas, hay otras como JAVA_HOME,ADT_HOME y otros que afectan increiblemente el funcionamiento de algunos programas y si has llegado hasta aquí es porque eres programador y sabes de lo que hablo.

Con todo esto en la cabeza, pues será muy lógico seguir estos consejos:

  • Guarda un backup del contenido de tus variables de entorno. Si te toca jugar con Java, Perl, Ruby, Python y esas cosas pues te toca cuidar tus variables de entorno como oro.
  • Instala tus programas mas importantes en carpetas con nombres cortos. Hasta ahora odio al cliente de SQL server porque instala sus cosas en rutas larguisimas que van directo al PATH, mal.
  • Si tienes una ruta larga que se repite varias veces, crea una variable de entorno. Por ejemplo:
    • Tiene que agregar las rutas ‘c:\ruta muy larga\sub carpeta mas larga aun\bin’ y ‘c:\ruta muy larga\sub carpeta mas larga aun\tools’.
    • Crea la variable LARGO con valor ‘c:\ruta muy larga\sub carpeta mas larga aun’
    • A la variable PATH agregarás: %LARGO%\bin y %LARGO\tools

¿Porqué pasa todo esto? porque Windows incluso en la version 10, está orientado a la interacción visual, y un programador está orientado a todo tipo de interacción. En los sistemas operativos basados en Linux como Ubuntu o Mac OSX, esto de la configuración del entorno es pan de cada día y directamente a los archivos, en este caso no hay una pantalla tan amigable como la que tiene Windows que sin querer impuso el límite de 2048 caracteres.

Así que ya sabes, si por ahí tu Android SDK no funciona o tu Perl dejó de trabajar, revisa la variable de entorno PATH que seguro algún instalador la modificó.




    Leave a Reply

    Fill in your details below or click an icon to log in:

    WordPress.com Logo

    You are commenting using your WordPress.com account. Log Out / Change )

    Twitter picture

    You are commenting using your Twitter account. Log Out / Change )

    Facebook photo

    You are commenting using your Facebook account. Log Out / Change )

    Google+ photo

    You are commenting using your Google+ account. Log Out / Change )

    Connecting to %s



%d bloggers like this: