Comment lier / usr / local à un répertoire spécifique à l'utilisateur?

1

Est-il possible de cartographier le /usr/local/ chemin sous MacOS vers un répertoire unique pour chaque utilisateur, par exemple ~/local/? Ou existe-t-il un autre moyen de résoudre le problème suivant:

J'essaie de donner à chaque utilisateur de mon serveur MacOS une installation homebrew personnelle. Cependant, l’inconvénient d’installer homebrew dans un répertoire utilisateur non standard est que tous les packages doivent être reconstruits à partir du source. Homebrew utilise uniquement les bouteilles binaires pour la valeur par défaut /usr/local dir.

De préférence, je souhaite que chaque utilisateur ait une copie de l’homebrew dans son répertoire personnel et mappe /usr/local chemin de ce répertoire pour que les fichiers binaires fonctionnent toujours.

Jeroen
la source
2
Cela ressemble à un Problème XY . Pourquoi voudriez-vous avoir des installations homebrew spécifiques à l'utilisateur?
Allan
Parce que les utilisateurs doivent être libres de configurer et de gérer leur propre logiciel sans interférer les uns avec les autres?
Jeroen
Avez-vous plusieurs développeurs travaillant tous sur une seule machine?
Allan
Oui. C'est un serveur compute / build avec de nombreux utilisateurs, chacun avec ses propres exigences.
Jeroen
1
J'ai vu plusieurs personnes utiliser le même homebrew installer, mais jamais plusieurs personnes utilisant plusieurs instances de homebrew sandboxed pour des besoins individuels. Ils ont besoin de leurs propres machines.
Allan

Réponses:

2

Oui, vous pouvez le faire - mais c'est relativement impliqué.

En gros, vous pouvez chrooter chaque utilisateur dans son propre répertoire et y répliquer le système de fichiers, à l'exception du répertoire / usr / local, qui serait ensuite spécifique à l'utilisateur.

Pour accéder aux répertoires système au sein du chroot, vous pouvez utiliser bindfs, osxfs ou même un montage NFS.

Il est beaucoup plus facile de laisser chaque utilisateur avoir un homebrew autre que celui par défaut et de le laisser reconstruire tous ses paquets selon ses besoins. Par définition, ne pas partager un dossier implique un stockage et un travail en double, mais il est probable que la configuration de celui-ci est bien moins fastidieuse.

jksoegaard
la source