1 votos

¿Dónde debo instalar la carpeta de una aplicación de línea de comandos en macOS para que esté disponible por defecto en mi shell?

Tl;dr

Objetivo: Descargar fácilmente un archivo zip con una aplicación de consola (y otros archivos), ejecutarla y luego reemplazarla con una versión actualizada.

Detalles

Cuando quiero descargar una aplicación de consola, con una interfaz de línea de comandos, ¿en qué carpeta apropiada debo colocarla? Quiero que la herramienta esté automáticamente presente en la RUTA.

No me refiero a las herramientas de desarrollador de Apple de Xcode. Estoy preguntando sobre herramientas de terceros como Microsoft Kiota.

Según lo poco que sé sobre otros sistemas operativos orientados a Unix como FreeBSD, /opt es el lugar habitual para agregar aplicaciones de terceros que no son controladas por el sistema operativo. Añadí un /opt a mi máquina macOS Sonoma 14.4.1. Puedo ejecutar explícitamente la aplicación de consola desde allí. Pero esa ubicación no parece estar en la RUTA automáticamente.

Probé con /usr/local y /usr/local/bin. Pero no funcionó. Al ejecutar kiota --version obtengo "kiota no encontrado".

captura de pantalla en Finder.app de /usr/local

Encontré que /usr/local/bin existe en mi Mac. Allí se encuentran varios elementos existentes, todos relacionados con Docker (presumiblemente de mi instalación de la aplicación Docker Desktop). Todos esos elementos son reportados por Finder.app como "Alias", aunque sospecho que en realidad son enlaces simbólicos. Al usar "Mostrar original" en Finder para esos elementos de Docker, me lleva a una carpeta anidada dentro de la aplicación GUI Mac Docker.app. Colocar mi jerarquía de carpetas de Kiota dentro de usr/local/bin no resulta en poner kiota en la RUTA predeterminada en Terminal.app, incluso después de reiniciar el sistema.

Workarounds

Un enfoque alternativo es renunciar a la comodidad de la RUTA. Arrastre y suelte el kiota desde cualquier carpeta a la ventana de Terminal.app. La herramienta se ejecutará correctamente:

/usr/local/Kiota/osx-arm64/kiota --version

1.14.0+fc4b39c65d89f7bfc8c7f1813c197e95e206da09

(En efecto, se espera 1.14.0, y es correcto.)

Otro enfoque alternativo es agregar manualmente los valores dentro de la variable de entorno PATH. Pero... todo el punto de mi pregunta es evitar manipular explícitamente el PATH. Hasta donde sé, todos los demás sistemas operativos orientados a Unix como BSD y Linux ofrecen un lugar predeterminado para las aplicaciones de consola de terceros. Esperaría lo mismo en macOS.

No soluciones alternativas

Poner un alias (Archivo > Crear alias en Finder) del ejecutable kiota en /usr/local/bin no funciona, incluso después de reiniciar el sistema. which kiota arroja "kiota no encontrado".

5voto

MacOS no organiza mágicamente /usr/local por ti.

Puedes hacer una de las siguientes opciones, dependiendo de la necesidad real:

  • Colocar los binarios o scripts directamente en /usr/local/bin,
  • Colocar el paquete en su propio directorio (bajo /opt, /usr/local/opt o donde prefieras), y ejecutar cd /usr/local/bin; sudo ln -s /path/to/package/bin/* . (Los alias de Finder no son enlaces simbólicos y no pueden ser usados aquí). Esto solo funciona si los binarios introducidos por el paquete tienen nombres únicos,
  • Agregar el paquete completo a /opt y los directorios bin adicionales a /etc/paths.d/nombre-del-paquete.

A menos que el nombre/directorio del paquete incluya un número de versión, la creación de enlaces simbólicos (opción 2) o la edición de /etc/paths.d/nombre-del-paquete (opción 3) solo necesitan hacerse una vez.

PD: La segunda opción es básicamente lo que hace Homebrew.

2voto

Andy Griffiths Puntos 1

Kiota está disponible como un paquete Homebrew. Esto está documentado en la página de producto de Microsoft que enlazaste. Todas las decisiones con las que estás tratando de lidiar son manejadas para ti, teniendo en cuenta las diferencias requeridas por la arquitectura de Mac que estés utilizando.

La manipulación de ruta es inevitable, pero brew proporcionará una ubicación estandarizada que puede gestionar por ti, una vez instalado correctamente. Ten en cuenta que brew requerirá un cambio único en ~/.zprofile para configurar las rutas.

Con brew instalado:

brew install kiota

1voto

yoliho Puntos 340

Kiota contiene cuatro archivos, incluido el programa de línea de comandos Kiota

Para instalar, simplemente copie todos los programas en /usr/local/bin, sin ningún directorio Kiota.

Lo que se necesita aquí es obtener la información ejecutable de la línea de comandos de Kiota en /usr/local/bin

1voto

sillo01 Puntos 11

Otra posibilidad es colocar el binario en cualquier lugar y definir un alias para él en tu shell. La última parte tendría que hacerse para cada combinación de usuario/shell. Sin embargo, a menos que el binario se coloque en un directorio ya cubierto por PATH, de todos modos se tiene que iterar sobre todos los usuarios.

Advertencia: Si el binario en cuestión llama a otros binarios, típicamente necesitarían estar en PATH. Los alias no funcionarán en ese caso, porque son solo de la shell.

0voto

benwiggy Puntos 8

El lugar habitual es dentro de /usr/local/

Pero por supuesto puedes añadir ubicaciones extra a $PATH.

La descarga de Kiota viene con cuatro archivos: uno ejecutable y 3 archivos de soporte. Debes poner todos ellos en una carpeta en cualquier lugar, y luego crear un enlace simbólico al ejecutable dentro de /usr/local/bin/, para que el ejecutable pueda ser llamado desde el $PATH estándar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X