¿Cómo vincular /usr/local al directorio específico del usuario?

¿Es posible asignar la /usr/local/ruta en MacOS a un directorio que sea único para cada usuario, por ejemplo ~/local/? O hay otra forma de resolver lo siguiente:

Intento darle a cada usuario de mi servidor MacOS una instalación homebrew personal. Sin embargo, la desventaja de instalar homebrew en un directorio de usuario no estándar es que todos los paquetes deberán reconstruirse desde la fuente. Homebrew solo usa las botellas binarias para el /usr/localdirectorio predeterminado.

Preferiblemente, me gustaría que cada usuario tenga una copia de homebrew en su directorio de inicio y, de alguna manera, asigne la /usr/localruta a ese directorio para que los archivos binarios sigan funcionando.

Esto suena como un problema XY . ¿Por qué querrías tener instalaciones homebrew específicas para el usuario?
¿Porque los usuarios necesitan ser libres para configurar y administrar su propio software sin interferir entre sí?
¿Tiene varios desarrolladores trabajando en una sola máquina?
Sí. Es un servidor de cómputo/construcción con muchos usuarios, cada uno con sus propios requisitos.
He visto a varias personas usar la misma instalación de homebrew, pero nunca a varias personas que usan varias instancias de homebrew sandboxed para necesidades individuales. Necesitan sus propias máquinas.
Podría usar Macports ya que está diseñado como todo Unix para tener una instalación compartida entre usuarios; en este caso, la instalación sería la unión de lo que se necesita instalar: los archivos de configuración estarán en los directorios de inicio

Respuestas (1)

Sí, puedes hacerlo, pero es relativamente complicado.

Esencialmente, podría hacer chroot a cada usuario en su propio directorio y replicar el sistema de archivos allí, a excepción del directorio /usr/local, que sería específico del usuario.

Para acceder a los directorios del sistema dentro del chroot, puede usar bindfs, osxfs o incluso un montaje NFS.

Es mucho más fácil dejar que cada usuario tenga un homebrew no predeterminado y permitirles reconstruir todos sus paquetes según sea necesario. Por definición, no compartir una carpeta implica duplicar el almacenamiento y el trabajo, pero es probable que eso sea mucho menos complicado de configurar.