Tag Archives | mac

La variable de entorno PATH en Mac, desmitificada

¿Qué es PATH?

Cuando en Mac abres un terminal, puedes ejecutar una serie de comandos como ‘pwd‘ -para mostrar la ruta absoluta del directorio en el que te encuentras- o ‘ls‘ -que muestra los ficheros y directorios incluidos en el mismo- independientemente del directorio donde estes y donde se encuentren dichos comandos. Eso es posible gracias a PATH.

PATH es una variable de entorno que permite definir las rutas en las que el sistema operativo buscará esos comandos o ficheros.

El contenido de PATH

Para saber el valor actual de la variable PATH, debemos escribir en el terminal

echo $PATH

El valor de PATH siempre son un conjunto de rutas a directorios o ficheros separados por dos puntos. Por ejemplo, la variable PATH con valor ‘/usr/bin:/bin:/usr/sbin‘  está incluyendo los directorios /usr/bin, /bin y /usr/sbin.

Incluyendo el directorio actual en PATH

Es posible que deseemos modificar el valor de PATH, por ejemplo, para incluir el directorio actual. Si no lo hacemos, no podremos ejecutar ningún comando ni abrir ningún fichero del directorio en el que estemos si este no está incluido en PATH.

Por ejemplo, si estamos en el directorio /Users/david/development/Tomcat/bin y, dentro del mismo, existe un fichero ‘startup.sh‘, al intentar ejecutar el comando

startup.sh

obtendremos un error de ‘Fichero no encontrado’ porque el sistema operativo no sabrá donde buscar el fichero ‘startup.sh‘. Por eso debemos indicarle que está en el directorio actual de trabajo, representado por un punto (.)

./startup.sh

Para evitar tener que usar el punto cada vez que queremos trabajar con un fichero de nuestro directorio actual de trabajo, debemos modificar el valor de PATH para que incluya al mismo.

Como modificar el valor de PATH

El valor de PATH, al igual que el de todas las variables de entorno, se modifica con la sintaxis

NOMBRE_DE_VARIABLE=valor

De tal manera que, para modificar la variable PATH para que incluya el directorio actual deberíamos escribir lo siguiente en el terminal

PATH=$PATH:.

Con esto, le hemos dado a PATH el valor actual ($PATH) y, además, la ruta del directorio actual (.), separándola de la anterior con dos puntos (:).

El problema es que, esta configuración se perderá en cuanto cerremos el terminal. Si quieres saber como modificar el valor de PATH de forma persistente, tendrás que aprender como el sistema operativo OS X compone el valor de PATH.

Como se obtiene el valor de PATH en OS X

En OS X, al iniciar una Terminal se ejecuta el archivo /etc/profile. Así, si escribiéramos al final del mismo la famosa linea

PATH=$PATH:.

conseguiríamos añadir el directorio actual al contenido de PATH, pero lo haríamos de una forma poco elegante -porque ese no es el lugar más adecuado para hacerlo- y seguiríamos sin entender como se compone el valor de PATH en OS X.

El mismo fichero /etc/profile lanza un programa de utilidad llamado path_helper. Este programa es el que determina como se compondrá el valor de PATH:

  1. Primero, añade las rutas que encuentra en el fichero /etc/paths. En dicho fichero podrías añadir más rutas, una en cada linea, sin tener que separarlas por (:). Esto modificaría PATH para todos los usuarios del sistema.
  2. Después, carga todas las rutas, una por linea, que encuentre en los ficheros del directorio /etc/paths.d. Este directorio permite configurar PATH modularmente. Así por ejemplo, Atlassian recomienda crearse aquí un fichero llamado ‘atlassian‘ para añadir las rutas de su SDK. Los ficheros se cargan por orden alfabético (se añadirán primero las rutas de ’50-X11′ que de ‘atlassian’). Esta opción, también modifica PATH para todos los usuarios del sistema.
  3. Por último, puedes crear un fichero .profile en tu directorio HOME -en el que se inicia la terminal- y definir en el mismo el valor de PATH con la sintaxis que ya hemos definido. Esta opción, sólo modifica PATH para el usuario cuyo directorio HOME contenga el fichero .profile

Saber como funciona path_helper no solo nos ayudará a configurar el valor de la variable PATH, sino que además nos permitirá conocer porque unos directorios aparecen antes que otros y resolver los conflictos de rutas que podamos tener.

La gestión del directorio actual por comandos que ya están en el PATH

Gracias a la contribución de Dani Lopez, Victor Martinez y David Martinez, completo la información del artículo:

Cuando se usan comandos del tipo open, vi, sh, etc… no es necesario incluir los ficheros del directorio actual en el PATH puesto que estos comandos ya gestionan por si solos esa salvedad.

Es decir, si se ejecuta un open facturas.pdf, el propio comando open intenta abrir el fichero y, si no lo encuentra, vuelve a intentarlo clavándole a fuego un ./ por delante para comprobar si está en el directorio actual.

Bola Extra

Comments { 29 }

Mac in Cloud

Mac en la nubeAntes de comprar mi primer Mac, me empeñé en comprobar por todos los medios que realmente merecía la pena el cambio. Desde la perspectiva de un usuario de Windows/Linux no dejaba de ser un juguete muy caro.

