3 votos

El comando de terminal ln genera un error: Sistema de archivos de sólo lectura

Estoy tratando de crear un enlace simbólico a un archivo con el fin de permitir la finalización de Docker CLI, siguiendo estas instrucciones.

https://docs.docker.com/desktop/mac/#zsh

 > etc=/Applications/Docker.app/Contents/Resources/etc
 > ln -s $etc/docker.zsh-completion /usr/share/zsh/site-functions/_docker

ln: /usr/share/zsh/site-functions/_docker: Read-only file system

He intentado sudo . Es MacOS Monterey. Soy nuevo en Mac y viejo en PC. Parece que Zsh en mi máquina está en un directorio extraño, es decir, no en /usr/local/ .

El nuevo sistema de protección me impedía en un principio hacer mi enlace dando Operation not permitted pero he desactivado la protección con csrutil desde el modo de recuperación y ahora me aparece este nuevo error.

  • ¿He dado con un segundo sistema de protección?
  • ¿Puedo apagar este segundo también?
  • ¿Hay un jefe de final de nivel?
  • Si no, ¿cómo puedo conseguir que Zsh se instale en el directorio que no está bloqueado?
  • ¿Cómo puedo evitar que otras cosas se instalen en el directorio "equivocado"?

7voto

Adi Puntos 1105

Los Macs modernos dividen el disco en dos volúmenes (un "volumen" es similar a una partición, pero diferente en varios aspectos). Por defecto, los volúmenes se denominan Macintosh HD y Macintosh HD - Data .

La forma en que los discos/volúmenes/particiones/etc. funcionan en Mac OS o en cualquier sistema UNIX es "montar" el volumen en una ruta del sistema de archivos. Macintosh HD se "monta" en la ruta / . Y Macintosh HD - Data se monta en la ruta /System/Volumes/Data .

El Macintosh HD (o / ) está montado como sólo lectura y sólo puede ser modificado mientras se instala una actualización del sistema operativo. No hay sudo ni escalada de privilegios - piense que es un CD-ROM (con algunas excepciones).

Es un poco complicado, por ejemplo /Applications existe tanto en ese camino como en /System/Volumes/Data/Applications . Este último es el camino real, el primero es una conveniencia y también existe para la compatibilidad hacia atrás.

La mayor parte de esto es invisible con el uso ordinario de un Mac, pero puedes toparte con ello mientras trabajas en la línea de comandos.

¿Cómo puedo evitar que otras cosas se instalen en el directorio "equivocado"?

Porque / es de sólo lectura, no se puede instalar nada allí, así que todo está bien. :-) Todo lo que instales estará bajo /System/Volumes/Data o una ruta que apunte a eso.

5voto

Jose Chavez Puntos 645

Las instrucciones que está utilizando son para zsh instalaciones hechas por Homebrew - no el zsh instalación que viene con MacOS. Por eso las rutas son diferentes. Puedes instalar zsh de Homebrew y entonces las instrucciones serán válidas.

Y sí, en cierto sentido has dado con otro "sistema de protección", si quieres llamarlo así. El sistema de archivos que estás tratando de modificar simplemente está montado como de sólo lectura, lo que significa que no puede ser modificado. Es posible obtener acceso de lectura-escritura a estos archivos y hacer modificaciones - sin embargo, yo desaconsejaría fuertemente que lo hicieras. Es casi seguro que le dará más problemas a largo plazo.

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