3 votos

¿Por qué tener enlaces simbólicos entre archivos en carpetas de la misma profundidad?

Me he dado cuenta de que en MacOS, el /usr/local/Cellar contiene binarios instalados mediante Homebrew, y que /usr/local/opt tiene enlaces simbólicos a un montón de esos binarios. No he usado mucho los enlaces simbólicos, pero según tengo entendido, el propósito de ellos es crear un enlace en una ubicación conveniente a un archivo/carpeta que actúa como una copia de ese archivo/carpeta, sin tener que mover ese archivo/carpeta de su ubicación original.

Así que mis preguntas son:

  1. ¿Estoy en lo cierto cuando hablo de enlaces simbólicos?

  2. Si es así, ¿por qué crear enlaces simbólicos en una carpeta ( /usr/local/opt ) a binarios en otra carpeta ( /usr/local/Cellar ) que se encuentra en una ubicación/profundidad similar en la estructura de archivos? ¿En qué circunstancias utilizaría estos enlaces simbólicos si no pudiera utilizar simplemente los binarios?

1voto

Nimesh Neema Puntos 69

¿Estoy en lo cierto cuando hablo de enlaces simbólicos?

Sí. El enlace simbólico, como su nombre indica, actúa como un enlace a un archivo/carpeta situado en otro lugar. Generalmente, acceder al enlace equivale a acceder al archivo/carpeta.

Si es así, ¿por qué crear enlaces simbólicos en una carpeta ( /usr/local/opt ) a binarios en otra carpeta ( /usr/local/Cellar ) que se encuentra en una ubicación/profundidad similar en la estructura de archivos?

Si observas con atención, en este caso concreto, los binarios correspondientes a las distintas fórmulas instaladas se encuentran en carpetas diferentes. Hay una carpeta separada correspondiente a cada fórmula instalada en /usr/local/Cellar . Dentro de la carpeta para la fórmula hay una carpeta que contiene el número de versión, seguida de los archivos instalados para la fórmula.

Mediante enlace simbólico en /usr/local/opt , el lugar de instalación de todas las fórmulas se reúnen en un solo sitio.

Para saber exactamente por qué /usr/local/opt es creada por Homebrew, puedes consultar este post en Stack Overflow:

1voto

Graphain Puntos 143

No estoy muy familiarizado con Homebrew, pero el patrón que describes es uno que he visto utilizar a otros instaladores de software: hace que varios binarios estén disponibles en un directorio, al tiempo que facilita saber de qué paquete de software provienen. La siguiente captura de pantalla es de un artículo sobre Homebrew y muestra un listado del directorio "/usr/local/opt", con los diversos enlaces simbólicos apuntando a subdirectorios de "/usr/local/Cellar". Mientras que la mayoría de los binarios apuntan a un paquete con el mismo nombre, este no es el caso, por ejemplo, de "npm", donde el enlace simbólico hace que sea fácil saber que forma parte del mismo paquete que "node" y "nodejs". Los enlaces simbólicos se utilizan aquí con fines de organización del sistema de archivos: todos los archivos de un paquete se mantienen juntos en un solo lugar, al tiempo que están disponibles desde otros directorios según sea necesario.

enter image description here

También puede interesarle un ejemplo de cómo se utilizan a veces los enlaces simbólicos sin apuntar siquiera a un directorio diferente. Eche un vistazo a la salida de ls -l /usr/bin | grep vim que debería mostrar varios enlaces apuntando a "vim" en el mismo directorio, por ejemplo "ex" y "view". Como explica la página de manual de "vim":

       Vim behaves differently, depending on the name of the command (the exe-
       cutable may still be the same file).

       vim       The "normal" way, everything is default.

       ex        Start in Ex mode.  Go to Normal mode with the ":vi"  command.
                 Can also be done with the "-e" argument.

       view      Start  in read-only mode.  You will be protected from writing
                 the files.  Can also be done with the "-R" argument.

0voto

James Puntos 106

La razón más común es "canonizar" el archivo/binario original. Esto podría significar colocar los binarios en una ubicación canónica - en este caso, los enlaces simbólicos se colocan en /usr/local/opt porque su ordenador espera encontrar binarios allí pero no necesariamente en /usr/local/Cellar (probablemente basado en su shell $PATH variable). También puede usarse para designar un único binario de un grupo de binarios relacionados como "oficial", manteniendo los otros binarios relacionados disponibles pero no inmediatamente - por ejemplo, puede que haya instalado muchos paquetes, cada uno de los cuales depende de una versión diferente de Python, mientras que usted ha instalado específicamente la última versión de Python para usted. En este caso, podrías tener los binarios python34 , python35 , python36 etc en su carpeta Cellar, y un python binario en /usr/local/opt que enlaza con el binario de Python que solicitó instalar, python36 .

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