Lo intenté todo, desde pedirle prestado su MacBook a Vilches -algo que le pareció más ofensivo que pedirle que me prestara a su mujer- hasta intentar crear un Hackintosh… en mi Dell con doble disco en RAID0.

Nada funcionó. Así que, para mi, la compra de un Mac fue un acto de fe. En aquel momento, me habría encantado disponer de un servicio como Mac in Cloud.

Mac in Cloud o Mac en la Nube, es un servicio que te permite acceder a un Mac compartido en la red por 1$/hora de uso.

Es una idea genial para poder probar un Mac por primera vez, tranquilamente desde tu casa, sin que Vilches esté todo el rato mirando por encima del hombro para ver si le rompes algo o descubres su lista secreta de enlaces sobre como cocinar magdalenas. Depravado.

Pero, además, es una solución para los desarrolladores que quieren crear la versión para iOS (iPhone & iPad) de su aplicación y no pueden hacerlo porque no disponen de un ordenador Apple. Porque los ordenadores de Mac in Cloud vienen con todo este software de desarrollo preinstalado:

  • iOS SDK (Xcode 4.0.2 y Xcode 3.2.5)
  • Android SDK (v3.0 y v2.3.3, Eclipse disponible)
  • Corona SDK
  • Titanium Developer de Appcelerator
  • GameSalad
  • Mono, MonoDevelop, MonoTouch
  • Phonegap (funciona con Xcode 3.2.5 y Eclipse con Android)
  • JetBrains AppCode (El fantástico editor de IntelliJ IDEA para Objective-C)

Es decir, todo lo que necesitas para crear una aplicación nativa para Mac… o transformar rápidamente tu aplicación HTML5 con PhoneGap y demás inventos.

Es importante recalcar que Mac in Cloud no ofrece ordenadores virtualizados, sino compartidos mediante el mecanismo de Time Sharing. Entre otras cosas, porque las mismas licencias de uso que nos legó el Tito Steve y que prohiben que instalemos OS X -o su entorno de desarrollo- en un ordenador que no sea Apple, también impiden que lo virtualicemos.

¿Qué os parece? A mi me parece una solución fantástica para que muchos usuarios prueben un Mac por primera vez… y para que muchos desarrolladores de Android hagan su primer ¡Hola Mundo! en el mundo iOS.

Comments { 9 }

Cómo bloquear la pantalla de tu Mac

Hay un par de cosas que los usuarios de Mac envidiamos de Windows aunque, jamás lo reconoceremos en publico:

  • La sofisticada tecnología que permite cortar y pegar en vez de copiar y borrar
  • El bloqueo rápido, cómodo y sencillo de la sesión de trabajo

En este artículo, explicaré como eliminar de la lista el segundo punto.

3 sencillos pasos

En Internet se pueden encontrar muchas alternativas para bloquear la pantalla de tu mac con scripts, widgets, aplicaciones especificas y hasta iconos específicos en la barra de menús pero, he encontrado un método mucho más sencillo que te permite prescindir de todo eso:

1. Acceder a la gestión de Seguridad y Privacidad de Preferencias del Sistema

Bloquear pantalla Mac - Paso 1

2. Configurar la solicitud de contraseña tras el reposo del sistema

Dentro de Seguridad y Privacidad, tendremos que asegurarnos de que la opción para solicitar contraseña tras iniciarse el reposo o el salvapantallas está marcada y con la opción ‘inmediatamente‘ seleccionada.

Es posible que tengas que desbloquear el acceso a las opciones pulsando sobre el candado que aparece en la esquina inferior izquierda e introduciendo entonces la clave de Administrador.

Bloquear pantalla Mac - Paso 2 3.  Usar el atajo de teclado para bloquear la pantalla

En Mac no existe el atajo de teclado CTRL + ALT + SUPR para bloquear la pantalla. Sin embargo, se puede utilizar CTRL + SHIFT + EXPULSAR para apagar la pantalla.

La pantalla se apagará y se ignoraran los dispositivos de entrada, lo he comprobado, bloqueando por completo la sesión de trabajo sin acabar con esta ni pausarla.

Cuando se pulse cualquier botón del teclado o del ratón, se reanudará la sesión y aparecerá un formulario para validarse de nuevo en el sistema.

Bloquear Pantalla Mac - Paso 3

Bola Extra: ¿Por qué bloquear la pantalla del Mac?

La mayoría de mis amigos que trabajan con Mac, lo hacen con un Macbook Pro abierto y conectado a un segundo monitor. Cuando quieren bloquear su sesión de trabajo, simplemente cierran la tapa del portátil.

Pero, por defecto, cerrar la tapa no bloquea la sesión de trabajo sino que hace que el ordenador entre en suspensión. Olvídate de seguir escuchando tu música.

¿Qué hacer además, cuando -como yo- trabajas con tu Macbook Pro cerrado conectado a un monitor externo? En ese caso, no hay tapa que bajar porque ya está bajada.

El porque trabajo con el Macbook Pro cerrado, despreciando el segundo monitor que esto me daría tiene que ver con la búsqueda del escritorio zen perfecto. Pero de eso, hablaremos en otro artículo…

Comments { 9 }